--- - name: create_role | Create a policy for the new role hashivault_policy_set: url: "{{ vault_leader_url }}" token: "{{ vault_root_token }}" ca_cert: "{{ vault_cert_dir }}/ca.pem" name: "{{ create_role_name }}" rules: >- {%- if create_role_policy_rules|d("default") == "default" -%} {{ { 'path': { create_role_mount_path + '/issue/' + create_role_name: {'policy': 'write'}, create_role_mount_path + '/roles/' + create_role_name: {'policy': 'read'} }} | to_json + '\n' }} {%- else -%} {{ create_role_policy_rules | to_json + '\n' }} {%- endif -%} - name: create_role | Create {{ create_role_name }} role in the {{ create_role_mount_path }} pki mount hashivault_write: url: "{{ vault_leader_url }}" token: "{{ vault_root_token }}" ca_cert: "{{ vault_cert_dir }}/ca.pem" secret: "{{ create_role_mount_path }}/roles/{{ create_role_name }}" data: | {%- if create_role_options|d("default") == "default" -%} { allow_any_name: true } {%- else -%} {{ create_role_options | to_json }} {%- endif -%} ## Userpass based auth method - include_tasks: gen_userpass.yml vars: gen_userpass_password: "{{ create_role_password }}" gen_userpass_policies: "{{ create_role_name }}" gen_userpass_role: "{{ create_role_name }}" gen_userpass_username: "{{ create_role_name }}"