使用Ansible自动部署时,某些操作需要sudo执行。
使用步骤
- 首先生成密码文件,创建时需要输入加密此文件的密码:
ansible-vault create /etc/.pass/my-secret
- 在打开的文件里输入如下内容,将
mysudopassword
替换为远程主机密码:ansible_sudo_pass: mysudopassword
- 创建vault文件,保存上面第一步创建的密码:
echo your_pass_word >> vault.txt
- 在ansible playbook配置文件中,通过
vars_files
为远程主机指定密码文件:- hosts: my_server_name vars_files: - /etc/.pass/my-secret become: yes become_method: sudo tasks: - name: install packages apt: name: pandoc state: latest
- 通过如下命令使用:
ansible-playbook my-ansible.yml --vault-password-file=vault.txt
说明
- 若要修改配置的sudo密码,可使用以下命令:
ansible-vault edit /etc/.pass/my-secret --vault-password-file=vault.txt
缺点
尽管sudo密码是加密存储,但用户加密的密码,即上文中的vault.txt却是明文存储,建议使用后删除或至少配置为仅当前用户可读。