我想创建我的公园的库存。从这个例子中,我得到了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'] }}"