最佳实践

概述

参考:

使用 Inventory 变量

一、指定多个 inventory,并使用 –limit 限定主机

ansible-playbook -i inventory/fj-server.yaml -i inventory/fj-client.yaml deploy-monitoring.yaml --limit FJ-BS101-JMR-Monitor

模板使用方式(直接使用 groups, hostvars 这两个遍历啊那个)

{% for target in groups['intf'] %}
  {{ hostvars[target]['ansible_host'] }}
{% endfor %}

二、使用 include_vars 加载

deploy-test.yaml

- hosts: fj-server
  gather_facts: no
  pre_tasks:
    - name: "加载 client inventory"
      ansible.builtin.include_vars:
        file: inventory/fj-client.yaml # 读取该文件,将其中内容作为变量使用
        name: client_inventory # 这些变量的父级字段名称
  roles:
    - test

tasts/main.yaml

- name: "检查变量"
  ansible.builtin.debug:
    msg: "{{ item['ansible_host'] }}"
  with_items:
    # 要使用 valuse() 函数
    - "{{ client_inventory['intf'].hosts.values() }}"

最后修改 January 11, 2025: ansible (2de3c41d)