Introducción
Buenas, en este post vamos a volver a crear una instancia en OpenStack de nuestro escenario del Toboso usando el mismo volumen, pero cambiado la configuración de cloud-init
, de manera que la instancia permaneza bien configurada aunque se reinicie.
Configuraciones necesarias
Vamos a usar a Sancho
. Antes que nada tenemos que volver a activar el dhcp
de nuestra red, ya que al crear una nueva máquina queremos que nos coja una ip.
Generar contraseña para Sancho
Vamos a generar una contraseña con mkpasswd
, que viene con el paquete whois
, la cuál usaremos en nuestro archivo cloud-config.yaml
:
mkpasswd --method=SHA-512 --rounds=4096
Contraseña:
$6$rounds=4096$VnWm7hvw//YedOc$pngcEHsjE94Gb6nMqbOf7LR.TIU.2FkWPtdn5O3gIl/RJhCMV41FAqfeku1U9B0/viO7NF15GUf7AEiMapeIE/
Obtener ID de volumen
Para poder obtener el ID de los volumenes de nuestro proyecto de Openstack, necesitamos añadir al script de la ejecución de nuestro proyecto la siguiente línea:
export OS_VOLUME_API_VERSION=2
Así ya podremos ejecutar el siguiente comando para obtener los volúmenes:
openstack volume list
+--------------------------------------+----------+-----------+------+-----------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+----------+-----------+------+-----------------------------------+
| 8a21e41a-92f7-432c-aa61-da459ebd693a | freston | in-use | 10 | Attached to freston on /dev/vda |
| 9bc2d3b5-6623-4d99-baaa-7d337b692231 | | available | 2 | |
| 3d2e9e23-7130-41fa-9086-9268e2733737 | quijote | in-use | 10 | Attached to quijote on /dev/vda |
| 49c2596f-8c38-413c-8b0a-dc470ebb1ade | sancho | available | 10 | |
| 598f13c1-8a55-47eb-95a9-d29eeded32e9 | dulcinea | in-use | 10 | Attached to dulcinea on /dev/vda |
+--------------------------------------+----------+-----------+------+-----------------------------------+
Obtener id red de proyecto
Para obtener la red del proyecto:
openstack network list
+--------------------------------------+-----------------------------------+----------------------------------------------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-----------------------------------+----------------------------------------------------------------------------+
| 14acf1c8-df75-4b94-b40f-700aec119e5f | DMZ de alejandro.cabeza | 4bc9f91a-ff87-47e3-a516-c45413b338ac |
| 49812d85-8e7a-4c31-baa2-d427692f6568 | ext-net | 158bbe3e-3c98-485e-8042-ba6402111ea6, 6218710b-aa05-46f7-b198-7639efe3da95 |
| 8784de88-3168-4889-8938-afedf821c377 | red de alejandro.cabeza | 63d2b1bb-4d50-48c9-8882-ea4dd5c4b202 |
| c0bfcf94-919a-451b-8ab5-d6c46e5e4663 | red interna de alejandro.cabeza | 46237ca1-5e8e-45b8-bf8a-ef515c9d17bf |
| de22c64c-0c44-491c-8bc4-cb0d2e33cce9 | red interna de alejandro.cabeza_2 | da95436a-9fef-4892-bddc-3ed1f817be55 |
+--------------------------------------+-----------------------------------+----------------------------------------------------------------------------+
Fichero de cloud-init
Hemos creado el siguiente fichero con el cual arrancaremos la máquina:
#cloud-config
# Instalamos algunos paquetes:
packages:
- dnsutils
# Configuramos adecuadamente el hostname
preserve_hostname: false
fqdn: sancho.cabezas.gonzalonazareno.org
hostname: sancho
# Realizamos un update y upgrade
package_update: true
package_upgrade: true
# Definimos la zona horaria
timezone: Europe/Madrid
# Crear usuario profesor y añadir claves profesores
users:
- name: profesor
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3AUDWjyPANntK+qwHmlJihKQZ1H+AGN02k06dzRHmkvWiNgou/VcCgowhMTGR+0I6nWVwgRSWKJEUEaMu1r9rEeL63GRtUSepCWpClHJG1CuySuJKVGtRdUq+/szDntpJnJW207a78hTeQLjQsyPvbOqkbulQG7xTRCycdT3bH2UO4JI2d+341gkOlxSG/stPQ52Dsbfb274oMRom5r5f2apD3wbfxE9A6qwm4m70G9NYS7T3uKgCiXegO/3GTJD4UbK0ylGUamG5obdS5yD8Ib12vRCCXWav23SAj/4f9MzAnXX8U4ATM/du2FHZBiIzWVH12LYvIEZpUIVYKPSf
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmjoVIoZCx4QFXvljqozXGqxxlSvO7V2aizqyPgMfGqnyl0J9YXo6zrcWYwyWMnMdRdwYZgHqfiiFCUn2QDm6ZuzC4Lcx0K3ZwO2lgL4XaATykVLneHR1ib6RNroFcClN69cxWsdwQW6dpjpiBDXf8m6/qxVP3EHwUTsP8XaOV7WkcCAqfYAMvpWLISqYme6e+6ZGJUIPkDTxavu5JTagDLwY+py1WB53eoDWsG99gmvyit2O1Eo+jRWN+mgRHIxJTrFtLS6o4iWeshPZ6LvCZ/Pum12Oj4B4bjGSHzrKjHZgTwhVJ/LDq3v71/PP4zaI3gVB9ZalemSxqomgbTlnT
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfk9mRtOHM3T1KpmGi0KiN2uAM6CDXM3WFcm1wkzKXx7RaLtf9pX+KCuVqHdy/N/9d9wtH7iSmLFX/4gQKQVG00jHiGf3ABufWeIpjmHtT1WaI0+vV47fofEIjDDfSZPlI3p5/c7tefHsIAK6GbQn31yepAcFYy9ZfqAh8H/Y5eLpf3egPZn9Czsvx+lm0I8Q+e/HSayRaiAPUukF57N2nnw7yhPZCHSZJqFbXyK3fVQ/UQVBeNS2ayp0my8X9sIBZnNkcYHFLIWBqJYdnu1ZFhnbu3yy94jmJdmELy3+54hqiwFEfjZAjUYSl8eGPixOfdTgc8ObbHbkHyIrQ91Kz
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCohLqkd0h+z1FV2EJVZg/KHQFafOUvgq6v1wMRaF7qPbckHGi5UDL0/IkimzaCmxvjCQhEPvNa7LfcWZqiAgSFuClBNAL5tHuavgV+QXIug4fHqvTjaCbNSv5/w0ik+66+6hK16KulFIIixooGxUdsUoSYRVIDoon3rUi/Mo9rfarsTdlEdq8ie0m+a3beEd7IA+TFuPqoFRxyYoenTn1vDTa+RtQJrVsqzvWsv/K8obFU4XQQ4l4Sts19VkKFcooBrpvnfIVx4Z3QpmeGXWjmUu6QpNnydoCDQglvmSNtsRhIT2h2jvi/QZJhDyJpILEO5FsfjdZvBDXV5SAo77RF
- name: ubuntu
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCohLqkd0h+z1FV2EJVZg/KHQFafOUvgq6v1wMRaF7qPbckHGi5UDL0/IkimzaCmxvjCQhEPvNa7LfcWZqiAgSFuClBNAL5tHuavgV+QXIug4fHqvTjaCbNSv5/w0ik+66+6hK16KulFIIixooGxUdsUoSYRVIDoon3rUi/Mo9rfarsTdlEdq8ie0m+a3beEd7IA+TFuPqoFRxyYoenTn1vDTa+RtQJrVsqzvWsv/K8obFU4XQQ4l4Sts19VkKFcooBrpvnfIVx4Z3QpmeGXWjmUu6QpNnydoCDQglvmSNtsRhIT2h2jvi/QZJhDyJpILEO5FsfjdZvBDXV5SAo77RF
passwd: $6$rounds=4096$bLTvzyHQoviujN$tA/wvvSNGqZw/Ctl2s7SdM/orhHu8hk297/9A1cd/TKU8m59DmbMeHnvVQ5XuvV3keVBx/PoOtyTSk0VgMuYT.
lock_passwd: false
bootcmd:
- apt-get remove --purge ntp -y
- echo "NTP=es.pool.ntp.org" >> /etc/systemd/timesyncd.conf
- systemctl restart systemd-timesyncd.service
- timedatectl set-ntp true
- ip r del default
- ip r add default via 10.0.1.10
network:
version: 1
config:
- type: physical
name: ens3
subnets:
- type: dhcp
Creación de instancia
Una vez eliminada la máquina sancho
, previamente hemos eliminado también el archivo /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
que nos desactivaba el cloud-network. Ejecutamos para crear la instancia:
openstack server create --volume 49c2596f-8c38-413c-8b0a-dc470ebb1ade --flavor m1.mini --security-group default --key-name cloud --network c0bfcf94-919a-451b-8ab5-d6c46e5e4663 --user-data cloud-init.yaml sancho
+-----------------------------+------------------------------------------------------------------+
| Field | Value |
+-----------------------------+------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-STS:power_state | NOSTATE |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | nNHByyRMrWw3 |
| config_drive | |
| created | 2020-12-17T23:42:18Z |
| flavor | m1.mini (12) |
| hostId | |
| id | dd514563-893f-4bf1-9a28-281596c9f099 |
| image | N/A (booted from volume) |
| key_name | cloud |
| name | sancho |
| progress | 0 |
| project_id | 7968089df76945fe9bdca29d3d159277 |
| properties | |
| security_groups | name='3b27f993-42d9-4e18-b590-334bbd6287bf' |
| status | BUILD |
| updated | 2020-12-17T23:42:18Z |
| user_id | c179ae8775bb4403bc9564b9787ea4a35a4af3954f1a0d1fc1205481e24dd50a |
| volumes_attached | id='49c2596f-8c38-413c-8b0a-dc470ebb1ade' |
+-----------------------------+------------------------------------------------------------------+
Así ya tendríamos la instancia creada y lo único que tendríamos que hacer es ponerle una ip estática igual que la que nos ha asignado el DHCP de la red para poder volver a deshabilitarlo y que todo esté como antes.