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"}'