簡體   English   中英

如何使用 Ansible 向 Azure VM 添加自定義腳本擴展

[英]How to add Custom Script Extension to Azure VM using Ansible

按照https://superuser.com/questions/1210215/how-to-bootstrap-windows-hosts-with-remote-powershell-for-use-with-ansible 上的建議,我正在嘗試向現有 VM 添加自定義腳本擴展。

下面是我的劇本

- name: Create VM playbook
  hosts: localhost
  connection: local
  tasks:

  - name: Custom Script Extension
    azure_rm_deployment:
      state: present
      location: 'uk west'
      resource_group_name: 'AnsibleRG'
      template: "{{ lookup('file', '/etc/ansible/playbooks/extension.json') | from_json }}"
      deployment_mode: incremental

這是 extension.json

{
  "publisher": "Microsoft.Compute",
  "type": "CustomScriptExtension",
  "typeHandlerVersion": "1.4",
  "settings": {
    "fileUris": [
      "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
    ],
    "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1"
  }
}

當我運行劇本時,我在 azure 上遇到以下錯誤

請求內容無效且無法反序列化:“無法在“模板”類型的對象上找到成員“發布者”。 路徑“properties.template.publisher”,第 1 行,位置 64.'。

任何人都可以指出我正確的方向嗎?

謝謝

  1. 您仍然需要提供有效的模板
  2. 您需要為資源提供正確的類型, extensions不是正確的類型
  3. 您的名稱必須包含 vm 名稱,因為這是模板應該如何確定將此擴展應用於哪個 vm 的方式。

例子:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vmName": {
            "type": "string"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "name": "[concat(parameters('vmName'),'/ConfigureRemotingForAnsible')]",
            "apiVersion": "2015-06-15",
            "location": "[resourceGroup().location]",
            "properties": {
                "publisher": "Microsoft.Compute",
                "type": "CustomScriptExtension",
                "typeHandlerVersion": "1.8",
                "autoUpgradeMinorVersion": true,
                "settings": {
                    "fileUris": [
                        "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
                    ],
                    "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1"
                }
            }
        }
    ]
}

暫無
暫無

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

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