在Ansible中实现角色权限控制的一种常见方法是使用Ansible Vault来加密和解密敏感的角色变量。下面是一个包含代码示例的解决方法:
$ ansible-vault create roles_password.txt
在密码文件中输入一个密码,并保存文件。
创建一个包含敏感角色变量的角色文件,例如roles/vars/main.yml
。在这个文件中,可以指定需要加密的变量,并使用ansible-vault encrypt_string
命令将其加密。例如:
# roles/vars/main.yml
db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
62343539383539653164663236333933363561633237653034303837623364346631373932363937
6639303432326632393765616365373630626561386461300a376139303162323931303332666632
61336638306437343833376136303664373238373965313334353762353739346234646465353664
3432613530616662350a3632333435333539326533653734616633343265373063616465316133
3136
# playbook.yml
- hosts: all
roles:
- { role: my_role, vars_file: roles/vars/main.yml }
ansible-vault
命令解密角色变量。例如:$ ansible-playbook --vault-password-file=roles_password.txt playbook.yml
这样,只有拥有正确密码的用户才能解密和查看角色变量的值,从而实现了角色权限控制。
上一篇:Ansible中的角色串行执行