首页 > 解决方案 > Ansible:从一组主机中获取一个变量

问题描述

我有一组服务器,例如:

[mygroup]
server1
server2
server3

有没有办法在 ansible 中拥有一个变量,该变量是 mygroup 组中所有主机串联的结果?:

例子:

server1:80,server2:80,server3:80

标签: ansible

解决方案


你可以这样做:

- hosts: localhost
  gather_facts: false
  tasks:
    - debug:
        msg: "{{ groups.mygroup|map('regex_replace', '(.*)', '\\1:80')|list|join(',') }}"

如果我的清单中有 hosts host0host1和,则会产生:host2

TASK [debug] **********************************************************************************
ok: [localhost] => {
    "msg": "host2:80,host1:80,host0:80"
}

推荐阅读