selfhosting.md 4.9 KB


id: alojamiento propio title: Autohospedaje description: "Cómo autohospedar su propio netboot.xyz en su entorno"

hide_table_of_contents: verdadero

¿Cómo puedo hospedar yo mismo netboot.xyz?

netboot.xyz era originalmente una herramienta solo alojada y usaba archivos fuente estáticos que eran difíciles de personalizar. Ahora puede generar su propio entorno alojado utilizando las mismas herramientas para generar el sitio alojado.

Ansible, un motor de automatización de código abierto, se utiliza para generar plantillas personalizadas basadas en un conjunto de configuraciones predeterminadas que luego el usuario puede anular. Esto permite que un usuario personalice un entorno netboot.xyz según sus especificaciones y configure un servidor PXE fácilmente. Los libros de jugadas de Ansible generarán:

  • Menús para su entorno netboot.xyz utilizando los ajustes de configuración predeterminados
  • Cargadores de arranque iPXE para arrancar en ese entorno
  • Opciones de menú personalizadas para aquellos que tienen opciones adicionales que desean agregar

Estructura de roles

El rol

netbootxyz Ansiblese encuentra en el repositorio principal netboot.xyz. La mayor parte de la lógica de netboot.xyz se encuentra en estas áreas:

  • defaults/main.yml: contiene la configuración predeterminada para la implementación, las versiones del sistema operativo, las utilidades y los cargadores de arranque
  • tareas/*: contiene todas las tareas para renderizar plantillas y compilar cargadores de arranque iPXE
  • templates/disks - Plantillas para cargadores de arranque iPXE
  • templates/menus - Plantillas para menús netboot.xyz
  • vars/*: contiene las listas de paquetes necesarios para admitir la compilación y la implementación de netboot.xyz

Implementación con Ansible

Para ejecutar una implementación con Ansible, primero instale Ansible, Apache y git:

# Para Debian/Ubuntu:
apt install -y ansible git apache2

# Para Red Hat/CentOS/Fedora
yum install -y ansible git httpd

Luego echa un vistazo al repositorio netboot.xyz:

clon de git https://github.com/netbootxyz/netboot.xyz.git /opt/netboot.xyz

Finalmente ejecute el libro de jugadas de Ansible:

cd /opt/netboot.xyz
ansible-playbook -i sitio de inventario.yml

La salida se colocará en /var/www/html de forma predeterminada. Puede anular esto para implementar en el directorio del servidor web de su elección.

Desplegando con Docker

También puede aprovechar la ventana acoplable para generar el menú netboot.xyz y los discos en un contenedor que luego genera los resultados de las plantillas renderizadas y los discos iPXE compilados en un directorio. Primero asegúrese de tener Docker instalado y luego ejecute:

docker build -t localbuild -f Dockerfile-build .
ventana acoplable ejecutar --rm -it -v $(pwd):/construir compilación local

El resultado de la compilación estará en la carpeta generada buildout. Docker proporciona un entorno coherente y aislado para generar el resultado de la compilación. Desde allí, colocaría los archivos en la raíz de su servidor web favorito.

Anulaciones locales

Ansible manejará la generación de fuentes así como la generación de discos iPXE con su configuración. Generará discos Legacy (PCBIOS) y UEFI iPXE que se pueden usar para cargar en su entorno netboot.xyz. Si desea anular los valores predeterminados, puede colocar anulaciones en user_overrides.yml. Consulte user_overrides.yml para ver ejemplos.

Con el archivo de anulaciones, puede anular todas las configuraciones de defaults/main.yml para que pueda cambiar fácilmente las URL de espejo de arranque cuando se representan los menús. Si prefiere hacer esto después del hecho, también puede editar boot.cfg para realizar cambios, pero tenga en cuenta que esos cambios no se guardarán cuando vuelva a implementar el menú.

Opciones personalizadas autohospedadas

Además de poder hospedar netboot.xyz localmente, también puede crear sus propias plantillas personalizadas para menús personalizados dentro de netboot.xyz. Esas plantillas se representan durante la implementación y están disponibles desde el menú principal a través de la opción de menú personalizado.

Cuando estas opciones están configuradas:

custom_generate_menus: verdadero
custom_templates_dir: "{{ netbootxyz_conf_dir }}/personalizado"

El menú agregará una opción para menús personalizados e intentará cargarse en custom/custom.ipxe. Desde allí, las opciones personalizadas se pueden crear y mantener por separado del árbol de fuentes netboot.xyz para que ambos menús se puedan actualizar de forma independiente.

Se proporciona un menú de muestra para demostrar cómo configurar y configurar un menú. Puede copiar el directorio personalizado desde el repositorio:

cp etc/netbootxyz/personalizado/etc/netbootxyz/personalizado