azure_rm_virtualmachine_extension

el mecanismo de post-install en maquinas Azure se llama “CustomScriptExtension”. Hasta la version 2.4 de Ansible no esta disponible, y la versión 2.4 aun no ha salido.

pero siempre podemos hacer un parcheo, copiando el fichero del modulo (azure_rm_virtualmachine_extension.py) en el lugar donde estan instalados los modulos cloud de ansible:

/usr/local/lib/python2.7/dist-packages/ansible/modules/cloud/azure/

Igual que hicimos parcheando el modulo azure_rm_virtualmachine.py para que aceptase mas tipos de maquinas…

un ejemplo funcional, usando el CustomScriptExtension para preparar una maquina para ser cliente de Ansible:

- name: AZ | CustomExtension Enable ansible
  azure_rm_virtualmachine_extension:
    name: 'CustomScriptExtension'
    location: "{{ azloc }}"
    resource_group: "{{ azrgt }}"
    virtual_machine_name: 'vm01'
    publisher: Microsoft.Compute
    virtual_machine_extension_type: CustomScriptExtension
    type_handler_version: 1.9
    settings: '{"fileUris":"https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1", "commandToExecute":"powershell.exe ./ConfigureRemotingForAnsible.ps1"}'

Finalmente lo que ha dado mas problemas es el numero de version. Ni con 2.0, ni con 1.0 funcionaba. Espiando lo que produce la linea de comandos equivalente, resultó ser 1.9:

 - name: CustomScriptExtensions from command line
   shell: |
     az vm extension set \
       --publisher Microsoft.Compute \
       --name CustomScriptExtension \
       --vm-name 'vm01' \
       --resource-group "{{ azrgt }}" \
       --settings '{"fileUris":["https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"], "commandToExecute":"powershell.exe ./ConfigureRemotingForAnsible.ps1"}'