Ansible modules for the Consul ACL system:
consul_acl_policyconsul_acl_token
Install using pip:
pip install ansible-modules-consul-acl
The modules have no external dependencies except Ansible.
The documentation for each module is mostly complete - use ansible-doc to view it.
- name: Create ACL policy
consul_acl_policy:
name: example
# Rules specified as an HCL string
rules: |
service "example" {
policy = "write"
}
state: present
url: https://localhost:8500
token: a22c5e4f-0f48-4907-82db-843c6baf75be # Requires acl:write
register: consul_acl_policy
- name: Create ACL token
consul_acl_token:
description: Example token
# Policies specified as a list of PolicyLink objects: https://www.consul.io/api/acl/tokens.html#policies
policies:
- id: "{{ consul_acl_policy.id }}"
local: true
state: present
url: https://localhost:8500
token: a22c5e4f-0f48-4907-82db-843c6baf75be # Requires acl:write
register: consul_acl_tokenSome of the environment variables for the Consul CLI will be used if they are defined:
CONSUL_HTTP_ADDRfor theurlparameter. Prefix withhttps://instead of settingCONSUL_HTTP_SSL=trueCONSUL_HTTP_TOKENfor thetokenparameterCONSUL_CLIENT_CERTfor theclient_certparameterCONSUL_CLIENT_KEYfor theclient_keyparameter
To run the functional tests, set the following environment variables from the project root directory:
export ANSIBLE_LIBRARY="$PWD/ansible/modules/consul_acl"
export ANSIBLE_MODULE_UTILS="$PWD/ansible/module_utils"Then run the test playbooks in a Python environment without ansible-modules-consul-acl installed.