main.yml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # Configure groups
  2. - name: Ensure group "{{ docker_group }}" exists
  3. include_role:
  4. name: add_group
  5. vars:
  6. add_group_groups: "{{ docker_group }}"
  7. # Install TLS files
  8. - name: Install the TLS CA
  9. copy:
  10. src: "{{ docker_ca }}"
  11. dest: "{{ docker_keydir }}/ca.pem"
  12. owner: "{{ docker_owner }}"
  13. group: "{{ docker_group }}"
  14. mode: '0400'
  15. register: docker_copy
  16. changed_when: docker_copy.src is defined
  17. when: docker_ca is defined
  18. - name: Install the TLS certificate
  19. copy:
  20. src: "{{ docker_cert }}"
  21. dest: "{{ docker_keydir }}/node.pem"
  22. owner: "{{ docker_owner }}"
  23. group: "{{ docker_group }}"
  24. mode: '0400'
  25. register: docker_copy
  26. changed_when: docker_copy.src is defined
  27. when: docker_cert is defined
  28. - name: Install the TLS key
  29. copy:
  30. src: "{{ docker_key }}"
  31. dest: "{{ docker_keydir }}/node.key"
  32. owner: "{{ docker_owner }}"
  33. group: "{{ docker_group }}"
  34. mode: '0400'
  35. register: docker_copy
  36. changed_when: docker_copy.src is defined
  37. when: docker_cert is defined
  38. # Install docker
  39. - name: Add the Docker apt repo
  40. vars:
  41. docker_gpgkey: /etc/apt/trusted.gpg.d/docker.asc
  42. block:
  43. - name: Fetch the Docker GPG key
  44. ansible.builtin.get_url:
  45. url: https://download.docker.com/linux/ubuntu/gpg
  46. dest: "{{ docker_gpgkey }}"
  47. - name: Add the Docker repo
  48. ansible.builtin.apt_repository:
  49. repo: "deb [arch=arm64 signed-by={{ docker_gpgkey }}] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
  50. state: present
  51. - name: Sync apt
  52. apt:
  53. update_cache: yes
  54. changed_when: false
  55. - name: Install Docker
  56. apt:
  57. name:
  58. - docker-ce
  59. - docker-ce-cli
  60. - containerd.io
  61. - docker-compose-plugin
  62. - python3-docker
  63. - python3-websocket
  64. state: latest
  65. # Run docker
  66. - name: Start Docker
  67. systemd:
  68. name: docker
  69. enabled: no
  70. state: started
  71. when: docker_run
  72. - name: Start a swarm from first node
  73. community.docker.docker_swarm:
  74. state: present
  75. delegate_to: "{{ ansible_play_hosts | first }}"
  76. run_once: true