![](/img/trans.png)
[英]How to pass multiple parameters into an Azure RM Template Custom Script Extension
[英]Ansible azure_rm_deployment referencing parameters from 2 locations
我有一個 Azure RM 模板( WindowsVirtualMachine.json
和WindowsVirtualMachine.parameters.json
),我可以使用以下 YML 通過 Ansible 進行部署:
---
- name: Deploy Azure ARM template.
hosts: localhost
connection: local
gather_facts: false
tasks:
- name: Create Azure Deploy
azure_rm_deployment:
state: present
resource_group_name: AnsibleTest
location: UK South
template: "{{ lookup('file', 'WindowsVirtualMachine.json') }}"
parameters: "{{ (lookup('file', 'WindowsVirtualMachine.parameters.json') | from_json).parameters }}"
我試圖找出是否可以引用 2 個參數位置; 1 個來自 JSON,另一個來自 Ansible YML 文件。 如:
template: "{{ lookup('file', 'WindowsVirtualMachine.json') }}"
parameters: "{{ (lookup('file', 'WindowsVirtualMachine.parameters.json') | from_json).parameters }}"
adminPassword:
value: "Password123"
我問的原因是詢問我是否可以將adminPassword
值放入 Ansible Vault 中,以防止窺探。
我是編碼新手,遺憾的是 Google 並沒有給我帶來任何樂趣。 任何建議將不勝感激。
將密碼保存到 Ansible Vault 保護的變量中,例如adminPassword_defined_in_vault
將參數文件轉為模板,即重命名為WindowsVirtualMachine.parameters.json.j2
修改上面的模板,使其包含:
"adminPassword": { "value": "{{ adminPassword_defined_in_vault }}" },
在劇本中使用template
查找插件而不是file
:
parameters: "{{ (lookup('template', 'WindowsVirtualMachine.parameters.json.j2')).parameters }}"
我懷疑是否可以直接完成,但是您可以將文件讀入變量並直接在變量中修改其內容並將其傳遞給部署
。 檢查 Techraf 的正確答案;)
可悲的是,還有其他方法可以實現與您所要求的類似的東西,例如 Azure Key Vault 或使用部署“常量”(在這種情況下可能不起作用,但誰知道),或者您可以即時生成密碼,這樣您就不必擔心保護它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.