在执行长时间运行的任务之前打印Ansible头

分享于 

3分钟阅读

互联网

  繁體

问题:

语境

我有一个Ansible playbook,包括一个超过一个小时的长任务。

非常简单:


- hosts: localhost


 tasks:


 - name: Short task


 debug:


 msg:"I'm quick!"



 - name: Long task


 shell:"sleep 15s"



当用户运行playbook时,首先输出:


PLAY [localhost] ********************


TASK [Gathering Facts] **************


ok: [127.0.0.1]



TASK [Short task] *******************


ok: [127.0.0.1] => {


"msg":"I'm quick!"


}



(hang there until Long task is done)



TASK [Long task] ********************


changed: [127.0.0.1]



问题

playbook的终端用户认为Short task有一个问题,因为它卡死在那里,Long task导致延迟。

如何配置ansible或playbook,在执行之前打印name:中定义的头文件?

要实现的输出类似于:


PLAY [localhost] ********************


TASK [Gathering Facts] **************


ok: [127.0.0.1]



TASK [Short task] *******************


ok: [127.0.0.1] => {


"msg":"I'm quick!"


}



TASK [Long task] ********************



(and hang there during the execution)



changed: [127.0.0.1]




答案1:

我用的是Ansible 2.9.2.


---


- hosts: localhost


 gather_facts: false



 tasks:



 - name: Short running


 debug:


 msg: I'm a short task



 - name: LOOOOOOOOOng task


 shell: sleep 2000



结果(在两种情况下,注:按用户中断任务头后显示)


$ ansible-playbook /tmp/play.yml 



PLAY [localhost] **************************************************************************************************************************************************************************************************



TASK [Short running] **********************************************************************************************************************************************************************************************


ok: [localhost] => {


"msg":"I'm a short task"


}



TASK [LOOOOOOOOOng task] ******************************************************************************************************************************************************************************************


^C [ERROR]: User interrupted execution




在启动playbook的目录中,用ansible-playbook --version仔细检查要加载的配置文件,


答案2:

一个简单的方法是打印一条消息,通知用户将要执行一个长的任务,然后开始执行任务。



任务  EXE  HEAD  print  EXEC  Header  
相关文章