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)
- http://hostname.localdomain/fedora31
- http://hostname.localdomain/centos7
- http://hostname.localdomain/centos8
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
CentOS 7/8 and Fedora PXE Boot Server Role
ansible-galaxy install mariuszczyz.centos_pxe