scaleup.yml 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. ---
  2. - name: Gather facts
  3. hosts: oo_etcd_to_config:oo_new_etcd_to_config
  4. roles:
  5. - openshift_etcd_facts
  6. post_tasks:
  7. - set_fact:
  8. etcd_hostname: "{{ etcd_hostname }}"
  9. etcd_ip: "{{ etcd_ip }}"
  10. - name: Configure etcd
  11. hosts: oo_new_etcd_to_config
  12. serial: 1
  13. any_errors_fatal: true
  14. vars:
  15. etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
  16. pre_tasks:
  17. - name: Add new etcd members to cluster
  18. command: >
  19. /usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }}
  20. --key-file {{ etcd_peer_key_file }}
  21. --ca-file {{ etcd_peer_ca_file }}
  22. -C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_ip }}:{{ etcd_client_port }}
  23. member add {{ etcd_hostname }} {{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_port }}
  24. delegate_to: "{{ etcd_ca_host }}"
  25. failed_when:
  26. - etcd_add_check.rc == 1
  27. - ("peerURL exists" not in etcd_add_check.stderr)
  28. register: etcd_add_check
  29. retries: 3
  30. delay: 10
  31. until: etcd_add_check.rc == 0
  32. - include_role:
  33. name: etcd
  34. tasks_from: server_certificates
  35. vars:
  36. etcd_peers: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
  37. etcd_certificates_etcd_hosts: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
  38. r_etcd_common_etcd_runtime: "{{ openshift.common.etcd_runtime }}"
  39. roles:
  40. - role: os_firewall
  41. when: etcd_add_check.rc == 0
  42. - role: openshift_etcd
  43. when: etcd_add_check.rc == 0
  44. etcd_peers: "{{ groups.oo_etcd_to_config | union(groups.oo_new_etcd_to_config)| default([], true) }}"
  45. etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
  46. etcd_certificates_etcd_hosts: "{{ groups.oo_etcd_to_config | default([], true) }}"
  47. etcd_initial_cluster_state: "existing"
  48. etcd_initial_cluster: "{{ etcd_add_check.stdout_lines[3] | regex_replace('ETCD_INITIAL_CLUSTER=','') | regex_replace('\"','') }}"
  49. etcd_ca_setup: False
  50. r_etcd_common_etcd_runtime: "{{ openshift.common.etcd_runtime }}"
  51. - role: nickhammond.logrotate
  52. when: etcd_add_check.rc == 0
  53. post_tasks:
  54. - name: Verify cluster is stable
  55. command: >
  56. /usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }}
  57. --key-file {{ etcd_peer_key_file }}
  58. --ca-file {{ etcd_peer_ca_file }}
  59. -C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_hostname }}:{{ etcd_client_port }}
  60. cluster-health
  61. register: scaleup_health
  62. retries: 3
  63. delay: 30
  64. until: scaleup_health.rc == 0
  65. - name: Update master etcd client urls
  66. hosts: oo_masters_to_config
  67. serial: 1
  68. vars:
  69. etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
  70. openshift_ca_host: "{{ groups.oo_first_master.0 }}"
  71. openshift_master_etcd_hosts: "{{ hostvars
  72. | oo_select_keys(groups['oo_etcd_to_config'] | union(groups['oo_new_etcd_to_config'] | default([]) ))
  73. | oo_collect('openshift.common.hostname')
  74. | default(none, true) }}"
  75. openshift_master_etcd_port: "{{ (etcd_client_port | default('2379')) if (groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config) else none }}"
  76. roles:
  77. - role: openshift_master_facts
  78. post_tasks:
  79. - include_role:
  80. name: openshift_master
  81. tasks_from: update_etcd_client_urls