Với hàng tồn kho này:ansible: loại danh sách hiểu?
[webservers]
10.0.0.51 private_ip='X.X.X.X'
10.0.0.52 private_ip='Y.Y.Y.Y'
10.0.0.53 private_ip='Z.Z.Z.Z'
Làm thế nào tôi có thể nhận được một danh sách các ip riêng của máy chủ web?
webservers_private_ips: "{{ }}" # ['X.X.X.X', 'Y.Y.Y.Y', 'Z.Z.Z.Z']
Tôi biết groups['webservers']
sẽ cho tôi danh sách này ['10.0.0.51', '10.0.0.52', '10.0.0.53']
và tôi có thể nhận được private_ip của một với:
{{ hostvars[item]['private_ip'] }}
with_items: groups['webservers']
Nhưng tôi muốn khai báo một biến trong file var tôi trực tiếp và không có một nhiệm vụ để đăng ký nó. Sẽ thật tuyệt nếu một số điều như sau có thể được thực hiện:
webservers_private_ips: "{{ hostvars[item]['private_ip'] }} for item in groups['webservers']"
Cảm ơn. Vâng, như tôi đã nói, tôi biết cách thực hiện nó trong một nhiệm vụ và trong một mẫu. Những gì tôi đang tìm kiếm là tạo một biến với danh sách các IP riêng mà tôi có thể truyền vào các vai trò khác nhau chẳng hạn. – Michael
Bạn có thể cho chúng tôi biết thêm về trường hợp sử dụng của bạn không? Đặc biệt, bạn sẽ sử dụng chúng trong một mẫu? – leucos
Không, nó không được sử dụng trong một mẫu. Một trong những vai trò mà tôi sử dụng dự kiến là danh sách các địa chỉ IP dưới dạng biến. Tôi có thể tạo danh sách này theo cách thủ công trong tệp vars của tôi nhưng tôi muốn tạo biến này động từ các biến private_ip mà tôi đã xác định trên mỗi máy chủ. – Michael