mariuszczyz.centos_pxe

Instalación y Configuración Desatendida de SO por PXE en CentOS 7/8 y Fedora

Este rol configura el marco básico para un entorno de arranque PXE local, lo que permite realizar la instalación desatendida de CentOS 7, CentOS 8, Fedora 31 y más (con configuración personalizada).

Instala y configura lo siguiente:

Imágenes ISO de instalación y Repositorio RPM local - si las imágenes ISO de instalación no existen localmente, se descargarán y montarán. Una vez montadas, su contenido se usará para generar un espejo RPM local que se utiliza durante el proceso de instalación. El espejo también se puede usar más tarde para instalaciones adicionales de paquetes RPM.

Servidor TFTP y PXE - necesitamos esto para permitir que los clientes de red arranquen a través de PXE.

Este rol preconfigura el servicio PXE con lo siguiente:

  • Arranque desde la unidad local. No instalar nada.
  • Instalar Fedora 31 Manualmente con GUI gráfica.
  • Instalar CentOS 7 Manualmente con GUI gráfica.
  • Instalar CentOS 8 Manualmente con GUI gráfica.
  • Instalación desatendida básica de Fedora 31 Kickstart en modo texto.
  • Instalación desatendida básica de CentOS 7 Kickstart en modo texto.
  • Instalación desatendida básica de CentOS 8 Kickstart en modo texto.

También instala todas las imágenes de kernel necesarias para que los clientes PXE remotos arranquen correctamente.

Servidor Web Apache - con muy poca preconfiguración, se usará para crear una lista de directorios generada por el servidor accesible localmente de todos los paquetes RPM.

El espejo local imitará la misma estructura de directorios que los espejos disponibles públicamente.

Serán accesibles localmente en: (reemplaza hostname.localdomain con tu propia dirección)

Archivos Kickstart - este rol despliega archivos Kickstart de instalación desatendida de CentOS 7/8 y Fedora 31 desde plantillas. Se colocan en un directorio kickstart en la raíz del servidor web y son accesibles por todos los clientes.

Notas Adicionales

Al crear una nueva VM en VirtualBox o KVM, asigna un mínimo de 2 GB de RAM para el huésped. El proceso de instalación de CentOS probablemente fallará si se usa menos de eso. La cantidad de RAM se puede reducir después de una instalación exitosa.

Se anima al usuario final a revisar y personalizar las plantillas de configuración Kickstart. En su forma actual, son muy básicas. Todas suponen lo siguiente:

  • particionamiento automático con LVM
  • SELinux desactivado
  • firewall desactivado
  • selección mínima de software
  • acceso root permitido
  • un solo usuario administrador sin privilegios de root
  • configuración de red con cliente DHCP

La idea de hacer lo menos posible con la instalación Anaconda y Kickstart es confiar en la personalización de la configuración posterior a la instalación.

Requisitos

Apache

Se requiere una instalación estándar del servidor web Apache para que el proceso Kickstart acceda a los paquetes de instalación localmente.

Se puede instalar un rol simple de Apache desde Galaxy:

ansible-galaxy install mariuszczyz.centos_apache

DHCPd

Servicio DHCP local funcional.

Alternativamente, se puede configurar un DHCP dedicado en el servidor de arranque PXE usando este rol: Instalación y Configuración del Servidor DHCP de CentOS y Fedora.

Imágenes ISO de Instalación del Sistema Operativo

Este rol supone que la ubicación de las imágenes ISO de instalación del sistema operativo está en /isos/. Déjalo como está o cámbialo en defaults/main.yml. Sin embargo, las imágenes ISO deben ser descargadas antes de ejecutar este rol. De lo contrario, no tendrá acceso a todos los archivos que necesita para configurar correctamente el entorno de pre-arranque. La tarea de descargar las ISO ha sido intencionalmente dejada fuera de este rol.

Archivos Kickstart

Los cambios mínimos necesarios para que funcionen los archivos de instalación Kickstart:

rootpw --iscrypted PASSWORD_HASH - hash de la contraseña de root

Instrucciones sobre cómo crear un hash de contraseña raíz Kickstart

Ejecuta este comando en la línea de comandos: openssl passwd -6

Opciones de algoritmos disponibles:

 -6                  Algoritmo de contraseña basado en SHA512
 -5                  Algoritmo de contraseña basado en SHA256
 -apr1               Algoritmo de contraseña basado en MD5, variante de Apache
 -1                  Algoritmo de contraseña basado en MD5
 -aixmd5             Algoritmo de contraseña basado en MD5 de AIX
 -crypt              Algoritmo de contraseña estándar de Unix (por defecto)

