从多个服务器创建唯一的列表



我想创建我的公园的库存。从这个例子中,我得到了serveur的名称和linux的版本

在我的库存中,有一组服务器。(listeServers(

我想执行这个任务,最后,用我所有的服务器(只在一个var中(显示一个完整的列表

- hosts: listeServers
gather_facts: no
vars:
bilan: ['inventory']
tasks:
- name: "Unix version"
shell: "echo Server : `uname -n` - `lsb_release -d -s`"
register: unix_version    
- name: "add to bilan"
set_fact: 
bilan: "{{ bilan + [ unix_version.stdout ] }}"
- debug: var=bilan

目前,每个服务器都有自己的变量。它给出:

10:15:06  TASK [debug] *******************************************************************
10:15:06  ok: [serveur3_apache] => {
10:15:06      "bilan": [
10:15:06          "inventory",
10:15:06          "Server : server03 - Ubuntu 18.04.1 LTS"
10:15:06      ]
10:15:06  }
10:15:06  ok: [serveur4_middle] => {
10:15:06      "bilan": [
10:15:06          "inventory",
10:15:06          "Server : server04 - Ubuntu 18.04.1 LTS"
10:15:06      ]
10:15:06  }
10:15:06  ok: [serveur5_middle] => {
10:15:06      "bilan": [
10:15:06          "inventory",
10:15:06          "Server : server05 - Ubuntu 18.04.1 LTS"
10:15:06      ]
10:15:06  }
10:15:06  ok: [serveur6_postgres] => {
10:15:06      "bilan": [
10:15:06          "inventory",
10:15:06          "Server : server06 - Ubuntu 18.04.1 LTS"
10:15:06      ]
10:15:06  }

我希望它们都写入同一个变量。这个变量的内容是:

"inventoryM",
"Server : server03 - Ubuntu 18.04.1 LTS"
"Server : server04 - Ubuntu 18.04.1 LTS"
"Server : server05 - Ubuntu 18.04.1 LTS"
"Server : server06 - Ubuntu 18.04.1 LTS"

你有主意吗?

hostvars中提取变量。使用ansible_play_hosts

- name: Create list bilan
set_fact: 
bilan: "{{ ansible_play_hosts|
map('extract', hostvars, ['unix_version', 'stdout'] }}"

最新更新