system_container.yml 3.7 KB

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