You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.6 KiB

  1. ---
  2. - include: ../shared/check_vault.yml
  3. when: inventory_hostname in groups.vault
  4. - include: sync_secrets.yml
  5. when: inventory_hostname in groups.vault
  6. - include: ../shared/find_leader.yml
  7. when: inventory_hostname in groups.vault and vault_cluster_is_initialized|d()
  8. ## Sync Certs
  9. - include: sync_vault_certs.yml
  10. when: inventory_hostname in groups.vault
  11. - include: sync_etcd_certs.yml
  12. when: inventory_hostname in groups.etcd
  13. ## Generate Certs
  14. # Start a temporary instance of Vault
  15. - include: start_vault_temp.yml
  16. when: >-
  17. inventory_hostname == groups.vault|first and
  18. not vault_cluster_is_initialized
  19. # Set vault_leader_url for all nodes based on above
  20. - name: vault | bootstrap
  21. set_fact:
  22. vault_leader_url: "{{ hostvars[groups.vault|first]['vault_leader_url'] }}"
  23. when: not vault_cluster_is_initialized
  24. # Ensure vault PKI mounts exists
  25. - include: ../shared/create_mount.yml
  26. vars:
  27. create_mount_path: "{{ vault_ca_options.common_name }}"
  28. create_mount_default_lease_ttl: "{{ vault_default_lease_ttl }}"
  29. create_mount_max_lease_ttl: "{{ vault_max_lease_ttl }}"
  30. create_mount_description: "Vault Root CA"
  31. create_mount_cert_dir: "{{ vault_cert_dir }}"
  32. create_mount_config_ca_needed: "{{ not vault_ca_cert_needed }}"
  33. when: inventory_hostname == groups.vault|first
  34. # Generate root CA certs for Vault if none exist
  35. - include: ../shared/gen_ca.yml
  36. vars:
  37. gen_ca_cert_dir: "{{ vault_cert_dir }}"
  38. gen_ca_mount_path: "{{ vault_ca_options.common_name }}"
  39. when: >-
  40. inventory_hostname in groups.vault and
  41. not vault_cluster_is_initialized and
  42. vault_ca_cert_needed
  43. # Generate Vault API certs
  44. - include: gen_vault_certs.yml
  45. when: inventory_hostname in groups.vault and vault_api_cert_needed
  46. # Ensure etcd PKI mounts exists
  47. - include: ../shared/create_mount.yml
  48. vars:
  49. create_mount_path: "{{ vault_etcd_mount_path }}"
  50. create_mount_default_lease_ttl: "{{ vault_etcd_default_lease_ttl }}"
  51. create_mount_max_lease_ttl: "{{ vault_etcd_max_lease_ttl }}"
  52. create_mount_description: "Etcd Root CA"
  53. create_mount_cert_dir: "{{ vault_etcd_cert_dir }}"
  54. create_mount_config_ca_needed: "{{ not vault_etcd_ca_cert_needed }}"
  55. when: inventory_hostname == groups.vault|first
  56. # Generate root CA certs for etcd if none exist
  57. - include: ../shared/gen_ca.yml
  58. vars:
  59. gen_ca_cert_dir: "{{ vault_etcd_cert_dir }}"
  60. gen_ca_mount_path: "{{ vault_etcd_mount_path }}"
  61. when: inventory_hostname in groups.etcd and vault_etcd_ca_cert_needed
  62. - include: create_etcd_role.yml
  63. # Update all host's CA bundle, etcd CA will be added in etcd role
  64. - include: ca_trust.yml