无法通过Ansible在远程主机上运行

时间:2014-03-03 15:30:09

标签: ansible ansible-playbook

我有以下剧本:

---
- hosts: ESNodes
  remote_user: ihazan
  tasks:
  - name: Run Monitoring
    action: command  /tmp/monitoring/cpu_mon

/ tmp / monitoring / cpu_mon的内容如下:

top -bn1800 -p $(ps -ef | grep elasticsearch | grep -v grep | grep -v sudo | awk '{print $2}') | grep root > /tmp/cpu_stats &

注意top用&

运行背景

当运行该剧本时,Ansible永远陷入最高命令:

-bash-4.1$ ansible-playbook es_playbook_run.yml -l PerfSetup -K -f 10 
sudo password: 

PLAY [ESNodes] **************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [isk-vsrv643]

TASK: [Run Monitoring] ******************************************************** 

当通过远程SSH运行它时(这应该是ansible应该做的)它可以正常工作:

-bash-4.1$ ssh ihazan@isk-vsrv643 'nohup /tmp/monitoring/cpu_mon'
-bash-4.1$ 

以下是输出的调试版本:

-bash-4.1$ ansible-playbook es_playbook_run.yml -l PerfSetup -K -f 10 -vvvv
sudo password: 

PLAY [ESNodes] **************************************************************** 

GATHERING FACTS *************************************************************** 
<isk-vsrv643> ESTABLISH CONNECTION FOR USER: ihazan on PORT 22 TO isk-vsrv643
<isk-vsrv643> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-1393860499.75-256362698809430 && chmod a+rx $HOME/.ansible/tmp/ansible-1393860499.75-256362698809430 && echo $HOME/.ansible/tmp/ansible-1393860499.75-256362698809430'
<isk-vsrv643> REMOTE_MODULE setup 
<isk-vsrv643> PUT /tmp/tmpZh9bYP TO /usr2/ihazan/.ansible/tmp/ansible-1393860499.75-256362698809430/setup
<isk-vsrv643> EXEC /bin/sh -c '/usr/bin/python /usr2/ihazan/.ansible/tmp/ansible-1393860499.75-256362698809430/setup; rm -rf /usr2/ihazan/.ansible/tmp/ansible-1393860499.75-256362698809430/ >/dev/null 2>&1'
ok: [isk-vsrv643]

TASK: [Run Monitoring] ******************************************************** 
<isk-vsrv643> ESTABLISH CONNECTION FOR USER: ihazan on PORT 22 TO isk-vsrv643
<isk-vsrv643> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-1393860500.32-92141081389545 && chmod a+rx $HOME/.ansible/tmp/ansible-1393860500.32-92141081389545 && echo $HOME/.ansible/tmp/ansible-1393860500.32-92141081389545'
<isk-vsrv643> REMOTE_MODULE command /tmp/monitoring/cpu_mon
<isk-vsrv643> PUT /tmp/tmp7dYRPY TO /usr2/ihazan/.ansible/tmp/ansible-1393860500.32-92141081389545/command
<isk-vsrv643> EXEC /bin/sh -c '/usr/bin/python /usr2/ihazan/.ansible/tmp/ansible-1393860500.32-92141081389545/command; rm -rf /usr2/ihazan/.ansible/tmp/ansible-1393860500.32-92141081389545/ >/dev/null 2>&1'

提前谢谢

1 个答案:

答案 0 :(得分:1)

使用 fire并忘记模式,即async + poll 0:

---
- hosts: ESNodes
  remote_user: ihazan
  tasks:
  - name: Run Monitoring
    action: command  /tmp/monitoring/cpu_mon
    async: 45
    poll: 0

异步的整个搜索在这里:http://docs.ansible.com/playbooks_async.html

祝你好运。

相关问题