import files
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
---
|
||||
# file: tasks/build.yml
|
||||
|
||||
- name: build - Build docker image
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "/usr/local/bin/docker-build -q -c {{docker_cluster|default('\"\"')}} {{item}}"
|
||||
register: docker_build_image_command
|
||||
|
||||
- name: build - Register docker_build_image
|
||||
with_items: "{{docker_build_image_command.results}}"
|
||||
set_fact:
|
||||
docker_build_image: "{{docker_build_image |default({}) |combine( {item.item: item.stdout} ) }}"
|
||||
|
||||
- name: build - Debug docker_elk_build_image
|
||||
with_items: "{{dockers|default([])}}"
|
||||
debug: msg="{{docker_build_image[item]}}"
|
||||
when: docker_debug|default(false)
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
# file: tasks/check.yml
|
||||
|
||||
- name: check - kernel version
|
||||
fail:
|
||||
msg: >
|
||||
docker requires a minimum kernel version of {{docker_check_kernel}}
|
||||
on {{ansible_distribution}} {{ansible_distribution_version}}
|
||||
when: ansible_kernel is version(docker_check_kernel, "<")
|
||||
|
||||
- name: check - machine architecture
|
||||
fail:
|
||||
msg: >
|
||||
docker requires a {{docker_check_machine}} version
|
||||
of {{ansible_distribution}} {{ansible_distribution_version}}
|
||||
when: ansible_machine != docker_check_machine
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
# file: tasks/config.yml
|
||||
|
||||
- name: config - add docker storage setup
|
||||
lineinfile: dest="{{docker_init_config_directory}}/{{docker_package}}-storage-setup" state="present" line="STORAGE_DRIVER=\"\""
|
||||
when: docker_package|length > 0 and ansible_service_mgr == "systemd" and ansible_os_family|lower == "redhat"
|
||||
become: yes
|
||||
|
||||
# - name: config - disable docker iptables setup
|
||||
# lineinfile: dest="/lib/systemd/system/docker.service" state="present" regex="^ExecStart=" line="ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --iptables=false"
|
||||
# notify: restart docker
|
||||
# when: docker_package|length > 0 and ansible_service_mgr == "systemd"
|
||||
# become: yes
|
||||
|
||||
- name: config - setup docker mtu on Openstack VMs
|
||||
lineinfile: dest="{{docker_init_config_directory}}/{{docker_package}}" state="present" backrefs=true regexp='^{{docker_opts}}=(?:\'|\")?((?:\s*[\w=\/\-\.](?<!--mtu=1450)\s*)*)(?:\'|\")?$' line='{{docker_opts}}="\1 --mtu=1450"'
|
||||
when: docker_package|length > 0 and ansible_product_name == "OpenStack Nova"
|
||||
become: yes
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
# file: tasks/files.yml
|
||||
|
||||
- name: files - copy files
|
||||
with_items:
|
||||
- /usr/local/bin/docker-build
|
||||
- /usr/local/bin/docker-cleanup
|
||||
- /usr/local/bin/docker-cleanup-images
|
||||
- /usr/local/bin/docker-cleanup-volumes
|
||||
- /usr/local/bin/docker-log-cleanup
|
||||
- /usr/local/bin/docker-log-truncate
|
||||
- /usr/local/bin/docker-run
|
||||
- /usr/local/bin/docker-get-image
|
||||
- /usr/local/bin/docker-get-status
|
||||
copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0755
|
||||
become: yes
|
||||
|
||||
- name: files - copy sysctl configuration files
|
||||
with_items:
|
||||
- /etc/sysctl.d/docker.conf
|
||||
copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0644
|
||||
become: yes
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
# file: tasks/group.yml
|
||||
|
||||
- name: group - create docker group
|
||||
group: name="docker" state="present" system="yes"
|
||||
become: yes
|
||||
when: ansible_os_family|lower != "alpine"
|
||||
|
||||
- name: group - add me to the docker group
|
||||
user: name="{{ansible_user_id}}" groups=docker append=yes
|
||||
become: yes
|
||||
when: ansible_os_family|lower != "alpine" and ansible_user_id != "root"
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
# file: tasks/main.yml
|
||||
|
||||
- import_tasks: vars.yml
|
||||
tags:
|
||||
- vars
|
||||
- import_tasks: check.yml
|
||||
tags:
|
||||
- check
|
||||
- import_tasks: files.yml
|
||||
tags:
|
||||
- files
|
||||
- import_tasks: package.yml
|
||||
tags:
|
||||
- package
|
||||
- import_tasks: config.yml
|
||||
tags:
|
||||
- config
|
||||
- import_tasks: service.yml
|
||||
tags:
|
||||
- service
|
||||
- import_tasks: group.yml
|
||||
tags:
|
||||
- group
|
||||
- import_tasks: build.yml
|
||||
tags:
|
||||
- build
|
||||
- import_tasks: run.yml
|
||||
tags:
|
||||
- run
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
# file: tasks/package.yml
|
||||
|
||||
- name: package - packages pre installation
|
||||
with_items: "{{docker_packages|default([])}}"
|
||||
package: name="{{item.name}}" state="{{item.state}}"
|
||||
become: yes
|
||||
|
||||
- name: package - add docker GPG key
|
||||
apt_key: url=https://download.docker.com/linux/debian/gpg
|
||||
when: ansible_os_family|lower == "debian"
|
||||
|
||||
- name: add docker APT repository
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] https://download.docker.com/linux/{{ansible_distribution|lower}} {{ansible_distribution_release}} stable
|
||||
when: ansible_os_family|lower == "debian"
|
||||
|
||||
- name: package - add docker package
|
||||
package: name="{{docker_package}}" state=present
|
||||
when: docker_package|length > 0
|
||||
become: yes
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
# file: tasks/run.yml
|
||||
|
||||
- name: run - Get current docker status
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "/usr/local/bin/docker-get-status {{item}}"
|
||||
register: docker_current_status_command
|
||||
|
||||
- name: run - Register docker_current_status
|
||||
with_items: "{{docker_current_status_command.results}}"
|
||||
set_fact:
|
||||
docker_current_status: "{{docker_current_status |default({}) |combine( {item.item: item.stdout} ) }}"
|
||||
|
||||
- name: run - Debug docker_current_status
|
||||
with_items: "{{dockers|default([])}}"
|
||||
debug: msg="{{docker_current_status[item]}}"
|
||||
when: docker_debug|default(false)
|
||||
|
||||
- name: run - Get current docker image
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "/usr/local/bin/docker-get-image {{item}}"
|
||||
register: docker_current_image_command
|
||||
|
||||
- name: run - Register docker_current_image
|
||||
with_items: "{{docker_current_image_command.results}}"
|
||||
set_fact:
|
||||
docker_current_image: "{{docker_current_image |default({}) |combine( {item.item: item.stdout} ) }}"
|
||||
|
||||
- name: run - Debug docker_current_image
|
||||
with_items: "{{dockers|default([])}}"
|
||||
debug: msg="{{docker_current_image[item]}}"
|
||||
when: docker_debug|default(false)
|
||||
|
||||
- name: run - Stop current docker
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "docker stop {{item}}"
|
||||
when: ( docker_restart|default(false) and "{{docker_current_image[item]}}" != "{{docker_build_image[item]}}" or docker_force_restart|default(false) ) and "{{docker_current_status[item]}}" == "{{item}} running"
|
||||
|
||||
- name: run - Remove current docker
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "docker rm {{item}}"
|
||||
when: ( docker_restart|default(false) and "{{docker_current_image[item]}}" != "{{docker_build_image[item]}}" or docker_force_restart|default(false) ) and "{{docker_current_status[item]}}" != ""
|
||||
|
||||
- name: run - Run docker image
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "/usr/local/bin/docker-run -q -c {{docker_cluster|default('\"\"')}} {{item}}"
|
||||
when: docker_start|default(true) and "{{docker_current_image[item]}}" != "{{docker_build_image[item]}}" or docker_force_restart|default(false)
|
||||
|
||||
- name: run - Start docker
|
||||
with_items: "{{dockers|default([])}}"
|
||||
command: "docker start {{item}}"
|
||||
when: docker_start|default(true) and "{{docker_current_image[item]}}" == "{{docker_build_image[item]}}" and "{{docker_current_status[item]}}" != "{{item}} running"
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
# file: tasks/service.yml
|
||||
|
||||
- name: service - start docker daemon
|
||||
with_items: "{{docker_services|default([])}}"
|
||||
service:
|
||||
name: "{{item}}"
|
||||
state: started
|
||||
enabled: yes
|
||||
become: yes
|
||||
when: ansible_service_mgr|lower != "openrc" and ansible_os_family|lower != "alpine"
|
||||
|
||||
- name: service - force openrc status
|
||||
shell: "kill -0 $(cat /run/{{item}}.pid) && [ ! -h /run/openrc/started/{{item}} ] && ln -s /etc/init.d/{{item}} /run/openrc/started/{{item}} && service {{item}} restart ||:"
|
||||
with_items: "{{docker_services|default([])}}"
|
||||
become: yes
|
||||
when: ansible_service_mgr|lower == "openrc" or ansible_os_family|lower == "alpine"
|
||||
|
||||
- name: service - start docker daemon
|
||||
with_items: "{{docker_services|default([])}}"
|
||||
service:
|
||||
name: "{{item}}"
|
||||
state: started
|
||||
enabled: yes
|
||||
runlevel: boot
|
||||
become: yes
|
||||
when: ansible_service_mgr|lower == "openrc" or ansible_os_family|lower == "alpine"
|
||||
|
||||
- name: service - force docker restart
|
||||
shell: "[ ! -d /var/lib/docker/tmp ] && service docker restart ||:"
|
||||
become: yes
|
||||
when: ansible_service_mgr|lower == "openrc" or ansible_os_family|lower == "alpine"
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
# file: tasks/vars.yml
|
||||
|
||||
- name: vars - load per operating system variables
|
||||
include_vars: "{{item}}"
|
||||
with_first_found:
|
||||
- paths:
|
||||
- "vars/"
|
||||
- files:
|
||||
- "{{ansible_distribution|lower}}-{{ansible_distribution_version|lower}}-{{ansible_machine}}.yml" # centos-6.4-i386.yml ubuntu-16.04-x86_64.yml
|
||||
- "{{ansible_distribution|lower}}-{{ansible_distribution_version|lower}}.yml" # centos-6.4.yml ubuntu-16.04.yml
|
||||
- "{{ansible_distribution|lower}}-{{ansible_distribution_major_version|lower}}-{{ansible_machine}}.yml" # centos-6-i386.yml ubuntu-16-x86_64.yml
|
||||
- "{{ansible_distribution|lower}}-{{ansible_distribution_major_version|lower}}.yml" # centos-6.yml ubuntu-16.yml
|
||||
- "{{ansible_os_family|lower}}-{{ansible_distribution_version|lower}}-{{ansible_machine}}.yml" # redhat-6.4-i386.yml debian-8.5-x86_64.yml
|
||||
- "{{ansible_os_family|lower}}-{{ansible_distribution_version|lower}}.yml" # redhat-6.4.yml debian-8.5.yml
|
||||
- "{{ansible_os_family|lower}}-{{ansible_distribution_major_version|lower}}-{{ansible_machine}}.yml" # redhat-6-i386.yml debian-8-x86_64.yml
|
||||
- "{{ansible_os_family|lower}}-{{ansible_distribution_major_version|lower}}.yml" # redhat-6.yml debian-8.yml
|
||||
- "{{ansible_distribution|lower}}-{{ansible_machine}}.yml" # centos-i386.yml ubuntu-x86_64.yml
|
||||
- "{{ansible_distribution|lower}}.yml" # centos.yml ubuntu.yml
|
||||
- "{{ansible_os_family|lower}}-{{ansible_machine}}.yml" # redhat-i386.yml debian-x86_64.yml
|
||||
- "{{ansible_os_family|lower}}.yml" # redhat.yml debian.yml
|
||||
- "{{ansible_system|lower}}-{{ansible_machine}}.yml" # linux-i386.yml linux-x86_64.yml
|
||||
- "{{ansible_system|lower}}.yml" # linux.yml
|
||||
- "default.yml" # default.yml
|
||||
skip: true
|
||||
|
||||
- name: vars - override with local variables
|
||||
include_vars: "{{item}}"
|
||||
with_first_found:
|
||||
- paths:
|
||||
- "vars/"
|
||||
- files:
|
||||
- "local.yml"
|
||||
skip: true
|
||||
Reference in New Issue
Block a user