ansible挂在" sudo yum install"'步

时间:2016-02-03 09:09:16

标签: linux ansible yum

我正在尝试设置ansible(2.0)以在Linux机器上安装软件 enter image description here

ies-iesd-jktools是带有ansible的机器。 ies-iesd-git-06是目标。用户帐户iesdgrid可以在目标计算机上执行sudo。

以下命令在遥控器上挂起: -

    ies-iesd-jktools:~/ansible$ ansible ies-iesd-git-06  \
           -i inventory  -m raw \
           -a "sudo yum install -y python-simplejson"   -vvvv

Using /usr/src/ansible/ansible.cfg as config file

SUDO password: <I type password here>

Loaded callback minimal of type stdout, v2.0
<ies-iesd-git-06> ESTABLISH CONNECTION FOR USER: None on PORT 22 TO ies-iesd-git-06
<ies-iesd-git-06> EXEC sudo yum install -y python-simplejson

这会在目标计算机上启动sudo,但不会像正在等待密码那样继续进行

$ hostname
ies-iesd-git-06
$
$ ps -ef| grep su
root       583   582  0 09:01 pts/1    00:00:00 sudo yum install -y python-simplejson
iesdgrid   811   771  0 09:05 pts/2    00:00:00 grep su

错误是什么?

过了一会儿我

sudo: pam_authenticate: Conversation error

(手动登录到目标机器,sudo就可以了。)

2 个答案:

答案 0 :(得分:3)

您需要指定--become --become-user root --ask-become-pass参数,以便在执行命令之前将ans su su到root。

ansible -m raw -a "yum install python-simplejson" testserver --ask-become-pass --become-user root --become
SUDO password:
testserver | SUCCESS | rc=0 >>

Loaded plugins: security
Setting up Install Process
Static_ol6_UEK2_latest                                   | 2.3 kB     00:00
Static_ol6_latest                                        | 2.3 kB     00:00
Package python-simplejson-2.0.9-3.1.el6.x86_64 already installed and latest version
Nothing to do

答案 1 :(得分:1)

sudo,根据设计,需要一个交互式shell,因此可以输入密码。

完全自动调用sudo的最简单方法是让用户NOPASSWD访问所有或仅必需的命令,尽管这可能会带来安全风险。

有关/etc/sudoers配置文件的详细信息,请访问http://www.sudo.ws/man/1.8.15/sudoers.man.html

stackexchange上有几个线程处理linux上自动提升执行的问题: