json - Ansible azure_rm_deployment 引用来自 2 个位置的参数

标签 json azure parameters ansible

我有一个 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 个参数位置;一个来自 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_define_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 }}"
    

关于json - Ansible azure_rm_deployment 引用来自 2 个位置的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545902/

相关文章:

facebook - 如何从 Azure 移动服务客户端 SDK 获取 facebook 访问 token

Java:如何在单个定义中组合具有多个签名的方法?

ios - 如何显示 Json 对象中的键和值

json - Windows Phone 8 JSON

wcf - 将 ClaimCollection 从 Silverlight 发送到 WCF

Azure AD 与 Bot 框架/团队集成

parameters - 使用全局设置作为属性参数

c++ - 在参数列表中使用表达式的意外输出

json - Gson Unicode字符转Unicode字符编码

javascript - 使用 javascript 在嵌套的 JSON 对象中添加或删除特定节点