|
|
|
@ -79,11 +79,11 @@
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: templates_Defined ==1 and outer_item.value.generic is not defined
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
#Copy templates form a generic dir, allow ansible to search
|
|
|
|
@ -95,11 +95,11 @@
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: templates_Defined ==1 and outer_item.value.generic is defined
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
- name: Append templated files to the mapping list
|
|
|
|
@ -141,11 +141,11 @@
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: files_Defined == 1 and outer_item.value.generic is not defined and outer_item.value.src_text is not defined
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
#Copy files from a generic dir, allow ansible to search
|
|
|
|
|
- name: "Generic File mappings for {{ container_Name }}"
|
|
|
|
@ -156,48 +156,45 @@
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: files_Defined == 1 and outer_item.value.generic is defined and outer_item.value.src_text is not defined
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
#Create files based on the suplied src_text param
|
|
|
|
|
# Create files based on the suplied src_text param
|
|
|
|
|
- name: "Text based file creation for {{ container_Name }}"
|
|
|
|
|
#Files will be copied to the 'config' dir as defined by container_configDir, they will be stored using their file name
|
|
|
|
|
#Need to ensure you dont have duplicate files names here
|
|
|
|
|
# Files will be copied to the 'config' dir as defined by container_configDir, they will be stored using their file name
|
|
|
|
|
# Need to ensure you dont have duplicate files names here
|
|
|
|
|
copy: content="{{ outer_item.value.src_text }}" dest="{{ container_configDir }}/{{ outer_item.key }}" mode=0644
|
|
|
|
|
with_dict: "{{ item.value.mappings.files }}"
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: files_Defined == 1 and outer_item.value.src_text is defined
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
- name: Append static remote files to the mapping list
|
|
|
|
|
set_fact:
|
|
|
|
|
#build a list to pass to docker containing the source of the file(As on disk on the host) and the destination mount within the container
|
|
|
|
|
#Also allows the passing of 'params' which is rw or ro, defaults to rw
|
|
|
|
|
# build a list to pass to docker containing the source of the file(As on disk on the host) and the destination mount within the container
|
|
|
|
|
# Also allows the passing of 'params' which is rw or ro, defaults to rw
|
|
|
|
|
mappings: "{{ mappings + [ container_configDir + outer_item.key + ':' + outer_item.value.dest + ':' + outer_item.value.params | default('rw') ] }}"
|
|
|
|
|
with_dict: "{{ item.value.mappings.files }}"
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: files_Defined == 1
|
|
|
|
|
tags: always
|
|
|
|
|
#----------------------------------/FILES----------------------------------
|
|
|
|
|
# ----------------------------------/FILES----------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#----------------------------------LOCAL----------------------------------
|
|
|
|
|
#Local files alreeady exist on the host, commonly local time and or netns for namespace, could also be locl disk drives?
|
|
|
|
|
#Nothing gets copied for local mappings, just defintiions added to the mapping list
|
|
|
|
|
#Only copy files if there are local files defined in the incoming defintion dict
|
|
|
|
|
# ----------------------------------LOCAL----------------------------------
|
|
|
|
|
# Local files alreeady exist on the host, commonly local time and or netns for namespace, could also be locl disk drives?
|
|
|
|
|
# Nothing gets copied for local mappings, just defintiions added to the mapping list
|
|
|
|
|
# Only copy files if there are local files defined in the incoming defintion dict
|
|
|
|
|
- set_fact: local_Defined=0
|
|
|
|
|
tags: always
|
|
|
|
|
- name: Check if Local files have been defined or not
|
|
|
|
@ -205,32 +202,32 @@
|
|
|
|
|
local_Defined: 1
|
|
|
|
|
when: item.value.mappings.local is defined
|
|
|
|
|
tags: always
|
|
|
|
|
#- debug: msg="local not defined"
|
|
|
|
|
# - debug: msg="local not defined"
|
|
|
|
|
# when: local_Defined is not defined
|
|
|
|
|
|
|
|
|
|
- name: Append static local files to the mapping list
|
|
|
|
|
set_fact:
|
|
|
|
|
#build a list to pass to docker containing the source of the file(As on disk on the host) and the destination mount within the container
|
|
|
|
|
#Also allows the passing of 'params' which is rw or ro, defaults to rw
|
|
|
|
|
#mappings: "{{ mappings + ['type=\"bind\", source=\"' + item.value.src + '\",target=\"' + item.value.dest + '\",readonly=\"' + item.value.readonly | default('false') +'\"'] }}"
|
|
|
|
|
# build a list to pass to docker containing the source of the file(As on disk on the host) and the destination mount within the container
|
|
|
|
|
# Also allows the passing of 'params' which is rw or ro, defaults to rw
|
|
|
|
|
# mappings: "{{ mappings + ['type=\"bind\", source=\"' + item.value.src + '\",target=\"' + item.value.dest + '\",readonly=\"' + item.value.readonly | default('false') +'\"'] }}"
|
|
|
|
|
mappings: "{{ mappings + [ outer_item.value.src + ':' + outer_item.value.dest + ':' + outer_item.value.params | default('rw') ] }}"
|
|
|
|
|
with_dict: "{{ item.value.mappings.local }}"
|
|
|
|
|
loop_control:
|
|
|
|
|
loop_var: outer_item
|
|
|
|
|
when: local_Defined == 1
|
|
|
|
|
register: fileChanged
|
|
|
|
|
register: file_changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
- name: Set the flag to restart the container if file was changed
|
|
|
|
|
set_fact: containerRestart='yes'
|
|
|
|
|
when: fileChanged is defined and fileChanged.changed
|
|
|
|
|
set_fact: container_restart='yes'
|
|
|
|
|
when: file_changed is defined and file_changed.changed
|
|
|
|
|
tags: always
|
|
|
|
|
|
|
|
|
|
#----------------------------------/LOCAL----------------------------------
|
|
|
|
|
# ----------------------------------/LOCAL----------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#----------------------------------Check ENV----------------------------------
|
|
|
|
|
#If the env varibale isnt defined then dont error out, set the network variable to an empty list
|
|
|
|
|
# ----------------------------------Check ENV----------------------------------
|
|
|
|
|
# If the env varibale isnt defined then dont error out, set the network variable to an empty list
|
|
|
|
|
- name: Setup a blank env variable
|
|
|
|
|
set_fact: env_checked={}
|
|
|
|
|
when: item.value.env is not defined
|
|
|
|
@ -239,16 +236,14 @@
|
|
|
|
|
set_fact: env_checked="{{ item.value.env }}"
|
|
|
|
|
when: item.value.env is defined
|
|
|
|
|
tags: always
|
|
|
|
|
#----------------------------------/Check ENV----------------------------------
|
|
|
|
|
|
|
|
|
|
- name: Restart the container if fileChanged is defined
|
|
|
|
|
set_fact: containerRestart1='yes'
|
|
|
|
|
when: (containerRestart is defined and containerRestart=='yes') or (item.value.restart is defined and item.value.restart =='yes')
|
|
|
|
|
|
|
|
|
|
# ----------------------------------/Check ENV----------------------------------
|
|
|
|
|
|
|
|
|
|
- name: Restart the container if file_changed is defined
|
|
|
|
|
set_fact: container_restart1='yes'
|
|
|
|
|
when: (container_restart is defined and container_restart=='yes') or (item.value.restart is defined and item.value.restart =='yes')
|
|
|
|
|
|
|
|
|
|
- name: "Container {{ container_Name }}"
|
|
|
|
|
become: yes
|
|
|
|
|
become: true
|
|
|
|
|
docker_container:
|
|
|
|
|
name: "{{ container_Name }}"
|
|
|
|
|
hostname: "{{ item.value.hostname | default(container_Name) }}"
|
|
|
|
@ -257,7 +252,7 @@
|
|
|
|
|
recreate: "{{ item.value.recreate | default('false') }}"
|
|
|
|
|
image: "{{ item.value.image }}"
|
|
|
|
|
state: "{{ item.value.start | default ('started') }}"
|
|
|
|
|
restart: "{{ containerRestart1 | default ('no') }}"
|
|
|
|
|
restart: "{{ container_restart1 | default ('no') }}"
|
|
|
|
|
restart_policy: "{{ item.value.restart_policy | default ('always') }}"
|
|
|
|
|
purge_networks: "{{ item.value.purge_networks | default ('yes') }}"
|
|
|
|
|
networks: "{{ net_checked }}"
|
|
|
|
@ -267,9 +262,5 @@
|
|
|
|
|
network_mode: "{{ item.value.network_mode | default ('default') }}"
|
|
|
|
|
shm_size: "{{ item.value.shm_size | default ('64M') }}"
|
|
|
|
|
ports: "{{ item.value.ports | default ([]) }}"
|
|
|
|
|
#log_driver: fluentd
|
|
|
|
|
#"{{item.value.ports | default ([json-file])}}"
|
|
|
|
|
#log_options:
|
|
|
|
|
# fluentd-sub-second-precision: true
|
|
|
|
|
# tag: myservice
|
|
|
|
|
tags: always
|
|
|
|
|
ulimits: "{{ item.value.ulimits | default ('') }}"
|
|
|
|
|
tags: always
|