ansible - Ansible 迭代库存变量
问题描述
我有一个清单,在其中定义了一些变量,例如服务器 ip:
all:
children:
my_servers:
children:
data:
hosts:
data01.mydomain:
ansible_host: 10.0.0.1
es_name: "data01"
data02.mydomain:
ansible_host: 10.0.0.2
es_name: "data02"
我知道要访问主机名,我可以使用“{{ groups['data'] }}”之类的东西,这将遍历主机名。
我想做的是遍历每个主机名中的 var“ansible_host”(在防火墙上打开规则)。我可以使用 "{{ hostvars['data01']['ansible_host'] }}" 获得一个值,但我找不到遍历清单上所有主机的方法。
解决方案
干得好。记得用-i hosts
播放.yml
---
- name: Play
hosts: localhost
tasks:
- name: iterate
debug:
msg: "{{ item }}:{{ hostvars[item].ansible_ssh_host }}"
with_items:
- "{{ groups['all'] }}"
像下面这样运行剧本
ansible-playbook -i hosts play.yml
推荐阅读
- javascript - SignalR - 更新特定用户(推送通知)
- python - 使用 discord.py 创建角色
- d3.js - 带有水平标签的 d3v4 饼图
- sql - 将多行(具有相同ID)合并为一行?
- java - 如何从字符串中获取所有值?
- vue.js - vue-router beforeRouteUpdate 切换时使用旧参数
- c++ - ReadDirectoryChangesW 仅将单个事件放在 FILE_NOTIFY_INFORMATION 缓冲区中
- android - 如何找出冲突的路径?
- python - gunicorn 发送信息消息处理信号:绞盘
- python - 如何在 PsychoPy 或 Python 中对 WPI 注射泵进行编程?