|  | 
|  | 1 | +--- | 
|  | 2 | +- name: "Ensure transit secret engine is configured" | 
|  | 3 | +  hashivault_secret_engine: | 
|  | 4 | +    name: "{{ vault_auto_unseal_transit_engine_name }}" | 
|  | 5 | +    backend: "transit" | 
|  | 6 | +    state: "present" | 
|  | 7 | +    ca_cert: "{{ vault_ca_cert | default(omit) }}" | 
|  | 8 | +    url: "{{ vault_api_addr }}" | 
|  | 9 | +    token: "{{ vault_token }}" | 
|  | 10 | +    ca_cert: "{{ vault_ca_cert | default(omit) }}" | 
|  | 11 | + | 
|  | 12 | +- name: "Create transit/keys/autounseal" | 
|  | 13 | +  hashivault_secret: | 
|  | 14 | +    mount_point: "transit/keys" | 
|  | 15 | +    secret: "{{ vault_auto_unseal_key_name }}" | 
|  | 16 | +    url: "{{ vault_api_addr }}" | 
|  | 17 | +    token: "{{ vault_token }}" | 
|  | 18 | +    ca_cert: "{{ vault_ca_cert | default(omit) }}" | 
|  | 19 | + | 
|  | 20 | +- name: "Create autounseal policy" | 
|  | 21 | +  hashivault_policy: | 
|  | 22 | +    name: "{{ vault_auto_unseal_policy_name }}" | 
|  | 23 | +    rules: | | 
|  | 24 | +      path "transit/encrypt/{{ vault_auto_unseal_key_name }}" { | 
|  | 25 | +        capabilities = [ "update" ] | 
|  | 26 | +      } | 
|  | 27 | +      path "transit/decrypt/{{ vault_auto_unseal_key_name }}" { | 
|  | 28 | +        capabilities = [ "update" ] | 
|  | 29 | +      } | 
|  | 30 | +    state: present | 
|  | 31 | +    url: "{{ vault_api_addr }}" | 
|  | 32 | +    token: "{{ vault_token }}" | 
|  | 33 | +    ca_cert: "{{ vault_ca_cert | default(omit) }}" | 
|  | 34 | + | 
|  | 35 | +- name: "Create an orphan periodic client token with the autounseal policy attached" | 
|  | 36 | +  hashivault_token_create: | 
|  | 37 | +    display_name: "{{ vault_auto_unseal_token_name }}" | 
|  | 38 | +    period: "{{ vault_auto_unseal_token_period }}" | 
|  | 39 | +    policies: | 
|  | 40 | +      - "{{ vault_auto_unseal_policy_name }}" | 
|  | 41 | +    wrap_ttl: "{{ vault_auto_unseal_token_wrap_ttl }}" | 
|  | 42 | +    url: "{{ vault_api_addr }}" | 
|  | 43 | +    token: "{{ vault_token }}" | 
|  | 44 | +    ca_cert: "{{ vault_ca_cert | default(omit) }}" | 
|  | 45 | +  register: vault_auto_unseal_wrapping_token | 
|  | 46 | + | 
|  | 47 | +- name: Print vault keys | 
|  | 48 | +  debug: | 
|  | 49 | +    var: vault_auto_unseal_wrapping_token | 
|  | 50 | +  when: | 
|  | 51 | +    - vault_auto_unseal_log_token | bool | 
|  | 52 | + | 
|  | 53 | +- name: Set vault_auto_unseal_token fact | 
|  | 54 | +  set_fact: | 
|  | 55 | +    vault_keys: "{{ vault_auto_unseal_wrapping_token }}" | 
|  | 56 | +  when: | 
|  | 57 | +    - vault_auto_unseal_set_token_fact | bool | 
|  | 58 | + | 
|  | 59 | +- name: Write vault keys to a file | 
|  | 60 | +  copy: | 
|  | 61 | +    content: "{{ vault_auto_unseal_wrapping_token | to_nice_json }}" | 
|  | 62 | +    dest: "{{ vault_auto_unseal_write_token_file_path }}" | 
|  | 63 | +    mode: 0600 | 
|  | 64 | +  delegate_to: "{{ vault_auto_unseal_write_token_file_host }}" | 
|  | 65 | +  when: | 
|  | 66 | +    - vault_auto_unseal_write_token_file | bool | 
0 commit comments