nl2go.hetzner_installimage

Estado de Construcción Codecov Ansible Galaxy Etiqueta de GitHub (la más reciente por fecha) Descargas de Ansible Galaxy

Rol de Ansible: Hetzner Installimage

Un Rol de Ansible que gestiona el ciclo de vida de la instalación de imágenes del sistema operativo en servidores Hetzner utilizando la API Robot de Hetzner.

Requisitos previos

Requisitos

Nombre Tipo Versión Ubicación
ansible-filter Paquete de Python 1.0.1 Nodo de control

Variables de configuración

Las siguientes variables se sugieren para ser configuradas en su archivo ansible.cfg

[defaults]
inventory = __SU_INVENTARIO__
forks = 1
host_key_checking = false
private_key_file = __SU_CLAVE_DE_PROVISIONAMIENTO_DE_HETZNER__
remote_user = root
roles_path = __RUTA_A_SUS_ROLES_DE_GALAXY__
[ssh_connection]
pipelining = True
scp_if_ssh = True
control_path = %(directory)s/%%h-%%r

Variables de rol

El conjunto de variables por defecto define la imagen de instalación y es mejor sobreescribirlo en group_vars/host_vars

hetzner_installimage_install_bootloader: grub
hetzner_installimage_install_hostname: su-nombre-de-servidor-aquí
hetzner_installimage_install_partitions:
- PART swap swap 32G
- PART /boot ext4 1G
- PART / ext4 all
hetzner_installimage_install_image: Ubuntu-1604-xenial-64-minimal.tar.gz

El rol incluye una autodetección de valores y configuración RAID. No se configurará RAID si se encuentra un disco y RAID1 si se encuentran 2 discos. La configuración automática de RAID se puede sobrescribir con las siguientes variables:

hetzner_installimage_install_drives:
- DRIVE1 /dev/sda
- DRIVE2 /dev/sdb
hetzner_installimage_install_raid:
- SWRAID 1
- SWRAIDLEVEL 0

También es posible simplemente establecer hetzner_installimage_install_raid y permitir que la autodetección encuentre los discos respectivos.

Las siguientes variables obligatorias deben establecerse en group_vars/host_vars o como variables adicionales para permitir la comunicación con el servicio web y el despliegue de la clave pública:

hetzner_installimage_webservice_username: nombre_usuario
hetzner_installimage_webservice_password: contraseña

La siguiente variable se puede establecer opcionalmente para definir el nombre del servidor en el robot de Hetzner:

hetzner_installimage_server_name: __SU_NOMBRE_DE_SERVIDOR__

Si hetzner_installimage_key_fingerprints está establecido, solo se instalarán las claves seleccionadas durante el proceso de instalación de la imagen desde Gestión de Claves Robot de Hetzner. De lo contrario, se provisionarán todas las claves existentes.

hetzner_installimage_key_fingerprints:
    - 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff

Al ejecutar el playbook con éxito, el rol crea un archivo de indicador en el servidor respectivo bajo /etc/hetzner_installimage_provisioned.flag. Al comienzo del rol se verifica si ese archivo existe en el host y se omiten las tareas posteriores. Este comportamiento se puede evitar utilizando la variable hetzner_installimage_ignore_provisioned_flag:

--extra-vars "{ hetzner_installimage_ignore_provisioned_flag: yes }"

Establecer esta variable en true evitará la verificación del archivo de indicador.

Ejemplo de Playbook

- hosts: hetzner
  gather_facts: no
  roles:
     - nl2go.hetzner_installimage
  vars:
    hetzner_installimage_webservice_username: "{{ hetzner_robot_api_user}}"
    hetzner_installimage_webservice_password: "{{ hetzner_robot_api_pass}}"
    hetzner_installimage_server_name: "{{ inventory_hostname }}"

Nota importante: El rol debe ejecutarse con gather_facts: no ya que los hosts donde desea instalar un nuevo sistema operativo generalmente no tienen acceso SSH configurado y gather_facts intentará acceder directamente al host.

