callback_plugins目录中的Ansible插件运行多次

ahm*_*tin 5 ansible ansible-2.x

我正在运行以下ansible脚本,以便能够使用ansible部署我的Java项目:

ansible-playbook -u ansible -i inventory/test-env release.yml
Run Code Online (Sandbox Code Playgroud)

我在ansible下的callback_plugins目录下添加了这个插件.问题是每当我运行ansible-playbook脚本时,此插件中的日志记录在最后运行多次并且不一致.有时我会得到两次,有时三次.

您是否知道为什么会出现这种情况以及每次日志数量变化的原因?

我已经读过,如果插件的命名与ansible本身的现有插件相同,则可能会导致此问题.因此,我将此插件的名称更改为项目中的其他名称.

请注意,我的ansible版本是:2.4.2

这是我得到的输出:

PLAY RECAP *********************************************************************
def1.test1.domain.com : ok=101  changed=31   unreachable=0    failed=0   
def2.test1.domain.com : ok=70   changed=20   unreachable=0    failed=0   
abc1.test1.domain.com : ok=6    changed=0    unreachable=0    failed=0   
abc2.test1.domain.com : ok=6    changed=0    unreachable=0    failed=0   

copy domain to managed servers ----------------------------------------- 97.00s
start managed servers -------------------------------------------------- 82.62s
wait for admin server to start ----------------------------------------- 31.64s
create domain ---------------------------------------------------------- 25.97s

Playbook finished: Wed Jan 30 11:09:04 2019, 114 total tasks.  0:06:17 elapsed. 

copy domain to managed servers ----------------------------------------- 97.00s
start managed servers -------------------------------------------------- 82.62s
wait for admin server to start ----------------------------------------- 31.64s
create domain ---------------------------------------------------------- 25.97s

Playbook finished: Wed Jan 30 11:09:04 2019, 114 total tasks.  0:06:17 elapsed. 

copy domain to managed servers ----------------------------------------- 97.00s
start managed servers -------------------------------------------------- 82.62s
wait for admin server to start ----------------------------------------- 31.64s
create domain ---------------------------------------------------------- 25.97s

Playbook finished: Wed Jan 30 11:09:04 2019, 114 total tasks.  0:06:17 elapsed. 
Run Code Online (Sandbox Code Playgroud)

在日志的开头,我发现了这个:

setting up inventory plugins
Parsed /var/go/pipelines/abc/inventory/test inventory source with ini plugin
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc
Loading callback plugin unnamed of type old, v1.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc
Loading callback plugin unnamed of type old, v1.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc
Loading callback plugin unnamed of type old, v1.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: release.yml **********************************************************
11 plays in release.yml

PLAY [install weblogic] ********************************************************
Run Code Online (Sandbox Code Playgroud)

ahm*_*tin 0

问题是我的 IntelliJ IDEA 中的 git 插件。尽管我已经从 IDE 中删除了该文件,但它并未添加到我的 git 提交中,而且我在拉取请求中也没有意识到这一点。

因此,“profile_tasks.py”被调用两次,因为它是 ansible 中的预定义插件,如果您有同名的插件,ansible 会有重复的日志。此外,第三条日志来自重命名的插件,总共打印了 3 个重复的日志。当我从项目中手动删除“profile_tasks.py”后,其中两个被删除,并且日志按预期仅打印一次。