在Ansible里如何使用sudo

使用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却是明文存储,建议使用后删除或至少配置为仅当前用户可读。

留言