我写了一个简单的剧本来安装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'"'"''
请帮助解决。
答案 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 任务中提供任何必要的输入,从而避免输入提示。