- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 add_hosts 模块动态构建“elasticsearch”集群的 list 。
我有这些任务:
在第一个任务(识别集群中的 ES 节点)中,我查询 elasticsearch API 以获取节点的名称并将其保存在“es_nodes”数组中
- name: Identify ES nodes in cluster
uri:
url: http://localhost:9200/_nodes/_all/ip
method: GET
return_content: yes
body_format: json
failed_when: false
register: es_nodes
- name: Extract Node Names
set_fact:
nodo: "{{ es_nodes.json.nodes | map('regex_search', '([^\\s]+)') | select('string') | list }}"
- name: Create new var for Node IP
set_fact:
nodo_ip: es_nodes.json.nodes.{{ item }}.ip
with_items: "{{ nodo }}"
ok: [<ansible_ip>] => (item=GxcbPcQ0Qe6vSFOde0zFwg) => {"ansible_facts": {"nodo_ip": "es_nodes.json.nodes.GxcbPcQ0Qe6vSFOde0zFwg.ip"}, "changed": false, "item": "GxcbPcQ0Qe6vSFOde0zFwg"}
ok: [<ansible_ip>] => (item=V2bdDTnwTCexY67U36YE8g) => {"ansible_facts": {"nodo_ip": "es_nodes.json.nodes.V2bdDTnwTCexY67U36YE8g.ip"}, "changed": false, "item": "V2bdDTnwTCexY67U36YE8g"}
- name: Add host to group elasticsearch-security
add_host:
name: "{{ item }}"
groups: elasticsearch-security
with_items: "{{ nodo_ip }}"
最佳答案
如果我很好理解,您需要从另一个 var 的内容(从 with_items 获得)构建一个变量,然后检索该变量的内容。
一种可能性是创建一个单独的剧本,该剧本将从主脚本中包含并在包含任务中使用 with_items。
这是一个简单的示例,您可以根据自己的情况进行调整:
主要剧本:
- hosts: localhost
vars:
es_nodes_x: "val x"
es_nodes_y: "val y"
tasks:
# Create new var for Node IP
- include: sub.yml param={{item}}
with_items:
- "x"
- "y"
- set_fact:
v: "{{param}}"
- debug:
msg: "{{ vars['es_nodes_' + v] }}"
关于json - 如何使用 set_fact 打印数组变量以在 ansible add_host 模块中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345993/
我正在用这个剧本创建一个剧本: 在主机虚拟机管理程序上: 从所有主机检索虚拟机列表 使用模块 add_host 将所有内容添加到名为 guests 的新库存组中 我的库存: [hypervisors]
Ansible 版本:1.9.2 我正在运行一个将启动 EC2 实例的剧本。我有包含所有变量的 site.yml 并使用角色来启动 EC2 实例。这是 ec2_launch 的 main.yml --
我正在尝试使用 add_hosts 模块动态构建“elasticsearch”集群的 list 。 我有这些任务: 在第一个任务(识别集群中的 ES 节点)中,我查询 elasticsearch AP
我正在使用 Ansible 创建一个新的 EC2 实例并尝试在其上安装一些软件包。问题是我正在向主机组添加一个新主机,但我在另一个游戏中看不到该主机组。当它到达“配置 EC2 实例”时,它说: PLA
我正在尝试使用 Ansible 设置用于 Azure 自动化的管道,一切正常,除了当我尝试将公共(public) IP 地址放入变量以与 add_host 一起使用时除外。这是我的示例任务: ---
我是一名优秀的程序员,十分优秀!