我有一个带有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
专家们可以就我的故障机器分享一些见解吗,谢谢。
答案 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。