gpt4 book ai didi

ansible - 仅当主机名包含字符串时才运行 Ansible 任务

转载 作者:行者123 更新时间:2023-12-02 08:36:03 25 4
gpt4 key购买 nike

我的角色有多项任务,如下所示。我不想创建另一个 yml 文件来处理此任务。我已经包含了 Web 服务器,但是我们的几个 Perl 服务器需要安装一些 Web 软件包。

- name: Install Perl Modules
command: <command>
with_dict: perl_modules

- name: Install PHP Modules
command: <command>
with_dict: php_modules
when: <Install php modules only if hostname contains the word "batch">

主机库存文件

[webs]
web01
web02
web03

[perl]
perl01
perl02
perl03
perl-batch01
perl-batch02

最佳答案

下面应该可以解决问题:

- name: Install PHP Modules
command: <command>
with_dict: php_modules
when: "'batch' in inventory_hostname"

请注意,在 playbook 运行期间您将跳过几个主机。

inventory_hostname 是 Ansible 的“神奇”变量之一:

Additionally, inventory_hostname is the name of the hostname asconfigured in Ansible’s inventory host file. This can be useful forwhen you don’t want to rely on the discovered hostnameansible_hostname or for other mysterious reasons. If you have a longFQDN, inventory_hostname_short also contains the part up to the firstperiod, without the rest of the domain.

来源:Ansible Docs - Magic variables

关于ansible - 仅当主机名包含字符串时才运行 Ansible 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30533372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com