win_iis_webbinding.ps1, diff

Siguiendo lo que describen aqui.

Con el enfoque original (asociar certificado con IP y puerto) llega un momento en que se intenta “sobreescribir” la asociación de certificados con ips. Este enfoque no sirve para webservers con varios sites. Haciendolo de esta otra forma (asociando hostname:ip con certificado) podemos tener tantos sites y hostnames como sea necesario.

diff /usr/local/lib/python2.7/dist-packages/ansible/modules/windows/win_iis_webbinding.ps1 /home/psf/prov/ansible/lib/ansible/modules/windows/win_iis_webbinding.ps1


24d23
<
68,69c67
< #    "sslFlags" = $args[0].sslFlags
< "sslFlags" = '1' --- >     "sslFlags" = $args[0].sslFlags
91c89
< New-WebBinding @binding_parameters -Force -SslFlags 1 --- >     New-WebBinding @binding_parameters -Force
106,110d103
<       $host_header = $binding_parameters["HostHeader"]
<       if(!$host_header) {
<         $host_header = ""
<       }
<
113,122c106,109
<       $result.host_header = $host_header
<       $result.certificatehash = $certificateHash
<       $result.certificatestorename = $certificateStoreName
<
<
<       $guid = [guid]::NewGuid().ToString("B")
<       netsh http add sslcert hostnameport="$($host_header):$($port)" certhash="$certificateHash" certstorename="$certificateStoreName" appid="$guid"
< #      Push-Location IIS:\SslBindings\
< #      Get-Item Cert:\LocalMachine\$certificateStoreName\$certificateHash | New-Item  "$($ip)!$($port)!$($host_header)"
< # Pop-Location --- >
>       Push-Location IIS:\SslBindings\
>       Get-Item Cert:\LocalMachine\$certificateStoreName\$certificateHash | New-Item  "$($ip)!$($port)"
>       Pop-Location

 

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

itinerario huertano

ciudad huerto, un itinerario de aprendizaje huertano a partir de las experiencias de los huertos urbanos de Madrid.

“El itinerario de Ciudad Huerto está compuesto de ocho unidades de aprendizaje desarrolladas en torno a saberes que se encuentran normalmente en huertos urbanos comunitarios. Cada una estará vinculada a un badge de Ciudad Escuela, que es nuestra forma de legitimar el conocimiento adquirido. Pincha sobre ellos si quieres conseguirlos.”

 

una especie de “gamificación” de un sistema de buenas practicas.

qué se consigue con los badges del juego? formar parte de la comunidad.