无法在Ansible playbook

时间:2017-06-29 16:27:45

标签: ansible

我正在编写一本Ansible手册,以便在各种主机上自动执行一系列sudo命令。当我在puTTY中单独执行这些命令时,我没有权限问题,因为我已被授予适当的访问权限。然而,当我试图创建一个剧本来做同样的事情时,我被告知

  

不允许用户在host_name上执行...

例如,如果我$ sudo ls /root/,我没有问题,一旦我输入密码,就可以看到/ root /

的内容

对于我的Ansible剧本......

---
- host: servers
  tasks:
  - name: ls /root/
    shell: ls /root/
    become: true
    become_method: sudo

...然后我得到上面提到的错误。

为什么会出现这种情况?它似乎告诉我,我没有权限运行一个命令,否则我可以在一个单独的puTTY终端运行。

1 个答案:

答案 0 :(得分:1)

  

[]在各种主机上自动执行一系列sudo命令。当我单独执行这些命令时[]

     

为什么会出现这种情况?

听起来您在sudoers文件中配置了特定命令(遗憾的是,您没有提供足够的详细信息,幸运的是您要求"想法"不是真正原因)。

Ansible shell模块不运行您在sudo前面指定的命令 - 它使用sudo运行整个shell会话,因此该命令与您配置的命令不匹配在sudoers

允许所有命令使用Ansible用户的提升权限运行,或使用raw模块而不是shell