问题描述
首先:我仍然是Ansible新手,我已经习惯了.
first of all: I am still an Ansible newbie and I am just getting used to it.
我想写一本根据客户所在位置调出另一本剧本的剧本.
i want to write a playbook that calls up a different playbook depending on the location of the client.
例如:
我有3本专门针对特定地区的剧本,分别是usaclient.yml,euclient.yml和asiaclient.yml
For example:
i have 3 different playbooks specifically for certain regions, usaclient.yml, euclient.yml and asiaclient.yml
这些剧本应通过主剧本"自动执行.
these playbooks should be executed automatically via a "master playbook".
如果在欧洲客户上执行了主剧本",则应启动剧本"euclient.yml".
if the "master playbook" is executed on a european client, the playbook "euclient.yml" should be started.
有人知道如何自动将剧本分配给某个地区吗,还是有一个想法如何通过bash脚本解决此问题?
does anyone know how to assign playbooks automatically to a region or has an idea how to solve this by bash script?
最好的问候
D1Ck3n
best regards
D1Ck3n
推荐答案
Q:如果在欧洲客户上执行了主剧本",则该剧本 euclient.yml
应该是开始."
Q: "If the "master playbook" is executed on a European client, the playbook euclient.yml
should be started."
A:在Ansible中,无法有条件地启动剧本.请参见 import_playbook .
A: In Ansible it's not possible to start a playbook conditionally. See import_playbook.
只有2个选项.通过外部工具有条件地启动剧本,或测试剧本内部的状况.尝试 ansible-runner .
There are 2 options only. Start the playbook conditionally by an external tool or test the condition inside the playbook. Try ansible-runner.
这篇关于按地区运行Ansible剧本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!