#consul_template An Ansible role to install and configure HashiCorp’s consul-template, securely fetching TLS certificates and private keys\ from HashiCorp Vault using AppRole authentication, rendering them to disk, and reloading services when certificates change. ### Requirements • consul-template binary downloaded from HashiCorp releases. • Network connectivity from the target host to the Vault instance (vault_address). • Appropriate Vault AppRole credentials (vault_approle_role_id, vault_approle_secret_id) provisioned by Terraform or other automation. ### Role Variables The following variables are required and should be set either through inventory or as role parameters: | Variable | Description | Default | | vault_address | URL of your HashiCorp Vault instance | None (required) | | vault_approle_role_id | Vault AppRole Role ID for consul-template authentication | None (required) | | vault_approle_secret_id | Vault AppRole Secret ID for consul-template authentication | None (required) | | environment | Environment identifier (e.g., prod, nonprod) | None (required) | | short_hostname | Short hostname of the target server (used in file naming) | None (required) | ### Dependencies No direct Ansible Galaxy role dependencies. However, it relies on Terraform to provision AppRole credentials and Vault secrets. ### Example Playbook Example playbook demonstrating basic role usage: ```yml - hosts: webservers become: true roles: - role: consul_template vars: vault_address: "https://vault.example.com:8200" vault_approle_role_id: "{{ vault_approle_role_id }}" vault_approle_secret_id: "{{ vault_approle_secret_id }}" environment: "prod" short_hostname: "web01" ``` ### License BSD ### Author Information Created by Patrick De Ruiter.