Ansible multi-play playbook 静默忽略播放
Ansible multi-play playbook silently ignore plays
希望您能帮助解决我的剧本未按预期完成的原因。
环境
- OSX埃尔卡皮坦
- ansible 2.1.0.0
配置
没什么令人兴奋的:
[defaults]
roles_path=./roles
host_key_checking = False
ssh_args= -t -t
allow_world_readable_tmpfiles = True
剧本
我有一个相当复杂的设置,在一本剧本中有很多剧本。
该剧本针对不同的目标系统运行;生产现场和开发平台。 (请不要建议我将它们结合起来……它是一个物联网系统,而且已经足够复杂了。)
这是我略微编辑过的剧本:
- hosts: all
roles:
- ...
- hosts: xmpp_server
roles:
- ...
- hosts: audit_server
roles:
- ...
- hosts: elk_server
roles:
- ...
- hosts: all
roles:
- ...
现在,请记住我有一个 IoT 设置,其中有各种冗余、复制和分发正在进行,所以尽管还有其他方法可以给猫剥皮,但上面分解成多个游戏是 真的 很适合我的设置,我想保留它。
同样重要:我的开发平台上没有 audit_server
或 elk_server
主机。这些组目前是空的,因为我正在处理一个正交问题并且不需要它们消耗有限的开发资源。我确实有那些在生产中,只是不在开发中。
预期行为
在制作现场,我希望所有的剧本都能触发,运行。
在开发平台上,我希望第一个播放 (all
) 和 xmpp_server
播放到 运行,audit_server
和 elk_server
播放到跳过,然后最后一个 (all
) 播放到 运行。
实际行为
生产现场完全符合预期。所有播放 运行.
由于 dev-piA
是 xmpp_server
组的成员,开发人员完成了 xmpp_server
游戏。然后它静静地停止了。没有错误,没有信息,什么都没有。直接进入剧情回顾。这是输出:
...
TASK [xmppserver : include] ****************************************************
included: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/./openfire.yml for dev-piA
TASK [xmppserver : Get openfire deb file] **************************************
ok: [dev-piA]
TASK [xmppserver : Install openfire deb file] **********************************
ok: [dev-piA]
TASK [xmppserver : Check if schema has been uploaded previously] ***************
ok: [dev-piA]
TASK [xmppserver : Install openfire schema to postgres db] *********************
skipping: [dev-piA]
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=3 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
所以,我 运行 它与 -vvvvv
并没有得到更多有用的东西:
...
TASK [xmppserver : Install openfire schema to postgres db] *********************
task path: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/openfire.yml:14
skipping: [dev-piA] => {"changed": false, "skip_reason": "Conditional check failed", "skipped": true}
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=2 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
需要帮助
所以,我的问题是:为什么剧本就停在那里?怎么回事?!
实际上并没有明确表示 audit_server 播放没有更多的主机;这是我最好的猜测。它就像遇到 EOF 一样停止。
我完全被难住了。
编辑:注意:重试文件仅包含对 vag运行t 机器的引用,该机器目前处于关闭状态。但如果那是问题所在,那么 Ansible 的逻辑就非常有缺陷。我现在就检查以防万一
编辑:我的天哪,它实际上是丢失的 vag运行t 盒子,与该死的东西无关。这太令人震惊了,我将把它作为 Ansible 的一个问题提出来。但是......我会把它留在这里以防万一有人遇到同样的问题并用谷歌搜索它。
编辑:为清楚起见,vag运行t 机器不在任何戏剧的主机列表中,特殊的 'all' 情况除外。
如果游戏中的每个主机都不健康,Ansible 将中止执行。
如果 dev-vagrant1
是 audit_server
组的唯一成员,这是预期的行为(如我们所见,dev-vagrant1
被标记为 unreachable
)。
然而 to retry, use...
之前应该有一行 PLAY [audit_server] ********
Ansible 人员回复我并确认他们一直在为 2.1.1 版本解决该领域的许多问题。
我更新到 2.1.1.0 并且运行良好。
希望您能帮助解决我的剧本未按预期完成的原因。
环境
- OSX埃尔卡皮坦
- ansible 2.1.0.0
配置
没什么令人兴奋的:
[defaults]
roles_path=./roles
host_key_checking = False
ssh_args= -t -t
allow_world_readable_tmpfiles = True
剧本
我有一个相当复杂的设置,在一本剧本中有很多剧本。
该剧本针对不同的目标系统运行;生产现场和开发平台。 (请不要建议我将它们结合起来……它是一个物联网系统,而且已经足够复杂了。)
这是我略微编辑过的剧本:
- hosts: all
roles:
- ...
- hosts: xmpp_server
roles:
- ...
- hosts: audit_server
roles:
- ...
- hosts: elk_server
roles:
- ...
- hosts: all
roles:
- ...
现在,请记住我有一个 IoT 设置,其中有各种冗余、复制和分发正在进行,所以尽管还有其他方法可以给猫剥皮,但上面分解成多个游戏是 真的 很适合我的设置,我想保留它。
同样重要:我的开发平台上没有 audit_server
或 elk_server
主机。这些组目前是空的,因为我正在处理一个正交问题并且不需要它们消耗有限的开发资源。我确实有那些在生产中,只是不在开发中。
预期行为
在制作现场,我希望所有的剧本都能触发,运行。
在开发平台上,我希望第一个播放 (all
) 和 xmpp_server
播放到 运行,audit_server
和 elk_server
播放到跳过,然后最后一个 (all
) 播放到 运行。
实际行为
生产现场完全符合预期。所有播放 运行.
由于 dev-piA
是 xmpp_server
组的成员,开发人员完成了 xmpp_server
游戏。然后它静静地停止了。没有错误,没有信息,什么都没有。直接进入剧情回顾。这是输出:
...
TASK [xmppserver : include] ****************************************************
included: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/./openfire.yml for dev-piA
TASK [xmppserver : Get openfire deb file] **************************************
ok: [dev-piA]
TASK [xmppserver : Install openfire deb file] **********************************
ok: [dev-piA]
TASK [xmppserver : Check if schema has been uploaded previously] ***************
ok: [dev-piA]
TASK [xmppserver : Install openfire schema to postgres db] *********************
skipping: [dev-piA]
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=3 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
所以,我 运行 它与 -vvvvv
并没有得到更多有用的东西:
...
TASK [xmppserver : Install openfire schema to postgres db] *********************
task path: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/openfire.yml:14
skipping: [dev-piA] => {"changed": false, "skip_reason": "Conditional check failed", "skipped": true}
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=2 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
需要帮助
所以,我的问题是:为什么剧本就停在那里?怎么回事?!
实际上并没有明确表示 audit_server 播放没有更多的主机;这是我最好的猜测。它就像遇到 EOF 一样停止。
我完全被难住了。
编辑:注意:重试文件仅包含对 vag运行t 机器的引用,该机器目前处于关闭状态。但如果那是问题所在,那么 Ansible 的逻辑就非常有缺陷。我现在就检查以防万一
编辑:我的天哪,它实际上是丢失的 vag运行t 盒子,与该死的东西无关。这太令人震惊了,我将把它作为 Ansible 的一个问题提出来。但是......我会把它留在这里以防万一有人遇到同样的问题并用谷歌搜索它。
编辑:为清楚起见,vag运行t 机器不在任何戏剧的主机列表中,特殊的 'all' 情况除外。
如果游戏中的每个主机都不健康,Ansible 将中止执行。
如果 dev-vagrant1
是 audit_server
组的唯一成员,这是预期的行为(如我们所见,dev-vagrant1
被标记为 unreachable
)。
然而 to retry, use...
PLAY [audit_server] ********
Ansible 人员回复我并确认他们一直在为 2.1.1 版本解决该领域的许多问题。
我更新到 2.1.1.0 并且运行良好。