您需要root才能执行-Ansible

时间:2019-03-08 08:02:17

标签: ansible

我有一个带有ansible控制器+节点的实验室设置,并探索了几个领域。

到目前为止,我已经在两台计算机上设置了一个名为ansible的用户帐户,并启用了基于ssh密钥的身份验证

还在两台机器上为用户设置sudo权限

当我尝试运行以下剧本时,它可在本地计算机上运行,​​而在另一个节点上失败。

--- #Install Telnet - hosts: all name: Install Telnet become: true become_user: ansible become_method: sudo tasks: - yum: name: telnet state: latest

输出如下 `[ansible @ host1剧本] $ ansible-playbook telnetDeployYUM.yml

PLAY [安装Telnet] ********************************************** ****************************************************** ****************************************************** *************************

任务[聚会事实] ********************************************** ****************************************************** ****************************************************** ************************ 好的:[192.168.64.6] 好的:[192.168.64.5]

任务[yum] *********************************************** ****************************************************** ****************************************************** *************************************** 好的:[192.168.64.5] 致命的:[192.168.64.6]:失败! => {“ changed”:true,“ msg”:“您需要root用户才能执行此命令。\ n”,“作废”:{“ grub2”:{“ dist”:“ x86_64”,“ repo”: “ @anaconda”,“版本”:“ 1:2.02-0.64.el7.centos”},“ grub2-tools”:{“ dist”:“ x86_64”,“ repo”:“ @ anaconda”,“版本”: “ 1:2.02-0.64.el7.centos”}},“ rc”:1,“结果”:[“已加载的插件:fastestmirror \ n”]}         要重试,请使用:--limit @ / home / ansible / playbooks / telnetDeployYUM.retry

PLAY RECAP ********************************************* ****************************************************** ****************************************************** ************************************** 192.168.64.5:ok = 2更改= 0不可达= 0失败= 0 192.168.64.6:ok = 1更改= 0不可达= 0失败= 1

[ansible @ host1剧本] $ `

我还可以手动以故障用户身份在失败的目标上运行sudo yum

我相信sudo设置正确

[ansible@host2 root]$ sudo whoami root

专家们可以就我的故障机器分享一些见解吗,谢谢。

2 个答案:

答案 0 :(得分:1)

运行-vvvv来查看ansible在做什么。

您是否在ansible中设置了sudoers来减少密码的特权提升? 您收到一条消息,它正在等待“升级提示”。这意味着,当您运行with时,由于它需要密码,因此您无法成为。确保您的测试用户位于/etc/sudoers中,并且已将其标记为该用户在运行sudo命令时无需输入密码。该条目应在该文件行的结尾处:NOPASSWD结束。

答案 1 :(得分:0)

下面应该可以正常工作

- hosts: all
  name: Install Telnet
  become: yes
  tasks:
    - yum:
      name: telnet
      state: latest

ansible或通过其执行ansible的用户应位于sudoers文件中。

您将用户更改为不需要的ansible。

相关问题