我想知道如何為該組定位特定模板。假設我有以下組的庫存:
[group_1]
server_1
server_2
server_3
[group_2]
server_4
server_5
server_6
[group_3]
server_7
server_8
server_9
然后包含檔案的模板目錄如下:
├── templates
│ ├── group1_config.yml.j2
│ ├── group2_config.yml.j2
│ └── group3_config.yml.j2
為正確的主機獲取組配置的便捷方法是什么?
我認為可以通過在模板檔案名中包含變數來定位它們的一種方法,例如:
{{ group_names }}.config.yml.j2
可能不是這樣:)
有任何想法嗎?
謝謝!
uj5u.com熱心網友回復:
使用特殊變數group_names。它保持List of groups the current host is part of. 在您的情況下,所有主機都只是一個組的成員。但是模板的名稱不使用組的確切名稱。讓我們只取組名中的數字并創建模板的名稱,例如
- hosts: all
gather_facts: false
tasks:
- debug:
msg: "{{ inventory_hostname }} group{{ group_names[0][-1] }}_config.yml.j2"
給(略)
msg: server_1 group1_config.yml.j2
msg: server_2 group1_config.yml.j2
msg: server_3 group1_config.yml.j2
msg: server_4 group2_config.yml.j2
msg: server_5 group2_config.yml.j2
msg: server_6 group2_config.yml.j2
msg: server_7 group3_config.yml.j2
msg: server_8 group3_config.yml.j2
msg: server_9 group3_config.yml.j2
uj5u.com熱心網友回復:
這可能是答案:
- name: Copy a version of named.conf that is dependent on the OS. setype obtained by doing ls -Z /etc/named.conf on original file
ansible.builtin.template:
src: named.conf_{{ ansible_os_family }}.j2
dest: /etc/named.conf
group: named
setype: named_conf_t
mode: 0640
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/347514.html
上一篇:抽象類中的C 迭代器引數
