evaluate_groups.yml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. ---
  2. - name: Populate config host groups
  3. hosts: localhost
  4. connection: local
  5. become: no
  6. gather_facts: no
  7. tasks:
  8. - name: Evaluate groups - g_etcd_hosts required
  9. fail:
  10. msg: This playbook requires g_etcd_hosts to be set
  11. when: g_etcd_hosts is not defined
  12. - name: Evaluate groups - g_master_hosts or g_new_master_hosts required
  13. fail:
  14. msg: This playbook requires g_master_hosts or g_new_master_hosts to be set
  15. when: g_master_hosts is not defined or g_new_master_hosts is not defined
  16. - name: Evaluate groups - g_node_hosts or g_new_node_hosts required
  17. fail:
  18. msg: This playbook requires g_node_hosts or g_new_node_hosts to be set
  19. when: g_node_hosts is not defined or g_new_node_hosts is not defined
  20. - name: Evaluate groups - g_lb_hosts required
  21. fail:
  22. msg: This playbook requires g_lb_hosts to be set
  23. when: g_lb_hosts is not defined
  24. - name: Evaluate groups - g_nfs_hosts required
  25. fail:
  26. msg: This playbook requires g_nfs_hosts to be set
  27. when: g_nfs_hosts is not defined
  28. - name: Evaluate groups - g_nfs_hosts is single host
  29. fail:
  30. msg: The nfs group must be limited to one host
  31. when: (groups[g_nfs_hosts] | default([])) | length > 1
  32. - name: Evaluate groups - g_glusterfs_hosts required
  33. fail:
  34. msg: This playbook requires g_glusterfs_hosts to be set
  35. when: g_glusterfs_hosts is not defined
  36. - name: Evaluate oo_all_hosts
  37. add_host:
  38. name: "{{ item }}"
  39. groups: oo_all_hosts
  40. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  41. ansible_become: "{{ g_sudo | default(omit) }}"
  42. with_items: "{{ g_all_hosts | default([]) }}"
  43. changed_when: no
  44. - name: Evaluate oo_masters
  45. add_host:
  46. name: "{{ item }}"
  47. groups: oo_masters
  48. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  49. ansible_become: "{{ g_sudo | default(omit) }}"
  50. with_items: "{{ g_master_hosts | union(g_new_master_hosts) | default([]) }}"
  51. changed_when: no
  52. - name: Evaluate oo_first_master
  53. add_host:
  54. name: "{{ g_master_hosts[0] }}"
  55. groups: oo_first_master
  56. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  57. ansible_become: "{{ g_sudo | default(omit) }}"
  58. when: g_master_hosts|length > 0
  59. changed_when: no
  60. - name: Evaluate oo_masters_to_config
  61. add_host:
  62. name: "{{ item }}"
  63. groups: oo_masters_to_config
  64. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  65. ansible_become: "{{ g_sudo | default(omit) }}"
  66. with_items: "{{ g_new_master_hosts | default(g_master_hosts | default([], true), true) }}"
  67. changed_when: no
  68. - name: Evaluate oo_etcd_to_config
  69. add_host:
  70. name: "{{ item }}"
  71. groups: oo_etcd_to_config
  72. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  73. ansible_become: "{{ g_sudo | default(omit) }}"
  74. with_items: "{{ g_etcd_hosts | default([]) }}"
  75. changed_when: no
  76. - name: Evaluate oo_first_etcd
  77. add_host:
  78. name: "{{ g_etcd_hosts[0] }}"
  79. groups: oo_first_etcd
  80. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  81. ansible_become: "{{ g_sudo | default(omit) }}"
  82. when: g_etcd_hosts|length > 0
  83. changed_when: no
  84. # We use two groups one for hosts we're upgrading which doesn't include embedded etcd
  85. # The other for backing up which includes the embedded etcd host, there's no need to
  86. # upgrade embedded etcd that just happens when the master is updated.
  87. - name: Evaluate oo_etcd_hosts_to_upgrade
  88. add_host:
  89. name: "{{ item }}"
  90. groups: oo_etcd_hosts_to_upgrade
  91. with_items: "{{ groups.oo_etcd_to_config if groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config | length > 0 else [] }}"
  92. changed_when: False
  93. - name: Evaluate oo_etcd_hosts_to_backup
  94. add_host:
  95. name: "{{ item }}"
  96. groups: oo_etcd_hosts_to_backup
  97. with_items: "{{ groups.oo_etcd_to_config if groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config | length > 0 else groups.oo_first_master }}"
  98. changed_when: False
  99. - name: Evaluate oo_nodes_to_config
  100. add_host:
  101. name: "{{ item }}"
  102. groups: oo_nodes_to_config
  103. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  104. ansible_become: "{{ g_sudo | default(omit) }}"
  105. with_items: "{{ g_new_node_hosts | default(g_node_hosts | default([], true), true) }}"
  106. changed_when: no
  107. # Skip adding the master to oo_nodes_to_config when g_new_node_hosts is
  108. - name: Add master to oo_nodes_to_config
  109. add_host:
  110. name: "{{ item }}"
  111. groups: oo_nodes_to_config
  112. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  113. ansible_become: "{{ g_sudo | default(omit) }}"
  114. with_items: "{{ g_master_hosts | default([]) }}"
  115. when: g_nodeonmaster | default(false) | bool and not g_new_node_hosts | default(false) | bool
  116. changed_when: no
  117. - name: Evaluate oo_lb_to_config
  118. add_host:
  119. name: "{{ item }}"
  120. groups: oo_lb_to_config
  121. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  122. ansible_become: "{{ g_sudo | default(omit) }}"
  123. with_items: "{{ g_lb_hosts | default([]) }}"
  124. changed_when: no
  125. - name: Evaluate oo_nfs_to_config
  126. add_host:
  127. name: "{{ item }}"
  128. groups: oo_nfs_to_config
  129. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  130. ansible_become: "{{ g_sudo | default(omit) }}"
  131. with_items: "{{ g_nfs_hosts | default([]) }}"
  132. changed_when: no
  133. - name: Evaluate oo_glusterfs_to_config
  134. add_host:
  135. name: "{{ item }}"
  136. groups: oo_glusterfs_to_config
  137. ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
  138. ansible_become: "{{ g_sudo | default(omit) }}"
  139. with_items: "{{ g_glusterfs_hosts | union(g_glusterfs_registry_hosts) | default([]) }}"
  140. changed_when: no