我是ansible的新手。我在“ /etc/httpd/.htpasswd ”中创建了用于创建用户和密码的ansible角色,如下所示:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: dev
password: dev
group: apache
mode: 0640
become: true
现在,我试图了解如何使用库存(或任何其他方式)为此模型设置每个环境的用户和密码占位符变量。就像,如果我运行“ansible playbook -i inventoryories / dev”,那么可以设置这个模型的角色:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: "{{ inventory.htpasswd.name }}"
password: "{{ inventory.htpasswd.password }}"
group: apache
mode: 0640
become: true
在每个环境的库存文件夹中,文件名为“htpasswd”,其名称和密码内容如下:
name: dev
password: dev
Ansible有类似的东西吗?或者有人可以解释一下最佳做法是什么?
答案 0 :(得分:1)
默认情况下,Ansible将每个主机分配到all
组。使用以下结构,您可以根据库存定义组变量。
在inventories/dev/group_vars/all.yml
:
name: dev
password: dev
在inventories/staging/group_vars/all.yml
:
name: staging
password: staging
然后在你的任务中,用他们的名字引用变种:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: "{{ name }}"
password: "{{ password }}"
group: apache
mode: 0640
become: true