我有一本剧本,我想用sudo运行它。这是我的ansible剧本:
---
- name: Server
hosts: node1
sudo: yes
roles:
- dbserver
当我运行它时,我得到了这个:
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
然后我在site.yml上添加了ansible sudo传递:
---
- name: Server
hosts: node1
sudo_pass: ubuntu
roles:
- dbserver
我收到此错误:
ERROR: sudo_pass is not a legal parameter at this level in an Ansible Playbook
然后我的问题是:
答案 0 :(得分:8)
sudo_pass
不是Ansible知道的。如果您需要在node1上输入sudo密码,那么您将sudo: yes
保留在剧本中,并且在运行您的剧本时,您必须在命令行上为Ansible提供sudo密码:
ansible-playbook -i hosts site.yml -K
请注意-K
参数。然后它会在剧本开始之前询问你的sudo密码。
(长版本是--ask-sudo-pass顺便说一句。我不得不查看它)