Alpine Linux
N-Tech-Admin Group
Last updated
Was this helpful?
N-Tech-Admin Group
Last updated
Was this helpful?
En este apartado vamos a utilizar una VM con Alpine Linux por su facilidad de uso y por ser una distribución ultra ligera para instalar Docker, Portainer para facilitar el trabajo con Docker y Pi-Hole.
Una versión no GNU que puede llegar a ocupar tan solo 8MB...
Se trata de:
una distribución Linux ultraligera
orientada a la seguridad y cuyo software se compila usando Musl en lugar de la biblioteca C de GNU (Libc)
sustituye las herramientas GNU por Busybox, un único ejecutable capaz de emular el funcionamiento de todas ellas.
Ha sido diseñada principalmente para Routers x86, Firewalls, VPN, VoIP y servidores.
Se utiliza en VM o Docker, para ejecutar entornos de desarrollo y ejecución de aplicaciones, portables y aislados del sistema principal
También es posible instalar las herramientas GNU, así como softwares como KDE, GNOME
Para administrar el software Alpine recurre a su propio gestor de paquetes: APK.
Para actualizar las listas de paquetes:
Para desinstalar un paquete:
Para pedir ayuda:
Para ver todos los paquetes:
Para buscar un paquete en específico:
Para instalar paquetes:
Para enumerar los paquetes instalados:
Para verificar si un paquete específico está instalado:
Reiniciar el sistema, esto es, el equivalente a shutdown now -r
sería:
Apagar el sistema, el equivalente a: shutdown now -P
:
Renovar los parámetros de red:
A la hora de instalar la MV tenemos que tener en cuenta las necesidades específicas. Por ello, siempre es conveniente que detallemos los requisitos de la misma.
RAM: 4GB
Tamaño disco: 20GB
Sistema Operativo: Linux / Linux 2.6 / 3.x / 4.x (64-bit)
Alpine System: alpine-virt-3.16.2-x86_64.iso
Iniciamos la MV y lo primero que nos encontramos es que nos pide el usuario del sistema, sin haber hecho la instalación. Para acceder, basta con escribir root
.
Leyendo la información que nos brinda en pantalla vemos que nos dice que para instalar el sistema escribamos:
Dado que el sistema está en inglés, tengamos en cuenta la posición de los caracteres en el teclado. No obstante, lo primero que nos solicita es nuestro idioma y distribución. Escribimos es
las dos veces que nos lo pide.
Podemos dejar los valores por defecto:
localhost
eth0
dhcp
configuración manual de la red: N
el password que deseemos
podemos ignorar la zona horaria
proxy no tenemos
NTP client: chrony (por defecto)
mirror server: seleccionemos la opción por defecto: 1
user: lo dejamos por defecto
ssh: openssh para que nos lo instale
permitir que el root se conecte por ssh (no me gusta por seguridad pero ...)
disco a utilizar: sda, tenemos un solo disco. En caso de duda podemos teclear ? y nos dice las opciones.
configuración base del sistema para el arranque en uno de los tres modos de disco diferentes de Alpine Linux: 'sin disco', 'datos' o 'sys'. Seleccionamos sys.
Una vez hecho esto, comienza la instalación del sistema que dura segundos y nos pedirá reiniciar el sistema. Mejor lo apagamos para quitar la ISO y no vuelva al punto de partida de la instalación.
Para poder utilizar todos los paquetes disponibles para Alpine debemos hacer una modificación en el archivo de los repositorios, el equivalente al sources.list de Ubuntu que contiene los repositorios del tipo Main.
Vamos al fichero: /etc/apk/repositories
y lo editamos pero mejor que instalemos previamente el nano, así que lo instalamos:
Abrimos el archivo de los repositorios y eliminamos el #
de las líneas que vienen comentadas. Éstas son: main, community y testing.
Actualizamos los paquetes:
Comenzamos por instalar Docker y para ello basta con:
Para iniciar el servicio de Docker daemon al inicio:
Para comprobar el estado del servicio:
En el caso de que el servicio estuviera apagado, lo iniciamos y comprobamos nuevamente:
Ahora vamos con la instalación de Portainer. Para ello toma nota del sitio siguiente:
Creamos el volumen que Portainer Server usará para almacenar su base de datos:
Si quieres verificar el volume recién creado puedes escribir:
Y verás algo como lo siguiente:
Ahora, descargamos e instalamos el contenedor de Portainer Server:
Realmente, es toda una línea:
Al ejecutar esta línea de comando nos dice que no puede encontrar la imagen de Portainer en el sistema, con lo cual la descarga la última imagen existente de portainer/portainer -ce.
De forma predeterminada, Portainer genera y utiliza un certificado SSL auto-firmado para asegurar el puerto 9443. Alternativamente, puede proporcionar su propio certificado SSL durante la instalación o mediante la interfaz de usuario de Portainer, una vez que se completa la instalación.
El servidor de Portainer ha sido instalado. Puedes comprobar si el contenedor del servidor de Portainer se ha iniciado ejecutando docker ps:
Si necesitas reiniciar el servicio de Portainer haríamos:
Nos vamos al navegador y escribimos la IP de la VM y el puerto de acceso:
https://192.168.1.79:9443
Una vez dentro, ya podemos utilizar el Portainer.
Busca la imagen de Pi-Hole en local y al no encontrarla la descarga del sitio oficial de Pi-Hole de Docker.
Para ver las imágenes descargadas ejecuta:
Para ejecutar el contenedor de pihole:
Realmente ejecuta el comando en un nuevo contenedor. Este comando run primero crea una capa de contenedor en la que se puede escribir sobre la imagen especificada y luego la inicia con el comando especificado.
Este ejemplo, ejecuta un contenedor usando la imagen más reciente de pihole. La combinación de las opciones -i y -t brindan acceso interactivo del Shell al contenedor.
Nota: Pudiera ser que no funcionara a la primera. Entonces quizá sea mejor utilizar un docker-compose.yml con el siguiente contenido:
Para acceder a nuestro contenedor de pihole basta usar el navegador, escribiendo la IP de nuestra MV. Esto es: http://192.168.1.79
Portainer es un conjunto de herramientas de administración de código abierto que nos permite construir, administrar y mantener entornos Docker de un modo más cómodo.
Nos vamos a https://192.168.1.79:9443
y seleccionamos el modo de environment:
E instalamos Docker Standalone
Podemos visualizar nuestra lista de contenedores creados. En este caso, pihole y portainer:
Si clicas en uno de los contenedores se desplegarán mas opciones específicas:
Network Time Protocol (NTP) es un protocolo cliente-servidor. Un dispositivo cliente puede solicitar periódicamente información de tiempo de un servidor NTP y éste responde a las solicitudes con información de tiempo que el cliente puede usar para fines de sincronización.
La mayoría de los SO vienen con herramientas integradas para la sincronización automática, sin embargo, existen herramientas de terceros que brindan funciones mejoradas y mejor sincronización.
o h