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.

38 lines
1.4 KiB

  1. ---
  2. - name: "bootstrap/gen_ca | Ensure cert_dir {{ gen_ca_cert_dir }} exists on necessary hosts"
  3. file:
  4. mode: 0755
  5. path: "{{ gen_ca_cert_dir }}"
  6. state: directory
  7. delegate_to: "{{ item }}"
  8. with_items: "{{ (groups[gen_ca_copy_group|default('vault')]) | union(groups['vault']) }}"
  9. - name: "bootstrap/gen_ca | Generate {{ gen_ca_mount_path }} root CA"
  10. hashivault_write:
  11. url: "{{ vault_leader_url }}"
  12. token: "{{ vault_root_token }}"
  13. ca_cert: "{{ vault_cert_dir }}/ca.pem"
  14. secret: "{{ gen_ca_mount_path }}/root/generate/exported"
  15. data: "{{ gen_ca_vault_options }}"
  16. run_once: true
  17. no_log: true
  18. register: vault_ca_gen
  19. - name: "bootstrap/gen_ca | Copy {{ gen_ca_mount_path }} root CA cert locally"
  20. copy:
  21. content: "{{ vault_ca_gen['data']['data']['certificate'] }}"
  22. dest: "{{ gen_ca_cert_dir }}/ca.pem"
  23. mode: 0644
  24. when: '"data" in vault_ca_gen.keys()'
  25. delegate_to: "{{ item }}"
  26. with_items: "{{ (groups[gen_ca_copy_group|default('vault')]) | union(groups['vault']) }}"
  27. - name: "bootstrap/gen_ca | Copy {{ gen_ca_mount_path }} root CA key to necessary hosts"
  28. copy:
  29. content: "{{ vault_ca_gen['data']['data']['private_key']}}"
  30. dest: "{{ gen_ca_cert_dir }}/ca-key.pem"
  31. mode: 0640
  32. when: '"data" in vault_ca_gen.keys()'
  33. delegate_to: "{{ item }}"
  34. with_items: "{{ (groups[gen_ca_copy_group|default('vault')]) | union(groups['vault']) }}"