比方說,我有一個模板,我用它來配置特定的主機到服務器名稱從HTTP重定向到https創建一個nginx的配置文件:Ansible:特定角色和庫存的變量是否可能?
server {
listen 80;
server_name {{ server_name }};
rewrite ^https://$server_name$request_uri? permanent;
}
說我有託管在同一臺機器上的兩個網站:
- 站點A
- 站點B
每個人都有自己的服務器名稱和每個需要上面的重定向。與此同時,讓我們說,我至少有兩個獨立的部署配置,按照各自的清單文件及其group_vars /文件夾中表示,例如:
- 流浪漢的onebox
- 生產
各使用不同的服務器名稱。所以現在我有2 * 2 = 4個獨立的服務器名稱:
- sitea.myonebox.com
- siteb.myonebox.com
- sitea.production.com
- siteb.production.com
我不知道如何定義所有這4個變量。我無法在group_vars /下定義兩個單獨的變量,因爲j2模板只需要一個變量名{{server_name}},所以我必須定義相同的模板兩次才能完成此工作。
另一種選擇是將sitea和siteb作爲兩個獨立的角色(我打算這麼做),並將sever_name存儲在角色/ sitea/vars/main.yml中,但該設置不考慮庫存,這意味着我會下降到2個變量,而不是4個。
這是可能的,沒有模板重複,或者Ansible不支持這種情況?
Ansible 1.8.2:'錯誤:語法錯誤而載入YAML script' – user272735
正確的語法似乎是:' - {role:sitea,server_name:「{{sitea_server_name}}」}' – user272735
您是對的,已修復 – hkariti