Linux pbrun不工作的Ansible playbook

Linux pbrun不工作的Ansible playbook,linux,ansible,Linux,Ansible,first-playbook.yml: --- - hosts: all tasks: - name: test shell: chdir=/home/tibco pbrun su - tibco sh test.sh sudo: yes 错误: [root@c0043724 ansible]# ansible-playbook -vvv first-playbook.yml -u balp --ask-pass -c paramiko SSH passwo

first-playbook.yml:

---
- hosts: all
  tasks:
    - name: test
      shell: chdir=/home/tibco pbrun su - tibco sh test.sh
      sudo: yes
错误:

[root@c0043724 ansible]# ansible-playbook -vvv first-playbook.yml -u balp --ask-pass -c paramiko
SSH password:

PLAY [all] ********************************************************************

GATHERING FACTS ***************************************************************
<c0043725.itcs.hp.com> ESTABLISH CONNECTION FOR USER: balp on PORT 22 TO c0043725.itcs.hp.com
<c0043725.itcs.hp.com> REMOTE_MODULE setup
<c0043725.itcs.hp.com> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709 && echo $HOME/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709'
<c0043725.itcs.hp.com> PUT /tmp/tmpNP2qY2 TO /home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/setup
<c0043725.itcs.hp.com> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/setup; rm -rf /home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/ >/dev/null 2>&1'
ok: [c0043725.itcs.hp.com]

TASK: [test] ******************************************************************
<c0043725.itcs.hp.com> ESTABLISH CONNECTION FOR USER: balp on PORT 22 TO c0043725.itcs.hp.com
<c0043725.itcs.hp.com> REMOTE_MODULE command chdir=/home/tibco pbrun su - tibco sh test.sh #USE_SHELL
<c0043725.itcs.hp.com> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998 && echo $HOME/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998'
<c0043725.itcs.hp.com> PUT /tmp/tmpNgfy06 TO /home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/command
<c0043725.itcs.hp.com> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, key=torjbeltprhcmjkqbwcakmroqrxvfiai] password: " -u root /bin/sh -c "echo BECOME-SUCCESS-torjbeltprhcmjkqbwcakmroqrxvfiai; LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/command; rm -rf /home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/ >/dev/null 2>&1"'
failed: [c0043725.itcs.hp.com] => {"changed": true, "cmd": "pbrun su - tibco sh test.sh", "delta": "0:00:00.024944", "end": "2015-03-16 18:43:33.371752", "rc": 127, "start": "2015-03-16 18:43:33.346808", "warnings": []}
stderr: /bin/sh: pbrun: command not found

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/root/first-playbook.retry

c0043725.itcs.hp.com       : ok=1    changed=0    unreachable=0    failed=1
[root@c0043724ansible]#ansible playbook-vvv first-playbook.yml-u balp——询问通行证-c paramiko
SSH密码:
播放[全部]********************************************************************
收集事实***************************************************************
为用户建立连接:端口22上的balp到c0043725.itcs.hp.com
远程模块设置
EXEC/bin/sh-c'mkdir-p$HOME/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709和&chmod a+rx$HOME/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709和&echo$HOME/.ansible/tmp/ansible-1426531409.47-88648204897709'
将/tmp/tmpNP2qY2放入/home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/setup
EXEC/bin/sh-c'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8/usr/bin/python/home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/setup;rm-rf/home/balp/.ansible/tmp/ansible-tmp-1426531409.47-88648204897709/>/dev/null 2>&1'
ok:[c0043725.itcs.hp.com]
任务:[测试]******************************************************************
为用户建立连接:端口22上的balp到c0043725.itcs.hp.com
远程模块命令chdir=/home/tibco pbrun su-tibco sh test.sh#使用SHELL
EXEC/bin/sh-c'mkdir-p$HOME/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998和&chmod a+rx$HOME/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998和&echo$HOME/.ansible/tmp/ansible-1426531412.61-87821666758998'
将/tmp/tmpNgfy06放到/home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/command
EXEC/bin/sh-c'sudo-k&&sudo-H-S-p“[sudo via ansible,key=torjbeltprhcmjkqbwcakmroqvfiai]密码:”-u root/bin/sh-c“echo成为Jbeltprhcmjkqbwcakmroqrxvfiai的成功者;LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8/usr/bin/python/home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/command;rm-rf/home/balp/.ansible/tmp/ansible-tmp-1426531412.61-87821666758998/>/dev/null 2>&1“'
失败:[c0043725.itcs.hp.com]=>{“更改”:true,“cmd”:“pbrun su-tibco sh test.sh”,“delta”:“0:00:00.024944”,“end”:“2015-03-16 18:43:33.371752”,“rc”:127,“start”:“2015-03-16 18:43:33.346808”,“警告”:[]}
stderr:/bin/sh:pbrun:未找到命令
致命:所有主机都已失败--正在中止
重演********************************************************************
要重试,请使用:--limit@/root/first-playbook.retry
c0043725.itcs.hp.com:ok=1已更改=0无法访问=0失败=1

你能帮我修复吗?

需要更多信息来更好地调试。但我猜你正在尝试混合使用3种不同的方法来完成su

  • 一些名为pbrun的定制工具(我猜这是您/您的ops ppl创建的一些脚本,允许您访问sudo)
  • su
    在您正在执行的命令中
  • 您通过指定
    sudo:yes
    请求ansible to su
  • (更不用说您以
    root
    的身份运行playbook,默认情况下,playbook将以root身份隐式连接到远程计算机(除非您在配置或资源清册中的某个地方对其进行了重写),从而使
    sudo
    一开始就不必要了)
我建议您在剧本中使用
pbrun
test.sh
的完整路径,并且只保留三种方法中的一种

--编辑--

我假设您已经知道abt
sudo\u exe
中的参数


输出显示“未找到命令”。如果指定pbrun命令的完整路径,会发生什么情况?如果我使用like命令:/opt/pb/bin/pbrun su-tibco;则是struckedwhat”strucked“mean?你能手动运行
sudo pbrun su-tibco sh test.sh
吗?
# change this for alternative sudo implementations
sudo_exe = sudo