system_container.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. ---
  2. - name: Pull etcd system container
  3. command: atomic pull --storage=ostree {{ openshift.etcd.etcd_image }}
  4. register: pull_result
  5. changed_when: "'Pulling layer' in pull_result.stdout"
  6. - name: Set initial Etcd cluster
  7. set_fact:
  8. etcd_initial_cluster: >-
  9. {% for host in etcd_peers | default([]) -%}
  10. {% if loop.last -%}
  11. {{ hostvars[host].etcd_hostname }}={{ etcd_peer_url_scheme }}://{{ hostvars[host].etcd_ip }}:{{ etcd_peer_port }}
  12. {%- else -%}
  13. {{ hostvars[host].etcd_hostname }}={{ etcd_peer_url_scheme }}://{{ hostvars[host].etcd_ip }}:{{ etcd_peer_port }},
  14. {%- endif -%}
  15. {% endfor -%}
  16. - name: Check etcd system container package
  17. command: >
  18. atomic containers list --no-trunc -a -f container=etcd -f backend=ostree
  19. register: etcd_result
  20. - name: Unmask etcd service
  21. systemd:
  22. name: etcd
  23. state: stopped
  24. enabled: no
  25. masked: no
  26. daemon_reload: yes
  27. register: task_result
  28. failed_when: task_result|failed and 'could not' not in task_result.msg|lower
  29. when: "'etcd' not in etcd_result.stdout"
  30. - name: Disable etcd_container
  31. systemd:
  32. name: etcd_container
  33. state: stopped
  34. enabled: no
  35. daemon_reload: yes
  36. register: task_result
  37. failed_when: task_result|failed and 'could not' not in task_result.msg|lower
  38. - name: Remove etcd_container.service
  39. file:
  40. path: /etc/systemd/system/etcd_container.service
  41. state: absent
  42. - name: Systemd reload configuration
  43. systemd: name=etcd_container daemon_reload=yes
  44. - name: Check for previous etcd data store
  45. stat:
  46. path: "{{ etcd_data_dir }}/member/"
  47. register: src_datastore
  48. - name: Check for etcd system container data store
  49. stat:
  50. path: "{{ r_etcd_common_system_container_host_dir }}/etcd.etcd/member"
  51. register: dest_datastore
  52. - name: Ensure that etcd system container data dirs exist
  53. file: path="{{ item }}" state=directory
  54. with_items:
  55. - "{{ r_etcd_common_system_container_host_dir }}/etc"
  56. - "{{ r_etcd_common_system_container_host_dir }}/etcd.etcd"
  57. - name: Copy etcd data store
  58. command: >
  59. cp -a {{ etcd_data_dir }}/member
  60. {{ r_etcd_common_system_container_host_dir }}/etcd.etcd/member
  61. when:
  62. - src_datastore.stat.exists
  63. - not dest_datastore.stat.exists
  64. - name: Install or Update Etcd system container package
  65. oc_atomic_container:
  66. name: etcd
  67. image: "{{ openshift.etcd.etcd_image }}"
  68. state: latest
  69. values:
  70. - ETCD_LISTEN_PEER_URLS={{ etcd_listen_peer_urls }}
  71. - ETCD_NAME={{ etcd_hostname }}
  72. - ETCD_INITIAL_CLUSTER={{ etcd_initial_cluster }}
  73. - ETCD_LISTEN_CLIENT_URLS={{ etcd_listen_client_urls }}
  74. - ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_initial_advertise_peer_urls }}
  75. - ETCD_INITIAL_CLUSTER_STATE={{ etcd_initial_cluster_state }}
  76. - ETCD_INITIAL_CLUSTER_TOKEN={{ etcd_initial_cluster_token }}
  77. - ETCD_ADVERTISE_CLIENT_URLS={{ etcd_advertise_client_urls }}
  78. - ETCD_CA_FILE={{ etcd_system_container_conf_dir }}/ca.crt
  79. - ETCD_CERT_FILE={{ etcd_system_container_conf_dir }}/server.crt
  80. - ETCD_KEY_FILE={{ etcd_system_container_conf_dir }}/server.key
  81. - ETCD_PEER_CA_FILE={{ etcd_system_container_conf_dir }}/ca.crt
  82. - ETCD_PEER_CERT_FILE={{ etcd_system_container_conf_dir }}/peer.crt
  83. - ETCD_PEER_KEY_FILE={{ etcd_system_container_conf_dir }}/peer.key
  84. - ETCD_TRUSTED_CA_FILE={{ etcd_system_container_conf_dir }}/ca.crt
  85. - ETCD_PEER_TRUSTED_CA_FILE={{ etcd_system_container_conf_dir }}/ca.crt