ansible批量修改主机密码
时间: 2023-09-19 15:11:12 浏览: 288
以下是关于 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` 的密码。
希望这个答案对你有所帮助!如果你有更多的问题,请随时提出。
相关问题
ansible批量修改主机root密码
Ansible是一个强大的自动化运维工具,它支持通过YAML编写配置文件来进行远程任务执行,包括批量修改服务器的root密码。要在Ansible中批量修改主机的root密码,你可以按照以下步骤操作:
1. 创建一个新的 playbook(脚本文件),例如`change_password.yml`:
```yaml
---
- name: Change root passwords on hosts
hosts: all
become: true
vars:
root_password: "new_root_password"
tasks:
- name: Set new root password
user:
name: root
password: "{{ root_password }}"
state: present
when: ansible_user == 'root' or inventory_hostname == 'localhost'
```
这里假设所有主机都使用`become: true`(如果需要sudo权限),并且目标用户是root。
2. 配置你的Ansible环境,确保`ansible.cfg`或其他相关配置文件包含了目标主机的清单(hosts),或者直接在`playbook`里指定`hosts: all`。
3. 运行playbook:
```bash
ansible-playbook change_password.yml
```
注意:在生产环境中,强烈建议在非工作时间执行此操作,并确认备份当前的root密码,因为一旦密码更改,就无法恢复原密码了。
ansible批量修改主机名
可以通过 Ansible 的 `hostname` 模块批量修改主机名。以下是一个修改主机名的 playbook 示例:
```yaml
- name: set hostname
hosts: all
become: true
tasks:
- name: set hostname
hostname:
name: new_hostname_here
```
将 `new_hostname_here` 替换为你想要设置的新主机名,然后运行 playbook 即可批量修改所有主机的主机名。
阅读全文