如何从 ansible 清单中获取特定组并在剧本中使用它?

伊拉克利·科尔帕什维利

我需要从我的库存文件中获取特定的子组并在 ansible playbook 中正确使用它。

all:
  children:
    development:
      children:
        ntp_servers:
          hosts:
            ntp01:
            ntp02:
        services:
          children:
            chatbot:
              children:
                app:
                  hosts:
                    chatbot-app01:
                    chatbot-app02:
                db:
                  hosts:
                    chatbot-db01:
                    chatbot-db02:
            dice:
              children:
                app:
                  hosts:
                    dice-app01:
                    dice-app02:
                db:
                  hosts:
                    dice-db01:
                    dice-db02:
                    dice-db03:
                redis:
                  hosts:
                    dice-redis01:
                    dice-redis02:

例如,我想抓取聊天机器人组的应用程序子组。谁能举例说明如何引用 chatbot.app 组?

我是这样使用的,但这似乎是错误的陈述。

- hosts: chatbot:app
  roles:
    - chatbot
马特·P

无法直接实现您想要实现的目标。您目前遇到的问题是主机组名称appdb正在重复,这会影响您的结果。

首先,您需要确保使用唯一的组名。例如:

all:
  children:
    development:
      children:
        ntp_servers:
          hosts:
            ntp01
            ntp02
        services:
          children:
            chatbot:
              children:
                chatbot_app:
                  hosts:
                    chatbot-app01:
                    chatbot-app02:
                chatbot_db:
                  hosts:
                    chatbot-db01:
                    chatbot-db02:
            dice:
              children:
                dice_app:
                  hosts:
                    dice-app01:
                    dice-app02:
                dice_db:
                  hosts:
                    dice-db01:
                    dice-db02:
                    dice-db03:
                dice_redis:
                  hosts:
                    dice-redis01:
                    dice-redis02:

然后,您可以查看您认为合适的父/子组。使用问题中的示例,您可以执行以下操作:

- hosts: chatbot_app
  roles:
    - chatbot

您的所有组(开发、ntp_servers、服务、聊天机器人、骰子等)都可以这样做

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ansible:如何在剧本中创建空库存组?

在 Ansible 中,如何在模板的清单文件中使用变量

Ansible-更新vars_file中的变量并在剧本中再次调用它不起作用

如何获得Ansible支票在剧本中只能运行一次?

在剧本中使用Ansible-Galaxy角色而不是剧本中的ansible-module是最佳实践吗?

如何指定在Ansible剧本中使用的Python版本?

如何在Ansible剧本中使用JMESPath进行排序?

如何检查Ansible剧本中的状态码

如何使用Docker测试Ansible剧本

如何使用多个文件运行Ansible剧本

如何从crontab执行ansible剧本?

如何遍历ansible剧本输出?

Ansible:如何通过Ansible获取服务状态?

如何获取Ansible库存并填充Ansible变量?

我们如何在剧本中使用编码后的值,并在任何需要的剧本中对其进行解码?

使用循环时如何在ansible剧本中调用变量

如何在ansible命令行中添加可选变量,并检查它们在剧本中是否存在?

仅在剧本没有问题的情况下才如何运行Ansible剧本?

如何从Ansible清单文件中获取主机列表?

ansible-如何在ansible中迭代儿童组?

如何使用Ansible从列表中获取值

如何从选择中获取价值并在Rails中使用它

如何安装ansible的特定版本?

任务中的Ansible注册变量,并在模板中使用它

如何枚举ansible中的列表?

如何跳过Ansible中的角色?

如何忽略Ansible中的警告

如何枚举ansible中的主机?

如何在ansible中拆分