Phe*_*nyl 7 ansible ansible-playbook
我有一本 Ansible 剧本,其中包含一项很长的任务,长达一小时。
非常简化,看起来像:
- hosts: localhost
tasks:
- name: Short task
debug:
msg: "I'm quick!"
- name: Long task
shell: "sleep 15s"
Run Code Online (Sandbox Code Playgroud)
当用户运行剧本时,输出首先是:
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]
Run Code Online (Sandbox Code Playgroud)
该剧本的最终用户认为存在问题,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]
Run Code Online (Sandbox Code Playgroud)
根据OP的要求将我的评论迁移到答案
我正在使用 Ansible 2.9.2。
stdout_callback
我尝试使用没有配置文件和没有声明值(默认)的配置文件。在这两种情况下我都无法重现您的问题。
这是我的测试剧本:
---
- hosts: localhost
gather_facts: false
tasks:
- name: Short running
debug:
msg: I'm a short task
- name: LOOOOOOOOOng task
shell: sleep 2000
Run Code Online (Sandbox Code Playgroud)
以及结果(两种情况下。注意:任务标题显示后用户中断)
$ 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
Run Code Online (Sandbox Code Playgroud)
ansible-playbook --version
仔细检查您要在要启动 playbook 的目录中加载哪个配置文件。我还建议您尝试不使用任何配置文件,看看它是否可以解决您的问题(然后查看哪个设置实际上导致了问题)。
从OP的评论中添加:事实证明,在这种特定情况下ansible.cfg中的有问题的设置是display_skipped_hosts=False
归档时间: |
|
查看次数: |
2743 次 |
最近记录: |