小编yzf*_*tnt的帖子

Ansible 如何根据某些属性选择主机并使用它们的 IP 地址在运行时创建列表

我有一个关于 ansible 中数据操作的具体问题。

在我的清单文件中,我有一个名为 postgresql 的组,如下所示:

[postgresql]
host1 ansible_host=1.1.1.1 postgresql_cluster_port=5432 postgresql_harole=master
host2 ansible_host=2.2.2.2 postgresql_cluster_port=5432 postgresql_harole=slave postgresql_master_ip=1.1.1.1
host3 ansible_host=3.3.3.3 postgresql_cluster_port=5432 postgresql_harole=slave postgresql_master_ip=1.1.1.1
host4 ansible_host=4.4.4.4 postgresql_cluster_port=5432 postgresql_harole=slave postgresql_master_ip=1.1.1.1
Run Code Online (Sandbox Code Playgroud)

在我的剧本中的某个地方,我需要操作和使用过滤器来创建 postgresql_harole=slave 的所有主机的 IP 地址列表,如下所示:

- hosts: postgresql
  gather_facts: True
  remote_user: root
  tasks:
    - set_facts:
        slave_ip_list: "{{ expressions }}"
Run Code Online (Sandbox Code Playgroud)

我正在拉扯我的头发以获得正确的表达...非常感谢任何帮助!!!!

jinja2 ansible ansible-facts ansible-inventory ansible-filter

3
推荐指数
1
解决办法
3119
查看次数