如何使用 ansible Inventory 和模块 "htpasswd" 根据环境创建用户
How create users per enviroment using ansible Inventory and module "htpasswd"
我是ansible的新手。我在“/etc/httpd/.htpasswd”中编写了用于创建用户和密码的角色,如下所示:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: dev
password: dev
group: apache
mode: 0640
become: true
现在,我试图了解如何使用清单(或任何其他方式)为此模型的每个环境设置用户和密码占位符变量。就像,如果我 运行 "ansible playbook -i inventories/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 有类似的东西吗?或者有人可以向我解释一下最佳做法吗?
默认情况下,每个主机都被 Ansible 分配到一个 all
组。使用以下结构,您可以根据库存定义组变量。
- inventories/dev/hosts
- inventories/dev/group_vars/all.yml
- inventories/staging/hosts
- inventories/staging/group_vars/all.yml
在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
我是ansible的新手。我在“/etc/httpd/.htpasswd”中编写了用于创建用户和密码的角色,如下所示:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: dev
password: dev
group: apache
mode: 0640
become: true
现在,我试图了解如何使用清单(或任何其他方式)为此模型的每个环境设置用户和密码占位符变量。就像,如果我 运行 "ansible playbook -i inventories/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 有类似的东西吗?或者有人可以向我解释一下最佳做法吗?
默认情况下,每个主机都被 Ansible 分配到一个 all
组。使用以下结构,您可以根据库存定义组变量。
- inventories/dev/hosts
- inventories/dev/group_vars/all.yml
- inventories/staging/hosts
- inventories/staging/group_vars/all.yml
在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