Nếu cho 1 file inventory có:
host1
trong grouplinux
, thuộc về groupzone1
.host3
trong grouplinux
, thuộc về groupzone2
.
Hỏi: host1
nằm trong những group nào?
File hosts.yml
zone1:
children:
linux:
hosts:
host1:
windows:
hosts:
host2:
zone2:
children:
linux:
hosts:
host3:
windows:
hosts:
host4:
Dù cấu trúc biểu diễn trong file YAML ở trên trông như host1
thuộc về zone1
và không liên quan tới zone2
, thì kết quả lại đáng ngạc nhiên:
$ uvx --from ansible-core ansible -i hosts.yml host1 -m debug -a 'msg={{group_names}}'
Installed 9 packages in 15ms
host1 | SUCCESS => {
"msg": [
"linux",
"zone1",
"zone2"
]
}
Giải thích: host1
trong linux
group, linux
group thuộc children của zone1
group, VÀ linux
group cũng thuộc children của zone2
group, nên kết quả: host1
nằm trong cả group zone1
lẫn zone2
.
Thực hiện trên
$ uvx --from ansible-core ansible --version
ansible [core 2.19.0]
...
python version = 3.12.8 (main, Jan 14 2025, 22:49:14) [Clang 19.1.6 ]
Kết luận
Quan hệ giữa các group tưởng thẳng, nhưng lại cong.
Hết.
HVN at https://pymi.vn and https://www.familug.org.