ansible如何写一个批量修改密码的playbook
时间: 2023-07-04 09:06:46 浏览: 245
可以通过Ansible的User模块来批量修改密码。以下是一个示例playbook:
```yaml
- name: 修改密码
hosts: all
become: true
vars:
new_password: "新密码"
tasks:
- name: 修改密码
user:
name: "{{ item }}"
password: "{{ new_password | password_hash('sha512') }}"
with_items:
- 用户1
- 用户2
- 用户3
```
在这个playbook中,我们使用`user`模块来修改指定用户的密码。首先,我们定义了`new_password`变量来存储新密码。然后,在`tasks`部分中,我们使用`with_items`循环遍历要修改的用户列表,并使用`user`模块修改他们的密码。
注意,我们在密码字段中使用了`password_hash`过滤器,以确保密码以安全的方式存储。在这个示例中,我们使用SHA-512哈希算法来加密密码。
相关问题
ansible批量修改linux密码
使用 Ansible 批量修改 Linux 密码可以按照以下步骤进行操作:
1. 在 Ansible 控制节点上创建一个存储密码的加密文件,例如 password.txt,确保只有具有读取权限的管理员可以访问该文件。
2. 创建一个 Ansible Playbook,例如 change_password.yml,用于执行密码更改任务。该 Playbook 应该包括以下步骤:
a. 通过 Ansible 的 `ansible.builtin.user` 模块创建一个临时管理员用户,例如 tempadmin。
b. 通过 Ansible 的 `ansible.builtin.copy` 模块将加密文件 password.txt 复制到远程服务器上。
c. 通过 Ansible 的 `ansible.builtin.script` 模块执行一个本地脚本,例如 change_password.sh,在远程服务器上更改密码。该脚本应该使用 `chpasswd` 命令将密码文件中的密码设置为所需密码。
d. 通过 Ansible 的 `ansible.builtin.user` 模块删除临时管理员用户 tempadmin。
3. 在 Ansible 的 inventory 文件中定义需要更改密码的服务器列表。
4. 运行 Ansible Playbook,例如 `ansible-playbook change_password.yml`,以执行密码更改任务。
请注意,使用 Ansible 批量更改密码需要小心谨慎。在更改密码之前,请确保已备份服务器和密码文件,并遵循安全最佳实践。
ansible批量修改主机密码
以下是关于 ansible 批量修改主机密码的答案:
可以通过 Ansible 的 user 模块来批量修改主机密码。首先需要在 playbook 中定义一个包含要修改密码的主机的主机组,然后使用 user 模块来定义用户名和新密码。
以下是一个示例 playbook:
```
- hosts: example_hosts
gather_facts: no
tasks:
- name: Change passwords for user
user:
name: example_user
password: "{{ 'new_password' | password_hash('sha512', 'mysecretsalt') }}"
```
在这个示例中,`example_hosts` 是包含要修改密码的主机的主机组,`example_user` 是要修改密码的用户名,而 `new_password` 是新密码。
注意,密码需要使用 `password_hash` 过滤器进行加密才能进行设置。在这个示例中,使用 SHA-512 哈希函数进行加密,并指定一个 salt 来提高安全性。
当运行 playbook 时,Ansible 将使用 user 模块在所有包含在 `example_hosts` 主机组中的主机上修改 `example_user` 的密码。
希望这个答案对你有所帮助!如果你有更多的问题,请随时提出。
阅读全文