--- - name: Initialise worker VM hosts: workers become: yes vars_files: - worker_vars.yaml - ../common_vars.yaml tasks: - name: Install essentials apt: name: "{{ common_base_packages }}" state: latest update_cache: true ignore_errors: yes - name: Add Docker GPG apt Key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add Docker Repository apt_repository: repo: deb https://download.docker.com/linux/ubuntu focal stable state: present - name: Update apt and install docker-ce apt: name: docker-ce state: latest update_cache: true - name: Update ExecStart in Docker service file with exposing the port lineinfile: path: /lib/systemd/system/docker.service regexp: '^ExecStart=' line: 'ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375' state: present - name: Reload systemd to apply changes command: systemctl daemon-reload - name: Stop Docker service service: name: docker state: stopped - name: Start and enable Docker service: name: docker state: started enabled: yes - name: Create cron job for Docker cleanup cron: name: "Docker Cleanup" minute: "0" hour: "4" job: "docker system prune -a --volumes -f" state: present tags: - cron - name: Create a login user user: name: "{{ vm_username }}" password: "$6$OhH/TOtjPdxJgC9i$1ytWcV0yBuv5b4Momkka57tErCc4UqvG0zqydyyGQm3OXSaWPHTLHxvPjeCdA9B8T0./eXawj62xZ7gVtzokG/" groups: - docker - sudo state: present shell: /usr/bin/bash - name: Copy authorized keys authorized_key: user: "{{ vm_username }}" key: "{{ lookup('file', '{{ ssh_access_keys }}') }}" - name: Download rc files get_url: url: "{{ item.url }}" dest: "{{ item.dest }}" mode: '0644' loop: - { url: '{{ bashrc_file_url }}', dest: '{{ bashrc_mount_path }}' } - { url: '{{ vimrc_file_url }}', dest: '{{ vimrc_mount_path }}' }