Test Repo für Ansible Semaphore
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.

93 lines
2.5 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
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
- name: Benutzer anlegen
user:
name: dockeruser
comment: Docker Benutzer
shell: /bin/bash
create_home: yes
- name: Benutzer zur Docker-Gruppe hinzufügen
user:
name: dockeruser
group: docker
append: yes
- name: Create docker directory
file:
path: "/mnt/docker"
state: directory
mode: '0755'
- name: Create docker semaphore directory
file:
path: "/mnt/docker/semaphore"
state: directory
mode: '0755'