首页 > 解决方案 > 使用不同库存的游戏之间的 Ansible 共享变量

问题描述

我有两个剧本:create_infrastructure.ymlbootstrap_cluster.yml。第一个剧本使用一个静态清单,它只定义infrastructure一个成员的组:127.0.0.1。这用于构建部署 Kubernetes 集群的基础设施。
第二个 playbook 使用动态清单,hcloud.yml负责引导 kubernetes 集群。执行的角色之一需要访问控制平面负载均衡器的 IP 地址,这是剧本bootstrap_cluster.yml所知道的。 我已经尝试使用该选项和模块,但似乎无法使其工作。实际上,尝试从中访问并没有多大意义,因为该组甚至没有在剧本使用的动态清单中定义。create_infrastructure.yml
registerset_facthostvars['infrastructure']['control_plane_ip']bootstrap_cluster.ymlinfrastructure
关于如何在针对不同主机的剧本之间动态共享变量的任何想法?

标签: ansibleansible-2.xansible-inventory

解决方案


如果您在同一个调用中启动剧本,您可以使用虚拟主机测试我的解决方案:

在不同主机之间传递 Var

# Combine multiple playbooks in same call combine.yml for example
  - import_playbook: play1.yml
  - import_playbook: play2.yml

如果您的剧本是通过 2 个不同的调用启动的,唯一的解决方案是创建一个在 2 个剧本之间共享的文件


推荐阅读