--- - 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 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