2022-03-30 00:01:56 +02:00
|
|
|
Preparar un alpine, para brindar el servicio PXE TFTP y asi se pueda arrancar otras computadoras con dicho servicio.
|
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
No es un secreto quela wiki de alpine es una de las peores.. asi que tenemos esta guia detallada:
|
|
|
|
|
2022-03-30 00:01:56 +02:00
|
|
|
## requisitos
|
|
|
|
|
|
|
|
* red, opciones:
|
|
|
|
* red con dos pc conectadas comunicandose
|
|
|
|
* cable punto a punto
|
|
|
|
* red con dos pc mediante hub de red
|
|
|
|
* cables normales de red
|
|
|
|
* red con dhcp ya activa y dos pc
|
|
|
|
* cables normales de red
|
|
|
|
* linux que se desea arancar ejemplo:
|
|
|
|
* https://dl-cdn.alpinelinux.org/alpine/v<version>/releases/<arch>/alpine-netboot-<version>.<minor>-<arch>.tar.gz
|
|
|
|
* internet para los primeros archivos
|
|
|
|
|
|
|
|
Cabe destacar qe por ejemplo todo equipo x86 mas antiguo de 2011 solo
|
|
|
|
acepta i386 de 32bit por ende la imagen para estos como el DARUMA URMET
|
|
|
|
es (si se usa 3.8.1): https://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/alpine-netboot-3.8.1-x86.tar.gz
|
|
|
|
|
|
|
|
Apine comenzo el netboot en 3.8, pero desde 3.11 usa kernel lts por lo que las referencias
|
|
|
|
para todas las arquitecturas en https://dl-cdn.alpinelinux.org/alpine/v<version>/releases/<arch>/netboot/ cambian
|
|
|
|
|
|
|
|
Actualmente para las actuales ARM, AMD64, S390 ls puedes encontrar desde la version 3.9, anteriormente
|
|
|
|
solo x86 y x64 eran las provistas para netboot.
|
|
|
|
|
|
|
|
## preparacion
|
|
|
|
|
|
|
|
Una de las maquinas es la instalar y la otra la que proveera los archivos.
|
|
|
|
|
|
|
|
Se necesita que ambas maquinas esten en la misma red, solo en el caso
|
|
|
|
de que ya exista DHCP se omite esto del servicio dnsmasq
|
|
|
|
|
|
|
|
#### Maquina 1 servidor PXE y archivos
|
|
|
|
|
|
|
|
En esta maquina se necesita alpine instalado y dnsmasq preparado
|
|
|
|
|
|
|
|
#### Maquina 2 objetivo instalar PXE
|
|
|
|
|
|
|
|
En esta maquina se necesita PXE boot habilitado desde el bios
|
|
|
|
|
|
|
|
#### Conexciones
|
|
|
|
|
|
|
|
**Caso de un solo cable** Se conectan ambas pc una contra la otra con
|
|
|
|
un calbe de punto a punto, la pc 1 tendra una ip fija, y ofrecera con
|
|
|
|
el software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
|
|
|
|
|
|
|
|
**Caso de tener hub red** Se conectan ambas pc en el hub normal y
|
|
|
|
la pc primaria 1 tendra una ip fija, y ofrecera con el
|
|
|
|
software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
|
|
|
|
|
|
|
|
**Caso de tener red y DHCP** Se conectan ambas pc a la red ya provista
|
|
|
|
la pc primaria 1 tendra una ip fija, y ofrecera con el
|
|
|
|
software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
|
|
|
|
|
|
|
|
## Configuracion maquina 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
apk add dnsmasq
|
|
|
|
|
|
|
|
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
|
|
|
|
```
|
|
|
|
|
|
|
|
**Caso de tener red y DHCP** :
|
|
|
|
|
|
|
|
Debera colocar una ip fija a la maquina 1 coordinada con el router:
|
|
|
|
* red 192.168.2.1/255.255.255.0 (un router que ya da dhcp)
|
|
|
|
* pc1 192.168.2.2/255.255.255.0 gateway 192.168.2.1
|
|
|
|
|
|
|
|
```
|
|
|
|
cat > /etc/dnsmasq.conf << EOF
|
|
|
|
interface=enp2s0
|
|
|
|
domain=debian.lan
|
|
|
|
dhcp-range=192.168.2.2,192.168.2.254,12h
|
|
|
|
dhcp-option=option:router,192.168.2.1
|
|
|
|
dhcp-option=option:dns-server,192.168.2.1
|
|
|
|
dhcp-option=6,8.8.8.8
|
|
|
|
server=8.8.4.4
|
|
|
|
dhcp-boot=pxelinux.0,pxeserver,192.168.2.2
|
|
|
|
pxe-prompt="Press F8 for menu.", 60
|
|
|
|
pxe-service=x86PC, "Install alpine linux 192.168.2.2", pxelinux
|
|
|
|
enable-tftp
|
|
|
|
tftp-root=/srv/tftp
|
|
|
|
EOF
|
|
|
|
```
|
|
|
|
|
|
|
|
**Caso de tener hub red o solo cable** :
|
|
|
|
|
|
|
|
Debera colocar una ip fija a la maquina 1 que actuara como un router:
|
|
|
|
* red 192.168.2.1/255.255.255.0 (la pc1 con ip estatica en 1)
|
|
|
|
* pc1 192.168.2.1/255.255.255.0 gateway 192.168.2.1
|
|
|
|
|
|
|
|
```
|
|
|
|
cat > /etc/dnsmasq.conf << EOF
|
|
|
|
interface=enp2s0
|
|
|
|
domain=debian.lan
|
|
|
|
dhcp-range=192.168.2.2,192.168.2.254,255.255.255.0,12h
|
|
|
|
dhcp-boot=pxelinux.0,pxeserver,192.168.2.1
|
|
|
|
dhcp-option=option:dns-server,192.168.2.1
|
|
|
|
dhcp-option=6,8.8.8.8
|
|
|
|
server=8.8.4.4
|
|
|
|
pxe-prompt="Press F8 for menu.", 60
|
|
|
|
pxe-service=x86PC, "Install alpine linux 192.168.2.1", pxelinux
|
|
|
|
enable-tftp
|
|
|
|
tftp-root=/srv/tftp
|
|
|
|
EOF
|
|
|
|
```
|
|
|
|
|
|
|
|
**Archivos para installer**:
|
|
|
|
|
|
|
|
El instalador esperara lso archivos en el ftp desde donde esta el PXE.
|
|
|
|
|
|
|
|
```
|
|
|
|
mkdir /srv/tftp/
|
|
|
|
cd /srv/tftp/
|
|
|
|
|
|
|
|
wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-netboot-3.11.13-x86.tar.gz
|
|
|
|
|
|
|
|
tar xfz netboot.tar.gz
|
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
apk add syslinux
|
|
|
|
|
|
|
|
cp /usr/share/syslinux/pxelinux.0 /srv/tftp/
|
|
|
|
cp /usr/share/syslinux/ldlinux/ldlinux.c32 /srv/tftp/
|
|
|
|
cp /usr/share/syslinux/libcom32.c32 /srv/tftp/
|
|
|
|
cp /usr/share/syslinux/libutil.c32 /srv/tftp/
|
|
|
|
cp /usr/share/syslinux/pxechn.c32 /srv/tftp/
|
|
|
|
|
|
|
|
mkdir pxelinux.cfg
|
|
|
|
cat > pxelinux.cfg/default << EOF
|
|
|
|
MENU TITLE PXE
|
|
|
|
PROMPT 0
|
|
|
|
TIMEOUT 3
|
|
|
|
default alpine
|
|
|
|
LABEL alpine
|
|
|
|
MENU LABEL install
|
|
|
|
KERNEL boot/vmlinuz-lts
|
|
|
|
INITRD boot/initramfs-lts
|
|
|
|
APPEND ip=dhcp modloop=http://192.168.1.2/boot/modloop-lts alpine_repo=http://192.168.1.2/main modules=loop,squashfs,sd-mod,usb-storage nomodeset vag=normal nofb xforcevesa
|
|
|
|
EOF
|
2022-03-30 00:01:56 +02:00
|
|
|
|
|
|
|
chmod -R 755 /srv/tftp/
|
|
|
|
|
|
|
|
service dnsmasq restart
|
|
|
|
|
|
|
|
netstat -tulpn | grep dnsmasq
|
|
|
|
```
|
|
|
|
|
|
|
|
Si todo esta correcto los puertos 53, 67 y 69 estaran abierto.. sino use
|
|
|
|
el `uwf allow` con `<puerto>/<protocolo>` con puerto con los de arriba,
|
|
|
|
y protocolo ambos el UDP y el TCP.
|
|
|
|
|
|
|
|
**Archivos para repos offline**:
|
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
**Archivos para repos offline**:
|
|
|
|
|
2022-03-30 00:01:56 +02:00
|
|
|
El instalador una vez iniciado buscara un web repositorio, y si no
|
|
|
|
tienes internet no podra seguir, asi que podemos emularlo con
|
2022-03-30 23:18:34 +02:00
|
|
|
un repositorio desde el ISO alpine (cualquiera netinstall, dvbd/cd, etc)
|
2022-03-30 00:01:56 +02:00
|
|
|
localmente con lighttpd, apache2 etc..
|
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
Si estas instalando un alpine oldstable, intentara tomar los archivos
|
|
|
|
desde internet porlo que fallara asi que deberas proveeer los archivos.
|
2022-03-30 00:01:56 +02:00
|
|
|
|
|
|
|
```
|
2022-03-30 23:18:34 +02:00
|
|
|
apk add lighttpd
|
2022-03-30 00:01:56 +02:00
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
rc-update add lighttpd default
|
2022-03-30 00:01:56 +02:00
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
mkdir -p /var/lib/lighttpd
|
|
|
|
mkdir -p /run/lighttpd
|
|
|
|
chown -R lighttpd:lighttpd /var/www/localhost/
|
|
|
|
chown -R lighttpd:lighttpd /var/lib/lighttpd
|
|
|
|
chown -R lighttpd:lighttpd /var/log/lighttpd
|
|
|
|
chown -R lighttpd:lighttpd /run/lighttpd
|
|
|
|
|
|
|
|
sed -i 's#\#.*server.port.*=.*#server.port = 80#g' /etc/lighttpd/lighttpd.conf
|
|
|
|
sed -i 's/#.*dir-listing.activate.*=.*/ dir-listing.activate = "enable"/' /etc/lighttpd/lighttpd.conf
|
2022-03-30 00:01:56 +02:00
|
|
|
|
|
|
|
service lighttpd restart
|
|
|
|
|
|
|
|
cd /srv/tftp/
|
|
|
|
|
2022-03-30 23:18:34 +02:00
|
|
|
apk add wget coreutils util-linux
|
2022-03-30 00:01:56 +02:00
|
|
|
|
|
|
|
wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-standard-3.11.13-x86.iso
|
|
|
|
|
|
|
|
mkdir /srv/tftp/alpine-iso
|
2022-03-30 23:18:34 +02:00
|
|
|
mkdir /var/www/localhost/htdocs/main
|
2022-03-30 00:01:56 +02:00
|
|
|
mount alpine-standard-3.11.13-x86.iso /srv/tftp/alpine-iso -o loop
|
2022-03-30 23:18:34 +02:00
|
|
|
cp -rf /srv/tftp/alpine-iso/apks/* /var/www/localhost/htdocs/main/
|
2022-03-30 00:01:56 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
## Configuracion maquina 2
|
|
|
|
|
|
|
|
Vaya al menú de inicio de la maquina y seleccione inicio de red como el
|
|
|
|
dispositivo de inicio principal (en los mas actuales sistemas puede
|
|
|
|
seleccionar el dispositivo de inicio sin ingresar a la configuración
|
|
|
|
del BIOS con solo presionando una tecla durante BIOS POST comunmente F11).
|
|
|
|
|
|
|
|
En los URMET DARUMA MT 1000 si tiene clave arrancara con peticion DHCP,
|
|
|
|
cuando pulse "n" unicamente.
|
|
|
|
|
|
|
|
* despues de arrancar debera pulsar F8 y escoger la opcion alpine
|
|
|
|
* durante la instalacion debera escoger un mirror manualmente
|
|
|
|
* el mirror url seria 192.168.2.2 que es la maquina 1
|
|
|
|
* el directorio raiz puede ser "/main/" o simplemente "/"
|
|
|
|
|
|
|
|
Ambas maquinas deben estar activas durante la instalacion.
|
|
|
|
|
|
|
|
Despues de terminar la instalacion se puede configurr internet y demas
|
|
|
|
en la maquina pc 2 por lo que quizas un archivo iso mas completo es lo
|
|
|
|
mejor.
|
|
|
|
|