用sudo运行ansible playbook

Rob*_*ert 1 ansible ansible-playbook

我有一个剧本,我想用sudo运行它.这是我的ansible剧本:

site.yml

---
- name: Server
  hosts: node1
  sudo: yes
  roles:
    - dbserver
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了这个:

ansible-playbook -i hosts site.yml

PLAY [Server] ***************************************************************** 

GATHERING FACTS *************************************************************** 
fatal: [node1] => Missing sudo password

TASK: [dbserver | installing server] ****************************************** 
FATAL: no hosts matched or all hosts have already failed -- aborting


PLAY RECAP ******************************************************************** 
           to retry, use: --limit @/home/robe/site.retry

node1                      : ok=0    changed=0    unreachable=1    failed=0
Run Code Online (Sandbox Code Playgroud)

然后我在site.yml上添加ansible sudo pass:

---
- name: Server
  hosts: node1
  sudo_pass: ubuntu
  roles:
    - dbserver
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR: sudo_pass is not a legal parameter at this level in an Ansible Playbook
Run Code Online (Sandbox Code Playgroud)

然后我的问题是:

  • 我是否已将ansible sudo_pass属性添加到每个任务中?
  • 有没有办法在剧本中说sudo和sudo_pass?

Ram*_*nte 9

sudo_pass不是Ansible知道的东西.如果你需要在node1上输入sudo密码,那么你保留sudo: yes在剧本中,你必须在运行你的剧本时在命令行上给Ansible提供sudo密码:

ansible-playbook -i hosts site.yml -K
Run Code Online (Sandbox Code Playgroud)

注意-K参数.然后它将在剧本开始之前询问您的sudo密码.

(长版本是--ask-sudo-pass顺便说一句.我不得不查看它)

  • 它有效,但我不想在运行任务时设置密码。我需要这个,因为我想自动化我的基础设施。那么您是否有任何关于如何配置它的提示? (3认同)