如何用Ansible脚本在一台或多台远程主机上安全地修改用户密码?
时间: 2024-12-17 21:37:53 浏览: 8
在Ansible中,你可以使用`ansible-users`模块来管理用户的密码。这个模块支持在一个或多个远程主机上安全地更新用户密码。以下是基本步骤:
1. 首先,确保你已经配置了 Ansible 并且有适当的SSH连接到目标机器。
2. 创建一个 playbook 文件,比如 `change_password.yml`,并编写如下的内容:
```yaml
---
- hosts: remote_hosts
become: yes
tasks:
- name: Change user password
ansible_users:
username: <username>
password: <<new_password>>
state: present
vars_prompt:
- name: new_password
prompt: "Enter the new password for user {{ username }}:"
validate: bcrypt
```
这里的 `<username>` 是你要修改密码的用户名,`<new_password>` 是新密码(注意,为了安全,你应该在运行playbook时提供这个值,而不是直接在文件中写明)。
3. 在命令行中,运行如下命令来运行 playbook,并输入新密码:
```bash
ansible-playbook change_password.yml -e 'new_password=<your_new_password>'
```
这里 `-e` 参数用于传递变量给 playbook,`validate: bcrypt` 会确保密码强度符合要求。
4. 安装 `bcrypt` 模块,如果还没有的话,可以在 Ansible Galaxy 中找到并安装它。
阅读全文