簡體   English   中英

Ansible azure_rm_deployment 從 2 個位置引用參數

[英]Ansible azure_rm_deployment referencing parameters from 2 locations

我有一個 Azure RM 模板( WindowsVirtualMachine.jsonWindowsVirtualMachine.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 並沒有給我帶來任何樂趣。 任何建議將不勝感激。

  1. 將密碼保存到 Ansible Vault 保護的變量中,例如adminPassword_defined_in_vault

  2. 將參數文件轉為模板,即重命名為WindowsVirtualMachine.parameters.json.j2

  3. 修改上面的模板,使其包含:

     "adminPassword": { "value": "{{ adminPassword_defined_in_vault }}" },
  4. 在劇本中使用template查找插件而不是file

     parameters: "{{ (lookup('template', 'WindowsVirtualMachine.parameters.json.j2')).parameters }}"

我懷疑是否可以直接完成,但是您可以將文件讀入變量並直接在變量中修改其內容並將其傳遞給部署 檢查 Techraf 的正確答案;)

可悲的是,還有其他方法可以實現與您所要求的類似的東西,例如 Azure Key Vault 或使用部署“常量”(在這種情況下可能不起作用,但誰知道),或者您可以即時生成密碼,這樣您就不必擔心保護它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM