方法 1: 使用 Ansible Vault 加密 sudo 密码 (推荐)
使用 Ansible Vault 来安全地存储每台机器的 sudo 密码。
步骤:
- 创建一个加密的 Vault 文件存储 sudo 密码:
ansible-vault create group_vars/all/vault.yml
2,在 vault.yml
中存放密码:
ansible_become_password_machine1: "machine1_password"
ansible_become_password_machine2: "machine2_password"
3,在你的主机清单文件中添加主机:
[node1]
node1 ansible_host=192.168.1.1
[node2]
node2 ansible_host=192.168.1.2
4,在你的 playbook 中引用这些加密的密码:
- hosts: all
become: yes
tasks:
- name: 停止服务
ansible.builtin.systemd:
name: daiwai3.service
state: stopped
become: yes
become_user: root
vars:
ansible_become_password: "{{ hostvars[inventory_hostname].ansible_become_password_machine1 }}"
5,运行 playbook 时解密 vault 文件:
ansible-playbook playbook.yml --ask-vault-pass
方法 2: 在主机清单中存储密码 (安全性较低)
直接将每台机器的 sudo 密码放在主机清单文件中。
[node1]
node1 ansible_host=192.168.1.1 ansible_become_password="password_for_machine1"
[node2]
node2 ansible_host=192.168.1.2 ansible_become_password="password_for_machine2"
在 playbook 中,Ansible 会自动使用相应主机的密码:
- hosts: all
become: yes
tasks:
- name: 停止服务
ansible.builtin.systemd:
name: daiwai3.service
state: stopped
become: yes
become_user: root
No Comments