首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在hostvars中定义var时获取事实

在hostvars中定义var时获取事实
EN

Stack Overflow用户
提问于 2020-01-17 10:02:38
回答 1查看 248关注 0票数 0

ansible 2.9.1

我有inventory

代码语言:javascript
复制
[group1]
server1 master=yes
server2 master=no
server3 master=no

如何使ansible_fqdnmaster=yes一起从server2server3获得

示例:

server2server3事实:

代码语言:javascript
复制
...
master_server: server1
...

我想是的,但没有用:

代码语言:javascript
复制
- name: set fact
  set_fact:
    master_server: {{ ansible_fqdn }}
  when: master == 'yes'
  delegate_to: "{{ item }}"
  loop: "{{ ansible_play_hosts }}"

更新解析

加:

代码语言:javascript
复制
run_once: True
EN

回答 1

Stack Overflow用户

发布于 2020-01-17 13:26:35

Q:“如何从server2,server3获得master=yes的ansible_fqdn?”

答:有更多的选择。例如,要么使用selectattr

代码语言:javascript
复制
- hosts: group1
  tasks:
    - set_fact:
        master_server: "{{ (groups.group1|
                            map('extract', hostvars)|
                            selectattr('master', 'eq', True)|
                            list|
                            first).ansible_fqdn }}"
      run_once: true
    - debug:
        var: master_server

,或者使用json_query

代码语言:javascript
复制
- hosts: group1
  tasks:
    - set_fact:
        master_server: "{{ groups.group1|
                           map('extract', hostvars)|
                           list|
                           json_query('[?master].ansible_fqdn')|
                           first }}"
      run_once: true
    - debug:
        var: master_server

这两种选择

代码语言:javascript
复制
ok: [test_02] => {
    "master_server": "test_01.example.org"
}
ok: [test_01] => {
    "master_server": "test_01.example.org"
}
ok: [test_03] => {
    "master_server": "test_01.example.org"
}

示例中使用的清单

代码语言:javascript
复制
$ cat hosts
group1:
  hosts:
    test_01:
      master: yes
      ansible_fqdn: test_01.example.org
    test_02:
      master: no
      ansible_fqdn: test_02.example.org
    test_03:
      master: no
      ansible_fqdn: test_03.example.org
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59785097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档