【问题标题】:Create a dynamic host group based on the specific Manufacturer根据特定制造商创建动态主机组
【发布时间】:2020-07-23 20:26:15
【问题描述】:

我有一个测试手册,其中有 5 个节点,如果该节点的制造商是 XYZ 公司,我需要创建一个动态主机组

到目前为止,我已经尝试过这些,并且能够遍历节点并使用制造商获取制造商

- name: Filter the Manufacturer of Nodes
  hosts: Test
  tasks:
  - name: Get facts from hosts
    redfish_info:
      category: Chassis
      command: GetChassisInventory
      baseuri: "{{ hostvars[item]['nodes_list'] }}"
      username: "{{ }}"
      password: "{{ }}"
    register: chassis_facts
    with_items:
    - "{{ groups.webservers }}"
    - "{{ groups.dbservers  }}"
  - debug:
      var: chassis_facts.results

现在应该发生的是我需要使用add_host 模块创建一个动态主机组

- name: Add the hosts dynamically as per Manufacturer
  add_host:
    groups: xyz_hosts
    hostname: "{{ item }}"
  when: chassis_facts.results[*].redfish_facts | json_query(some_regex_filter) 
  with_items:
  - "{{ groups.webservers }}"
  - "{{ groups.dbservers }}" 

基于使用json_query 过滤器的上述节点列表中的制造商。非常感谢任何帮助。

【问题讨论】:

    标签: json regex loops ansible


    【解决方案1】:

    所以,经过大量挖掘,我找到了答案,我使用下面的模块来解决问题。

     - name: create a new host group based on Manufacturer
        add_host:
          groups: webservers
          hostname: "{{ item }}"
          inventory_dir: "{{inventory_dir}}"
        when: '"xyz Company" in 
        result.results[0].redfish_facts.chassis.entries[0].Manufacturer'
        with_items:
          - "{{ groups.webservers }}"
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 2017-06-17
      • 2015-04-11
      • 2022-12-18
      相关资源
      最近更新 更多