Ansible Playbook卡在任务部分中

时间:2019-03-17 04:49:03

标签: ansible

我写了一个简单的剧本来安装pip,并期望使用ansible来吸引客户。但是,执行停留在TASK部分中。

我的代码-

---
- hosts: mygroup
  tasks: 
  - name: Install packages
    yum: name= {{ item }} state=installed
    with_items: 
     - pip
     - expect

调试-[仅执行被卡住的任务部分]

TASK [Install packages] ********************************************************
task path: /home/netman/lab7/prsh1271_play.yaml:4
Using module file /usr/local/lib/python2.7/dist-packages/ansible/modules/packaging/os/yum.py
<192.168.1.2> ESTABLISH SSH CONNECTION FOR USER: None
Using module file /usr/local/lib/python2.7/dist-packages/ansible/modules/packaging/os/yum.py
<172.16.1.2> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.1.2> SSH: EXEC sshpass -d12 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o ConnectTimeout=10 -o ControlPath=/home/netman/.ansible/cp/61004433e3 192.168.1.2 '/bin/sh -c '"'"'/usr/bin/python && sleep 0'"'"''
<172.16.1.2> SSH: EXEC sshpass -d12 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o ConnectTimeout=10 -o ControlPath=/home/netman/.ansible/cp/3e78e2ce1a 172.16.1.2 '/bin/sh -c '"'"'/usr/bin/python && sleep 0'"'"''

请帮助解决。

3 个答案:

答案 0 :(得分:0)

软件包安装需要root用户或root用户。您可以将用户添加到sudoers文件中,如果没有添加,请重试

还可以使用-vvvv重新运行剧本,以进行详细日志记录并输入详细日志-这将有助于调试。

答案 1 :(得分:0)

您可以添加“ become:true”,使其以root用户身份运行。

所以你有

---
- hosts: mygroup
  become: true
  tasks: 
  - name: Install packages
    yum: name= {{ item }} state=installed
    with_items: 
     - pip
     - expect

答案 2 :(得分:0)

剧本可能会卡住,因为您在卡住的任务中运行的命令会发出输入提示,而您在运行剧本时看不到该提示。

由于没有向提示提供任何输入,它只是坐在那里并永远等待。

解决方案(如果这确实是问题所在): 更改您的任务,以便您直接在 Ansible 任务中提供任何必要的输入,从而避免输入提示。