首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ansible的攻略期间访问动态清单中的主机变量?

问如何在Ansible的攻略期间访问动态清单中的主机变量?
EN

Stack Overflow用户
提问于 2020-09-03 06:28:19
回答 1查看 113关注 0票数 2

我想写一个简单的ping攻略,它从HOST_VARS中的所有YAML文件中获取IP地址,并连接到Linux设备,并Ping所有收集的IP示例: HOST_VARS:-server1.yml (包含IP = 1.1.1.1) -server2.yml (包含IP = 2.2.2)。攻略将连接到所有linux设备,并使用提取的IP测试到这些设备(在本例中为1.1.1.1和2.2.2.2)的连通性

这就是可能的解决方案,但缺少一些东西:

代码语言:javascript
复制
- name: "Ping all Linux VMs"
    hosts: servers
    gather_facts: no

    tasks:  
      - debug:
          msg: "{{ hostvars['{{ item }}'].ansible_host }}"
        with_items: "{{ groups['servers'] }}"
        delegate_to: localhost

这是我的清单:

代码语言:javascript
复制
[centos@Ansible silverpeak-cisco-poc-automation]$ ansible-inventory --graph
@all:
  |--@servers:
  |  |--backbone1_linux
  |  |--backbone2_linux
  |  |--linux1
  |  |--linux2
  |  |--linux3
  |  |--linux4
  |--@ungrouped:

示例:

Playbook将连接到backbone1_linux并ping组服务器的所有剩余成员

有人能在这个问题上帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-03 07:38:21

调试任务应显示IP地址

代码语言:javascript
复制
- hosts: servers
  gather_facts: false
  tasks:
    - debug:
        msg: "{{ hostvars[item]['IP'] }}"
      loop: "{{ groups.servers }}"
      delegate_to: localhost
      run_once: true

下面的命令任务应该ping通IP地址

代码语言:javascript
复制
    - command: "ping -c 1 {{ hostvars[item]['IP'] }}"
      loop: "{{ groups.servers }}"
      delegate_to: localhost
      run_once: true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63714324

复制
相关文章

相似问题

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