docker-certs-enable.yaml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. ---
  2. - name: "Docker Certs enable"
  3. hosts: "{{ my_hosts | d([]) }}"
  4. become: true
  5. vars:
  6. certs_path: "/root/docker-certs"
  7. tasks:
  8. - name: Check if docker certs are existing
  9. ansible.builtin.stat:
  10. path: "{{ certs_path }}"
  11. register: certs_dir
  12. - name: Fail if docker certs are not existing
  13. ansible.builtin.fail:
  14. msg: "Docker certificates are not existing in /root/docker-certs."
  15. when: not certs_dir.stat.exists
  16. - name: Get machine's primary internal ip address from eth0 interface
  17. ansible.builtin.setup:
  18. register: ip_address
  19. - name: Set machine's primary internal ip address
  20. ansible.builtin.set_fact:
  21. ip_address: "{{ ip_address.ansible_facts.ansible_default_ipv4.address }}"
  22. - name: Check if ip_address is a valid ip address
  23. ansible.builtin.assert:
  24. that:
  25. - ip_address is match("^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")
  26. fail_msg: "ip_address is not a valid ip address."
  27. success_msg: "ip_address is a valid ip address."
  28. - name: Change docker daemon to use certs
  29. ansible.builtin.lineinfile:
  30. path: /lib/systemd/system/docker.service
  31. line: >
  32. ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  33. -H tcp://{{ ip_address }}:2376 --tlsverify --tlscacert={{ certs_path }}/ca.pem
  34. --tlscert={{ certs_path }}/server-cert.pem --tlskey={{ certs_path }}/server-key.pem
  35. regexp: '^ExecStart='
  36. state: present
  37. - name: Reload systemd daemon
  38. ansible.builtin.systemd:
  39. daemon_reload: true
  40. - name: Restart docker daemon
  41. ansible.builtin.systemd:
  42. name: docker
  43. state: restarted
  44. enabled: true