You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
---
|
|
- 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
|