Vea más ejemplos en los playbooks de los diferentes escenarios de prueba dentro de la carpeta de prueba.

El rol pedirá una confirmación al usuario para borrar todos los datos de todos los hosts en la tarea. Esto se puede sobrescribir utilizando la variable hetzner_installimage_skip_confirmation establecida en yes.

Un ejemplo para las variables adicionales podría verse así:

--extra-vars "{ hetzner_installimage_skip_confirmation : yes }"

Pasos para la Instalación

  • Instalar una nueva máquina
    1. Inicie sesión en su robot de Hetzner (robot.your-server.de)
    2. Ordene un nuevo servidor
    3. Seleccione su sistema operativo
    4. Seleccione su clave de provisión
    5. Ejecute el rol hetzner_installimage
  • Instalar una máquina existente
    1. Agregue su clave de provisión al robot de Hetzner a través de robot.your-server.de
    2. Ejecute el rol hetzner_installimage
  • Instalar una máquina ya provisionada
    1. Ingrese a la máquina
    2. Elimine /etc/hetzner_installimage_provisioned.flag o establezca
    3. Ejecute el rol hetzner_installimage

Si está seguro de que no borrará accidentalmente una máquina en funcionamiento, puede ejecutar directamente el rol con la variable adicional hetzner_installimage_ignore_provisioned_flag:

--extra-vars "{ hetzner_installimage_ignore_provisioned_flag: yes }"

De esta manera, el rol no verificará si existe un archivo /etc/hetzner_installimage_provisioned.flag en la máquina, pero tampoco evitará que la máquina sea borrada accidentalmente.

Imágenes Disponibles

Las imágenes del sistema operativo se encuentran en la carpeta /root/.oldroot/nfs/images/ dentro del sistema de recuperación. Las siguientes imágenes están disponibles desde el 25 de marzo de 2020:

  • Archlinux-2017-64-minimal.tar.gz
  • archlinux-latest-64-minimal.tar.gz
  • CentOS-76-64-minimal.tar.gz
  • CentOS-77-64-minimal.tar.gz
  • CentOS-80-64-minimal.tar.gz
  • CentOS-81-64-minimal.tar.gz
  • CoreOS-1298-64-production.bin.bz2
  • Debian-103-buster-64-LAMP.tar.gz
  • Debian-103-buster-64-minimal.tar.gz
  • Debian-811-jessie-64-minimal.tar.gz
  • Debian-911-stretch-64-minimal.tar.gz
  • Debian-912-stretch-64-minimal.tar.gz
  • Ubuntu-1604-xenial-64-minimal-no-hwe.tar.gz
  • Ubuntu-1604-xenial-64-minimal.tar.gz
  • Ubuntu-1804-bionic-64-minimal.tar.gz
  • Ubuntu-1804-bionic-64-nextcloud.tar.gz
  • Ubuntu-1910-eoan-64-minimal.tar.gz

Imágenes más antiguas se encuentran en /root/.oldroot/nfs/images.old/ dentro del sistema de recuperación. El rol verificará primero si existe una imagen en la carpeta con las imágenes actuales y luego comprobará si una imagen existe en la carpeta con las imágenes más antiguas, utilizando aquella de donde se encontró primero. De esta manera, es posible mantener el sistema operativo consistente entre los hosts incluso si se actualiza en algún momento la imagen más reciente de un sistema operativo.

Si ninguna de estas imágenes le funciona, es posible usar una imagen personalizada aprovechando la variable hetzner_installimage_custom_image_url. La imagen se descargará desde la URL dada y se utilizará durante el proceso de instalación.

Mantenedores

Licencia

Consulte el archivo LICENSE.md para más detalles.

Información del Autor

Este rol fue creado inicialmente por/derivado de andrelohmann.

Acerca del proyecto

Provision your hetzner boxes with installimage by leveraging the Hetzner Robot Webservice https://robot.your-server.de/doc/webservice/en.html

Instalar
ansible-galaxy install nl2go.hetzner_installimage
Licencia
mit
Descargas
18.8k
Propietario