Diferencia entre revisiones de «Azure»

De Ardemans Wiki
Saltar a: navegación, buscar
(Creando una VM)
(Creando una VM)
Línea 100: Línea 100:
 
Seguramente hay formas más fáciles de lanzar esta creación de máquinas tan compleja, y parece que es mediante templates que definen los recursos que queremos crear de una sola vez. Algunas páginas de ejempos:
 
Seguramente hay formas más fáciles de lanzar esta creación de máquinas tan compleja, y parece que es mediante templates que definen los recursos que queremos crear de una sola vez. Algunas páginas de ejempos:
  
[https://blogs.technet.microsoft.com/keithmayer/2014/12/01/step-by-step-automated-provisioning-for-linux-in-the-cloud-with-microsoft-azure-xplat-cli-json-and-node-js-part-2/]
+
[https://blogs.technet.microsoft.com/keithmayer/2014/12/01/step-by-step-automated-provisioning-for-linux-in-the-cloud-with-microsoft-azure-xplat-cli-json-and-node-js-part-2/ Step-by-Step: Automated Provisioning for Linux in the Cloud with Microsoft Azure, XPlat CLI, JSON and Node.js ( Part 2 )]

Revisión de 08:26 20 mar 2016

Introduccion

Mis pruebas con Azure

Usando la línea de comandos

Para usar la línea de comandos en Linux hace falta tener instalado nodejs y npm.

En Ubuntu

$ apt-get install nodejs npm

Cabe destacar que a diferencia de otras distros, el comando para ejecutar un nodejs no es "node", sino "nodejs". Para igual se puede crear un enlace simbólico

$ sudo ln -s /usr/bin/nodejs /usr/bin/node

Así algunos scripts .js podrán ser ejecutado sin en la primera línea del script está "#!/usr/bin/node"

La herramienta de azure se puede instalar con npm:

$ sudo npm install -g azure
$ sudo npm install -g azure-cli

Logandose

Antes de nada hay que hacer login en Azure:

$ azure login

aparece un mensaje en consola instandote a ir a una URL, e introducir un código, después de lo cual tendrás que poner tus credenciales. Eso creará en tu ~/.azure un fichero con las nuevas credenciales de sesion (temporales)

NOTA: seguro que las credenciales se pueden guardar en local con un certificado y así no hace falta estar logandose cada vez.

Creando una VM

Esta fue mi primera prueba creando una VM

$ azure vm create --verbose --json --location "West Europe" -e 22 -n admin2 ardemans-admin2 -t ~/.ssh/pmblanco.pub.pem -P -w Main -b services 5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-72-20160308 pmblanco --custom-data "./test.sh"

La máquina se creó pero parece que no ejecutó el test.sh que enviaba en el custom-data. Parece que esto solo fucinoa si la imagen de la vm tiene cloud-init, y en el caso de azure esta solo viene con las imágenes de ubuntu.

Otra de las cosas extrañas que me ha pasado es que la máquina tiene IP pública pero parece que el dns se ha asociado a la IP interna, por lo menos durante los primeros instantes nada mas crear la vm.

ARM (azure resource management)

Pues resulta que tienen dos tipos de administracion, orientado a servicio y orentiado a recursos, y por ahí pone que recomiendan ir pasando a ARM. En esta página explican la diferencia.

Creando máquina en ARM

Grupo de recursos

Empiezo definiendo un grupo de recursos para agrupar lo que voy creando para esta prueba.

$ azure group create -v --json -n GroupOne -l "West Europe"

Redes

Las redes virtuales en las que voy a meter mi máquina.

$ azure network vnet create -v --json -g GroupOne -l "West Europe" -n main -a "172.1.0.0/16" -d 8.8.8.8

Cabe destacar que aunque lo meto en un grupo que ya tiene definido un "location", a la hora de crear la red tambien hay que especificar el parámetro -l, para decir donde tienes que crear la red. También hay que crear una subred dentro de la red que hemos definido

azure network vnet subnet create -g GroupOne -e main -n services -a "172.1.1.0/24"

Cuenta de almacenamiento

$ azure storage account create -v --json -l "West Europe" -g GroupOne --type LRS ardemansstorageone

Selecionando imagen a arrancar

Con el cli de azure podemos ver una lista de imagenes, organizadas por publishers. Para saber el código de una imagen primero tendremos que saber el código del publisher de la imagen que queremos buscar.

$ azure vm image list-publishers -l "West Europe"

Una vez sabemos el publisher podemos ver la lista de imagenes que ofrece:

$ azure vm image list -l "West Europe" -p OpenLogic

Creando una VM

Un ejemplo del comando usado para arrancar una vm

$azure vm create -v --json -g GroupOne -l "West Europe" -u "pmblanco" --ssh-publickey-file ~/.ssh/pmblanco.pub \
--nic-name eth10 --vm-size "Standard_A1"  --vnet-name main --vnet-subnet-name services \
--storage-account-name ardemansstorageone --os-type linux --image-urn OpenLogic:CentOS:7.2:7.2.20160308 \
admin1

Esta máquina me la ha creado sin ip pública. Si queremos ip pública hay que añadir dos parámetros nuevos, como los que tiene la máquina que se crea a continuación:

$ azure vm create -v --json -g GroupOne -l "West Europe" -u "pmblanco" --ssh-publickey-file ~/.ssh/pmblanco.pub \
    --nic-name admin2-1 --public-ip-name admin2 --public-ip-domain-name admin2 \
    --vnet-name main --vnet-subnet-name services --storage-account-name ardemansstorageone \
    --vm-size "Standard_A1" --os-type linux --image-urn OpenLogic:CentOS:7.2:7.2.20160308  \
    admin2

Por lo que veo todo está etiquetado con un nombre, la IP privada, la IP pública y el interface de red, son cosas que se pueden re aprovechar después en otras máquinas. ¿? También se especifica la entrada de DNS que tendrá la IP pública en el DNS de Microsoft.

Seguramente hay formas más fáciles de lanzar esta creación de máquinas tan compleja, y parece que es mediante templates que definen los recursos que queremos crear de una sola vez. Algunas páginas de ejempos:

Step-by-Step: Automated Provisioning for Linux in the Cloud with Microsoft Azure, XPlat CLI, JSON and Node.js ( Part 2 )