|
|
@ -0,0 +1,71 @@ |
|
|
|
|
|
--- |
|
|
|
|
|
- name: Docker Setup Playbook |
|
|
|
|
|
hosts: all |
|
|
|
|
|
become: true |
|
|
|
|
|
handlers: |
|
|
|
|
|
- name: Restart Docker |
|
|
|
|
|
service: |
|
|
|
|
|
name: docker |
|
|
|
|
|
state: restarted |
|
|
|
|
|
|
|
|
|
|
|
tasks: |
|
|
|
|
|
- name: Install Docker |
|
|
|
|
|
ansible.builtin.shell: | |
|
|
|
|
|
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh |
|
|
|
|
|
sh /tmp/get-docker.sh && rm /tmp/get-docker.sh |
|
|
|
|
|
args: |
|
|
|
|
|
warn: false |
|
|
|
|
|
register: docker_install |
|
|
|
|
|
changed_when: "'Docker is installed' in docker_install.stdout" |
|
|
|
|
|
|
|
|
|
|
|
- name: Setup Docker logging |
|
|
|
|
|
ansible.builtin.copy: |
|
|
|
|
|
dest: /etc/logrotate.d/docker-json |
|
|
|
|
|
content: | |
|
|
|
|
|
/var/lib/docker/containers/*/*-json.log { |
|
|
|
|
|
rotate 7 |
|
|
|
|
|
daily |
|
|
|
|
|
missingok |
|
|
|
|
|
notifempty |
|
|
|
|
|
nocompress |
|
|
|
|
|
copytruncate |
|
|
|
|
|
} |
|
|
|
|
|
notify: Restart Docker |
|
|
|
|
|
|
|
|
|
|
|
- name: Create Docker build network |
|
|
|
|
|
ansible.builtin.shell: | |
|
|
|
|
|
docker network create \ |
|
|
|
|
|
--label build \ |
|
|
|
|
|
--opt "com.docker.network.driver.mtu=1500" \ |
|
|
|
|
|
--opt "com.docker.network.bridge.enable_icc=true" \ |
|
|
|
|
|
--opt "com.docker.network.bridge.name=docker-build" \ |
|
|
|
|
|
build |
|
|
|
|
|
args: |
|
|
|
|
|
warn: false |
|
|
|
|
|
register: network_create |
|
|
|
|
|
changed_when: "'build' in network_create.stdout" |
|
|
|
|
|
failed_when: "network_create.stderr != '' and 'already exists' not in network_create.stderr" |
|
|
|
|
|
|
|
|
|
|
|
- name: Setup Docker Autostart service |
|
|
|
|
|
ansible.builtin.copy: |
|
|
|
|
|
dest: /etc/systemd/system/docker-autostart.service |
|
|
|
|
|
content: | |
|
|
|
|
|
[Unit] |
|
|
|
|
|
Description=Docker Autostartup all Containers |
|
|
|
|
|
Requires=docker.service |
|
|
|
|
|
After=docker.service |
|
|
|
|
|
|
|
|
|
|
|
[Service] |
|
|
|
|
|
ExecStart=/bin/bash -c "docker start $(docker ps -aq)" |
|
|
|
|
|
ExecStop=/bin/bash -c "docker stop $(docker ps -aq)" |
|
|
|
|
|
RemainAfterExit=yes |
|
|
|
|
|
|
|
|
|
|
|
[Install] |
|
|
|
|
|
WantedBy=multi-user.target |
|
|
|
|
|
notify: Restart Docker |
|
|
|
|
|
|
|
|
|
|
|
- name: Enable and start Docker autostart service |
|
|
|
|
|
ansible.builtin.systemd: |
|
|
|
|
|
name: docker-autostart.service |
|
|
|
|
|
enabled: yes |
|
|
|
|
|
state: started |