Te pedirá la contraseña y mostrará el hash:

Nota: no es una contraseña real a continuación

Password:
Verifying - Password:
$6$gdGbs42fZoKUVwQH$eY2nId.oONxK9MneuM58Vg2NPEuftngWmwfK09YW4DQLs3Hcq5F5HEohDEcM.Ci3p8gQrVuygTfScim7MY6QI1

El resto de la configuración se puede personalizar opcionalmente para ajustarse a tus propias necesidades, como particionamiento, zona horaria, paquetes adicionales, etc.

Variables del Rol

Variable Comentario Ejemplo
ISOS_PATH Directorio donde se almacenarán localmente las imágenes de instalación ISO /isos
NAME Nombre del sistema operativo fedora31
ISO_LOCATION Ruta completa a la imagen ISO /isos/CentOS-7-x86_64-Everything-1908.iso
MOUNT_POINT Ruta completa donde se debe montar la imagen ISO en el sistema de archivos local /var/www/centos7
KICKSTART_HASHED_ROOT_PASSWORD Contraseña de root encriptada para Kickstart. Usa "pwkickstart" o "openssl passwd -6" para generar bEzYf1S49$yu
NON_ROOT_USER_NAME Nombre de la cuenta de usuario administrador sin privilegios de root que se creará en el nuevo sistema mariusz
NON_ROOT_USER_PASSWORD Contraseña de usuario encriptada para Kickstart. Usa "pwkickstart" o "openssl passwd -6" para generar bEzYf1S49$yu
TIMEZONE Zona horaria local America/Chicago
NTP_SERVERS Servidores de tiempo de red. Locales o públicos. ntp.localdomain
FEDORA_HOSTNAME Nombre de host predeterminado para el nuevo servidor Fedora fedora31.localdomain
FEDORA_NETWORK_INSTALLATION_URL Aquí es donde Anaconda buscará paquetes de Fedora http://mirror.steadfastnet.com/fedora/releases/31/Everything/x86_64/os/
CENTOS7_HOSTNAME Nombre de host predeterminado para el nuevo servidor CentOS centos7.localdomain
CENTOS7_NETWORK_INSTALLATION_URL Aquí es donde Anaconda buscará paquetes de CentOS http://192.168.1.109/centos7
CENTOS8_HOSTNAME Nombre de host predeterminado para el nuevo servidor CentOS centos8.localdomain
CENTOS8_BASE_OS_URL URL del repositorio de paquetes BaseOS de CentOS 8 http://mirror.steadfastnet.com/centos/8/BaseOS/x86_64/os/
CENTOS8_APPSTREAM_REPO_URL URL del repositorio de paquetes AppStream de CentOS 8 http://mirror.steadfastnet.com/centos/8/AppStream/x86_64/kickstart/

Dependencias

mariuszczyz.centos_apache
mariuszczyz.centos_dhcpd

Instala las dependencias desde Ansible Galaxy con requirements.yml

# Instalar desde Ansible Galaxy
- src: mariuszczyz.centos_apache
- src: mariuszczyz.centos_dhcpd

Ejemplo de Playbook

Manual

Obtén este rol de Ansible Galaxy manualmente:

ansible-galaxy install mariuszczyz.centos_pxe

No Manual

Galaxy

O incluye este rol desde Ansible Galaxy a través de requirements.yml

# requirements.yml
# Instalar desde Ansible Galaxy
- src: mariuszczyz.centos_pxe

Opción de Github

# requirements.yml
# Instalar desde el repositorio de Github
- src: https://www.github.com/mariuszczyz/centos_pxe

Luego ejecuta esto para instalar todas las dependencias de Ansible Galaxy:

ansible-galaxy install -r requirements.yml

Ejecutarlo

Si deseas ejecutar este rol individualmente, crea un nuevo archivo: playbook.yml (ponle el nombre que desees) con el siguiente contenido:

- hosts: servers
  user: TU USUARIO
  become: True

  roles:
    - { role: mariuszczyz.centos_pxe, tags: ['centos_pxe'] }

Ejecuta:

ansible-playbook -i hosts playbook.yml

Licencia

BSD

Información del Autor

Autor: Mariusz Czyz
Fecha: 12/2019
mariuszczyz.com

Acerca del proyecto

CentOS 7/8 and Fedora PXE Boot Server Role

Instalar
ansible-galaxy install mariuszczyz.centos_pxe
Licencia
Unknown
Descargas
117
Propietario