Me quedo en Arch linux…

Primero que nada pedir disculpa por no escribir con frecuencia, la verdad la falta de tiempo por el incremento de las actividades relacionadas con mi trabajo no dejan tiempo para escribir con tranquilidad… aquí estoy, así que continuemos…

Con el titulo de hoy quiero expresar lo cómodo que me siento en Arch linux pero también las razones que en su momento me hicieron dejarlo. Hace ya varios años que lo había probado y lo que mas llamó mi atención fue la posibilidad de compilar desde el código fuente solo utilizando el pkgbuild que muchas veces se encuentra disponible en los repos de la comunidad AUR, pero por otro lado lo que a mi parecer es una decisión que discrimina al usuario amateur es lo tedioso del proceso de instalación y configuración para poner el sistema a punto, Ahora, si bien el lema es “mantelo simple estúpido” la pregunta es: ¿simple para quien? Para ellos? o para los usuarios? esto lo resalto pues es la mosca en la sopa.

El proceso de instalación es complejo para quienes vienen de la paradoja de la ventana y a eso le sumamos la necesidad de tener claro ciertos conceptos que para muchos usuarios son cosas de hackers, al parecer no soy el único que piensa así, al punto que hay entusiastas de nivel PRO que están del lado de los mas nuevos y enfocaron sus esfuerzos en ofrecer alternativas que mantienen la motivación que se requiere para montar al ÑU; una de ellas es ArcoLinux.

Imagen de la pagína oficial de ArcoLinux https://arcolinux.info/

ArcoLinux notoriamente es un arch con un asistente y scripts para dejar todo bien bonito reduciendo así la curva de aprendizaje inicial y alimentando el deseo de saber mas, que a mi parecer es lo que se debe hacer. Y si, es cierto, necesitamos saber que sucede detrás de cámaras, esa es de las ventajas mas prominentes del ecosistemas del software libre; la oportunidad de poder rebuscar en el código y la increíble posibilidad de tropezar tantos conceptos hacen de los usuarios de GNU/Linux expertos que controlan cada aspecto del software que usan, pero ¡por DIOS! Transferir toda esa información de la memoria de corto plazo a la de largo plazo toma tiempo, osea que la primera impresión no tiene segunda oportunidad, es mi opinión. Entonces pensando en lo anterior el arch+vitamina ofrece también varias rutas de instalación que propulsan y desmenuza los concepto para no tragar entero ¡ufff ! ¿era difícil hacer eso? Quizás si, quizás no, ¿quien soy yo para juzgar? Simplemente doy mi punto de vista.

Resumiendo…

Las ventajas que yo veo: (esto es aparte de lo que ofrece ser usuario de GNU/Linux)

1. Compilar desde el código con los scripts alojados en el repositorio AUR.

2. Instalar solo lo necesario (hay distribuciones que bien con software que creo nunca usé)

3. Los paquetes al ser compilados en tu hardware (algunos no todos) quedan optimizados.

4. La compatibilidad y la enorme disponibilidad de paquetes que hay en los repositorios.

5. Solidez y seriedad

6. Documentación actualizada.

7. Comunidad muy activa

8. compatibilidad

9. Paquetes siempre actualizados.

Lo que no me gusta:

1. La rudimentaria forma de instalar el sistema operativo.

En lo antes mencionados creo que muchas ventajas hacen parte de las opciones GNU/Linux disponibles, pero es que… en Arch he disfrutado a plenitud de ellas.

Ahora…

Que pasaría si lo quiero hacer por mi mismo? (personalizaciones y demás) y ademas deseo con todas mis fuerzas evadir el rudimentario proceso de instalación. Pues que entonces esos entusiastas de los que hable y estoy seguro que pensaron igual que yo, resolvieron el problema. ¿como lo resolvieron? Crearon anarchy installer.

Anarchy installer es la joya que faltaba a la corona Arch, simple como pregonan y amable con quienes empiezan a tropezar con asistentes de instalación apartados del típico “Siguiente”. La verdad no tengo mucho que decir aparte de lo que esta disponible en innumerables tutoriales e incluso en su propia pagina web, solo agregaré que puedes escoger desde entornos ya personalizados hasta apps muy conocidas como VLC. A continuación dejo la web para que hagan la tarea ¡no todo es papilla, hay que darle!

https://anarchyinstaller.org/

Bueno… queria compartir un poco solamente. Un saludo y abrazo a todos.

El placer de hacer y compartir!

Integración Continua: Gitea + Drone + SonarQube

¿Qué es y para que se usa la integración continua?

Es una práctica de ingeniería de software que consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible para así poder detectar fallos cuanto antes. Entendemos por integración la compilación y ejecución de pruebas de todo un proyecto.

Gitea + Drone + SonarQube

Se utiliza el software libre de Gitea para almacenar los repositorios de código y que conectaremos a Drone para realizar la IC

Drone permite ejecutar las pipelines que tiene configuradas el repositorio, cuenta con mucha variedad de plugins dando posibilidad de despliegues o comunicaciones

SonarQube provee de métricas y analiza la calidad y seguridad del código

Con este stack podremos montar un ciclo de IC que cubre las necesidades básicas, también destaca los pocos recursos que necesita esta configuración pudiendo desplegarse en máquinas pequeñas como una Raspberry

Docker

Usamos Docker para desplegar las aplicaciones en distintos contenedores

version: '2'

services:
  gitea:
    image: gitea/gitea
    restart: always
    container_name: gitea
    hostname: gitea
    volumes:
      - ./data:/data
    expose:
      - 3000
    depends_on:
      - db
    networks:
      mynet:

  db:
    image: mariadb:10
    container_name: gitea-db
    hostname: gitea-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=secretdb
      - MYSQL_DATABASE=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=secretpass
    volumes:
      - ./db/:/var/lib/mysql
    networks:
      mynet:

  drone:
    image: drone/drone
    restart: always
    container_name: drone
    hostname: drone
    environment:
      - DRONE_GITEA_SERVER=https://gitea.domain.com
      - DRONE_GITEA_CLIENT_ID=secretid
      - DRONE_GITEA_CLIENT_SECRET=secret
      - DRONE_RPC_SECRET=secret-rpc
      - DRONE_SERVER_HOST=drone.domain.com
      - DRONE_SERVER_PROTO=https
    volumes:
      - ./drone:/data
    expose:
      - 80
    networks:
      mynet:

  runner:
    image: drone/drone-runner-docker
    restart: always
    container_name: runner
    hostname: runner
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=drone
      - DRONE_RPC_SECRET=secret-rpc
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_RUNNER_NAME=runner
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    expose:
      - 3000
    networks:
      mynet:

  sonarqube:
    image: sonarqube
    container_name: sonarqube
    hostname: sonarqube
    expose:
      - 9000
    volumes:
      - ./sonar/conf:/opt/sonarqube/conf
      - ./sonar/data:/opt/sonarqube/data
      - ./sonar/logs:/opt/sonarqube/logs
      - ./sonar/extensions:/opt/sonarqube/extensions
    networks:
      mynet:

networks:
  mynet:

Solo hay que crear la app en Gitea para conectarla a Drone y generar las claves de la configuración del runner de Drone. También habría que generar la token del plugin de sonar para cada proyecto de Drone que configuremos

Con esta receta de docker-compose se puede poner un proxy que ataque los distintos contenedores bajo el mismo dominio.com

Eso es todo, nos vemos en la próxima

Dockerizando una Raspberry Pi 4

En esta entrada vamos a instalar y preparar un ordenador Raspberry Pi 4 con la distribución Buster Debian GNU/Linux y arquitectura arm64 (aarch64) aprovechando al máximo el procesador que lleva de serie

Necesitamos la imagen de RaspiOS oficial con el software arm64 instalado, también necesitaremos una tarjeta microSD para grabarla, esto podemos hacerlo con un solo comando desde un terminal

$ curl -s https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip | gzip -d - | sudo dd if=/dev/stdin of=/dev/sdX status=progress

Donde el dispositivo /dev/sdX será el de la memoria microSD

Una vez termina el comando tendremos la imagen grabada en la tarjeta, la conectamos a la Raspberry Pi 4 y arrancará el sistema por defecto

Abrimos un terminal desde la Raspberry y ejecutamos los siguientes comandos

$ echo 'deb https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt update
$ sudo apt install -y docker-ce

Cuando termine de instalar se necesita reiniciar el sistema para que todo funcione correctamente, y ya tenemos docker en nuestro ordenador arm64

$ docker -v
Docker version 19.03.12, build 48a6621

Kernel Version: 5.4.51-v8+
Operating System: Debian GNU/Linux 10 (buster)
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 7.633GiB
Name: raspberrypi

Hasta la próxima…

Instalar KDE-Plasma (Desktop Environment) en PureOS

escritorio

Llega el domingo y nuevamente tengo ganas de compartir algo. En esta ocasión no hablaré del software la ostia (virt-manager)😂😂, mas bien quiero compartir procedimientos que he estado realizando en el nuevo sistemas operativo GNU/linux que estoy probando. PureOS es un sistema libre, a tal punto es libre que se encuentra en la lista de distribuciones recomendadas por la FSF (Free Software Foundation) y eso para los recién llegados al diverso mundo del software libre es quizás un excelente argumento a tener en cuenta. Desde ya quiero decir que no voy a caer en lo extremista con el tema software libre, no deseo entrar en discusiones tontas, cada uno es libre de interpretar y usar lo que mejor le parezca (una de las cosas bonitas de GNU/linux) ❤️❤️

Un poco de PureOS

PureOS es un sistema operativo totalmente auditable: no tiene que confiar en nuestra palabra de que lo respeta y lo protege; los expertos en seguridad y los desarrolladores de software de todo el mundo lo pueden verificar de forma independiente. Moderno, con todas las funciones y fácil de usar. Así lo describe su pagina oficial, también quiero agregar que esta distro está basada en una de las opciones mas antiguas y respetables del mundillo Ñu (la mascota GNU); Debian es la madre de la cual se desprende este OS, con todas sus ventajas y el agregado que mencione con anterioridad. Tiene una versión estable llamada amber que ofrece estabilidad, la acompaña para los mas arriesgados la versión rolling release (testing) de nombre byzantium; esta es para los que les gusta tener lo mas nuevo, !OJO¡👀, son paquetes en prueba y logísticamente hay riesgos que asumir. Para no extenderme mas los invito a hacer sus pruebas y comentar sus conclusiones.

A lo que vinimos…

Si al igual que yo te gusta mucho plasma y después de instalar PureOS te llevas la “sorpresa” que viene con gnome, te harás la pregunta ¿como instalar KDE-Plasma? pues dejame decirte que no tomará mucho tiempo hacerlo y ademas que tienes dos opciones:

Opción #1 Instalación mínima.

Plasma con las paquetes mínimos para el correcto funcionamiento y sin tantos programas no deseados. Para ello abrimos una terminal y digitamos o copiar-pegar:

$ sudo apt install kde-plasma-desktop

Una imagen parecida a esta será lo que veremos, simplemente presionamos la tecla “y” para aceptar. Quiero advertir que con esta alternativa no están disponibles ciertos paquetes y funciones, una de ellas es el encargado de mostrar el icono que permite administrar las conexiones de red desde el panel principal de plasma (el icono del computador), dicho paquete se llama plasma-nm por si quieres encontrarlo rápidamente e instalarlo.

Opción #2 Instalación full – configuraciones PureOS.

El equipo de pure sabe que no todo usamos gnome y que KDE-Plasma aporta mucho a la usabilidad, por eso (imagino) tienen disponible un paquete llamado pureos-plasma, este se encarga de instalar y configurar todo para dejar plasma a punto. Para instalar escribimos:

$ sudo apt install pureos-plasma

Digitamos nuestra clave si la solicita, aceptamos y esperamos a que termine la descarga e instalación de los paquetes. En algún momento de la instalación nos preguntará cual será el administrador de sesión (la pantalla donde escogemos el usuario) del sistema, esta parte muestra dos opciones GDM o SDDM, una es la de gnome y la otra es de plasma, yo siempre escojo la de plasma (SDDM) y lo recomiendo por si en algún momento decides desinstalar gnome completamente.

Aquí una imagen donde señalo como cambiar entre entornos de escritorio, la ubicación del menú es diferente en GDM, si mal lo recuerdo esta en la parte superior. En el pueden intercambiar entre plasma y gnome.

Listo mi gente, eso es todo. A disfrutar!!

El placer de hacer y compartir!! ✌️

Virtual network ‘default’ : NAT(Inactive) – Virt manager

🙄 🤣🤣 Si otra vez yo y ademas con el mismo tema. Chicos esto se que servirá a otros por eso lo comparto y como estoy haciendo un auto “entrenamiento intensivo” de virt manager comparto lo que voy encontrando. Hoy después de instalar pureOS (mi nuevo juguete) en el sorprendentemente funcional VM (virt-manager) me encuentro con la sorpresa que no tenia conexión a internet en la máquina virtual (MV); ahí me dispongo a entrar en las configuraciones de red de VM de la MV y verificar que pasaba. Para mi sorpresa encuentro un mensaje que decía: Virtual network ‘default’ : NAT(Inactive) en el adaptador de red.

Debo reconocer que el desconocimiento de dicho programa y la pereza de no leer el manual me llevaron por varias rutas de las cuales no obtuve resultado satisfactorio, pero mi madre siempre me dice “el que persevera alcanza”, sabia mi madre… ❤️ rebusque en varios foros y blogs para llegar finalmente a linuxnix.com, ellos tienes un tutorial sobre como crear una conexión virtual adicional para las MV creadas en VM, excelente articulo; les dejo el link para respetar los derechos y porque es buena info: KVM virtualization: Network(NAT) configuration in KVM hypervisor?

Aquí personalmente fue mi momento ¡eureka!, la imagen inicial de dicho articulo me habría ahorrado las dos horas que me tomo saber esto; simplemente debía activar la conexión virtual existente en mi VM, si… así de fácil. Lo enumeré en dos (2) simples pasos, eso es todo; aquí los dejo con imagen y todo para que no les tome dos horas como a mi, pufff!! que tonto la verdad… era obvio… 🤣🤣🤣🤣

Paso 1

En la ventana principal de VM y con alguna de las MV seleccionada vamos a Edit que esta entre las opciones de la parte superior.

Paso 2

En el menú desplegable que nos aparece después de presionar Edit seleccionamos Connections Details, ahora veremos la siguiente ventana que nos interesa.

Damos click en Virtual Networks. En la opción Autostart activamos el checkbox para que esta conexión arranque con el sistema y siempre este activa también hay que seleccionar la conexión de nombre default y dar click izquierdo sobre el icono conocido como “play” que esta en la parte baja de la ventana, aplica (Apply) los cambios y eso es todo.

Listo! vuelve al panel de configuración de la MV y recuerda darle actualizar en el icono que esta al lado de la palabra IP address en las opciones de red, así obtienes una IP; ahora si funciona. yujuuuu!!!!! 👏👏👏

Un abrazo! me despido diciendo: El placer de hacer y compartir… 😉

Mi primera máquina virtual con virt-manager

Hola!… nuevamente yo, esta vez escribo con la intención de cumplir con mi compromiso. Como prometí en mi anterior articulo (Instalar virt-manager en opensuse tumbleweeb) voy a compartir los pasos básicos para crear una maquina virtual en virt-manager, pero antes de nada deseo confesar que de experto no tengo nada, soy un enamorado de software libre con unos años en el y como cualquier otro que lleve tiempo usando GNU/linux sabe resolver cosillas; puedo decir incluso que no he pasado de ser un usuario home. En todo caso me place dejar estas migajas para que aquellos que estén iniciándose puedan dar forma a sus objetivos GNU/linuxeros. 😉

Al grano…

Como ya tenemos instalado virt-manager en opensuse o cualquier otra distro (Distribución GNU/linux), simplemente ejecutamos desde el lanzador de aplicaciones y veremos una ventana igual o parecida a esta:

En dicha ventana vamos dar click sobre el icono con el signo + que esta en la parte superior.

Con esta acción damos inicio al asistente de creación y configuración que nos guiará por el proceso.

El primer paso nos ofrece varias opciones:

  1. Local install media (ISO image or CDROM): la instalación local usando una imagen ISO o un disco físico nos permitirá realizar el proceso objetivo desde cualquiera de los orígenes antes mencionados, no tiene mucho misterio la verdad…
  2. Network Install (HTTP,HTTPS, or FTP): para este caso la instalación tendrá como origen una URL o ubicación FTP donde se alojan todos los paquetes necesario para que el sistema quede a tono.
  3. Network Boot (PXE): Preboot eXecution Environment (PXE) (Entorno de ejecución de prearranque), es un entorno para arrancar e instalar el sistema operativo en computadoras a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados. By wikipedia
  4. Import existing disk image: si seleccionamos esta opción podremos ejecutar una maquina existente, debo decir que se debe tener en cuenta la extensión (.qcow2) de dicho archivo pues debe ser compatible con virt-manager. Siempre recordar que podemos convertir de xxx formato a qcow2 usando la herramienta qemu-img.

Yo suelo usar la opción 1 pues son distros que bajo desde la pagina oficial, hago pruebas y le doy gusto a mi yo amante del distrohopping 😆😆😆. Presionamos Forward (adelante) y veremos esto:

Como señalo en la imagen anterior presionamos sobre Browse… nos aparece un ventana mas y luego nuevamente en Browse local y así podremos ubicar el archivo.iso que servirá de origen para la instalación, seleccionamos y presionamos Open (abrir).

Una vez realizamos el proceso de escoger el medio de instalación se nos permitirá selecionar el nombre del sistema operativo que se va a instalar, esto con el fin de incluir configuraciones recomendadas, se verá algo así…

Quitamos la selección de la opción Automatically detect from the installation media / source y con eso dispondremos del campo búsqueda que nos ira mostrando al escribir los nombres de los SO disponibles, seleccionamos el nombre del que vamos a instalar en la maquina virtual o el mas parecido si no se encuentra, tener en cuenta que las configuraciones predeterminada pueden cambiarse. Damos click en Forward (adelante).

Ahora podremos incrementar o disminuir los recurso que se asignaran a la maquina virtual.

Cambiamos al gusto y adelante (Forward), otra ventana! 😅 En ella escogemos la capacidad que se asignará al disco duro de la maquina virtual y como siempre Forward.

Ahora veremos un resumen de las configuraciones y la opción de escoger la interface LAN a trávez de la cual la maquina virtual saldrá a la matrix, osea podra navegar 🤣.

Para configurar la red solo presionan sobre el icono de play (desplegar) al lado de las palabras Network selection, yo siempre escojo Host device, Hay mas opciones pero eso dependerá de la necesidad de cada quien. Presionamos Finish, se crea la maquina y casi imediatamente nos muestra la interface que nos permitirá interactuar con el SO a instalar. Para terminar agrego que para que el cursor abandone la maquina virtual se debe presionas Ctrl + Alt.

Y listo… en la parte superior de esta ventana tendremos las opciones de apagado, inicio, etc. Puedes ejecutar a la vez todas las instancias desedas siempre y cuando el hardware del equipo anfitrion lo permita.

El placer de hacer y compartir… 😉

Instalar virt-manager en Opensuse Tumbleweed

Bueno… Hace algunos años estoy usando software libre, pero con los años te vas enterando que el mundo del software libre también tiene excepciones a la regla en lo que respecta a los parámetros de “software libre”, todos no parecen estar de acuerdo al 100% con la filosofía stallman o simplemente no se quieren complicar.

Lo que quiero decir es simplemente que si hablamos de algo es porque lo practicamos o por lo menos eso pienso y me esfuerzo por hacer. Bajo este argumento propio engendrado por mis propias conclusiones y experiencias siempre me auto impongo la tarea de usar software 100% libre, pero debo decir que hay que insistir pues no es tarea de un doble click.

Cuando te inicias en el mundillo GNU/linux sufres de algo que se llama distrohopping, en simples palabras vas de distribución en distribución buscando algo que a veces ni tu mismo sabe que es, Jajajaja yo también la sufrí y en algún momento decidí parar sin dejarlo del todo, es aquí donde conocí virtualbox.

¿Que es virtualbox?

No es mas que un software que permite simular x hardware para desplegar de manera controlada y hospedada localmente sistemas operativos. Por mucho tiempo lo use y llego el día que empecé a cuestionarme, ya saben, por eso del software libre y tal… En mi busqueda algo que para mis amigos es superior o como dirían los amigos de hatthieves.es es la ostia!!…

¿Que es Virt- manager? el software la ostia.

Es una interfaz de usuario de escritorio para administrar maquinas virtuales a través de libvirt. Se dirige principalmente a maquinas virtuales KVM, pero también administra Xen y LXC (contenedores de Linux). Presenta una vista resumida de los dominios en ejecución, su rendimiento en vivo y estadísticas de utilización de recursos. Los asistentes permiten la creación de nuevos dominios, y la configuración y el ajuste de la asignación de recursos y el hardware virtual de un dominio. Un visor de cliente VNC y SPICE incorporado presenta una consola grafica completa para el dominio invitado. Esto es una definición oficial que encontramos en virt-manager.org.

Ahora si… Como instalar virt-manager en Opensuse tumbleweed.

Lo primero que debemos hacer es abrir YaST Software para instalar los paquetes necesarios, yo suelo presionar Alt+barra_espaciadora y en KDE se desplegará un pequeña barra en la parte superior del escritorio, ahí se escribe el criterio de búsqueda, que en este caso es “yast software”.

Una vez hacemos click sobre el asistente grafico de instalación de paquetes (YaST Software) de opensuse tumbleweed nos aparecerá algo así:

En esta ventana nos interesa el apartado View, damos click y nos aparecerá una lista desplegable con 6 opciones, la que nos interesa es la numero 1 Patterns.

Ahora veremos del lado izquierda todos el software disponible en los repositorios de opensuse tumbleweed organizados por patrones, con esta ventaja podremos ubicar de forma unificada el conjunto de paquetes necesarios para la instalación de virt-manager. En dicha lista nos desplazamos hacia abajo usando la rueda del mouse o usando la barra para desplazarse; así encontramos los patrones KVM Host Server, KVM Virtualization Host and Tools, seleccionamos y presionamos Accept para iniciar la instalación.

Terminada la instalación podemos cerrar la ventana y ahora abrimos una terminal para ejecutar un comando, puedes copiar con control+c y pegar en la terminal con shift+Ctrl+v, presiona enter, ingresa tu contraseña y listo. El comando es:

$ sudo systemctl enable --now libvirtd

Este comando simplemente arranca el servicio libvirtd y lo habilita para iniciar con el sistema, de esta forma no tendremos que estar pendiente de aplicarlo ante de abrir virt-manager.

Ya casi para terminar hay que agregar nuestro usuario a los grupos KVM, qemu y libvirt. Para hacer esto nos vamos a la interface grafica de opensuse que nos permite modificar la configuración del sistema; YaST lo podemos encontrar usando nuevamente Alt+barra_espaciadora (KDE) o ir al lanzador de aplicaciones.

Así como en la imagen iremos a Security and Users para después hacer click en User and Group Management, veremos la ventana a continuación:

En ella vamos a dar doble click sobre nuestro nombre de usuario o presionar edit, que esta ubicado en la parte baja de la ventana. Luego como en las imágenes de abajo hay que presionar en “Details” y del lado derecho de la ventana en Additional Groups buscamos y selecionamos los grupos antes mencionados (KVM, qemu y libvirt.), click en OK para guardar los cambios.

Para que el sistema asimile los cambios realizados debemos cerrar la sesión y volver a ingresar. Ahora ya podemos ejecutar virt-manager para encontrarnos con esta pequeña pero poderosa interface, desde aquí podemos crear, ejecutar, configurar las maquinas virtuales. Por otro lado o como continuación a este post crearé una para explicar como crear y configurar las instancias virtuales.

Gracias a @DevWEDC del canal telegram en español de opensuse .

El placer de hacer y compartir … 🙃

Usa Virt-Manager NO VirtualBox

logo-virt-manager

Desde que se lanzó la versión 10 de Debian GNU/Linux (Buster) en su página nos recomiendan dejar de usar VirtualBox por la aplicación de escritorio Virt-Manager

apt install virt-manager

Ya conocemos desde hace años VirtualBox de Oracle para trabajar con máquinas virtuales, es OpenSource aunque el producto está controlado por la misma empresa. Como alternativa ahora se utiliza Virt-Manager que está basado en KVM y libvirt, aunque también puede gestionar Xen o LXC directamente

Como podéis ver el entorno nos recuerda mucho a otras aplicaciones de virtualización como VMware o VirtualBox, al crear una máquina virtual nos da a elegir el tipo de instalación que queremos realizar

Una vez configurados los parámetros del menú wizard, se generan los recursos necesarios para arrancar la máquina virtual, esto podemos realizarlo también mediante comandos pero la GUI nos facilita mucho la tarea

También hay que configurar las interfaces de red que se asignarán a las máquinas virtuales, aunque la aplicación lo hace todo a golpe de ratón con permisos de root

Como se puede ver el menú nos recuerda mucho a otras aplicaciones de virtualización, aunque difieren muchas de las configuraciones, por ejemplo no hay límites a la hora de asignar los núcleos del procesador a una máquina virtual, pero la aplicación nos avisa que puede incurrir en un bajo rendimiento

Os animo a probarlo y utilizarlo como alternativa a otras aplicaciones de virtualización tanto comerciales como libres y comprobar la potencia que nos ofrece la virtualización del Kernel de GNU/Linux, como ya recomendó hace años fanta en su blog, saludos

Haraka Wildduck

duck

En esta entrada vamos a completar el taller que dimos hace poco de como montar un servidor de correo electrónico completo y autogestionado en NodeJS

Tenemos que bajar el repositorio git que montamos para desplegar la aplicación en contenedores Docker por lo que necesitaremos tener instalado docker y docker-compose

Una vez descargado, generamos los certificados seguros para la aplicación en la carpeta secure con el script start.sh también hay que modificar el dominio sobre el que vamos a tener el correo en el archivo .env, además el DNS del dominio tiene que tener un registro MX apuntando a la máquina donde se despliegue el servidor

Arrancamos los servicios con el siguiente comando

docker-compose up -d

Si queremos mantener la persistencia deberemos copiar las base de datos

docker cp mongo:/data/db ./mongodb && chown -R 999.999 ./mongodb
 docker cp redis:/data ./redis && chown -R 999.999 ./redis

Descomentar las lineas del archivo docker-compose.yml

docker-compose down && docker-compose up -d

Y tendremos un servidor de correo en NodeJS nativo funcionando bajo nuestro control, saludos

Montar una instancia Nextcloud en Docker

nextcloud

En esta entrada vamos a explicar brevemente como montar una instancia de Nextcloud en Docker, Nextcloud es un potente servicio de software libre de cloud (nube), sirve para almacenar, sincronizar y compartir archivos principalmente aunque con sus plugins se pueden añadir muchas funcionalidades, reemplaza al viejo proyecto ownCloud.

Para ello utilizaremos la imagen oficial de Nextcloud que podemos encontrar en el hub de Docker, esto nos facilitará el despliegue y es más fácil que mantener una imagen propia, podemos encontrar distintas versiones de la imagen aunque nos basaremos en la última latest, además contamos con las últimas actualizaciones de seguridad.

Usaremos el programa docker-compose para el despliegue de la instancia, con el que configuramos los contenedores necesarios con nuestras opciones, en vez de hacerlo directamente desde la línea de comandos.

version: '2'

services:
  nextcloud:
    image: nextcloud
    restart: always
    container_name: nextcloud
    hostname: nextcloud
    environment:
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=xxx
      - MYSQL_HOST=mariadb-nextcloud
    depends_on:
      - mariadb-nextcloud
    expose:
      - 80
    links:
      - mariadb-nextcloud
    volumes:
      - ./nextcloud/html/custom_apps:/var/www/html/custom_apps
      - ./nextcloud/html/config:/var/www/html/config
      - ./nextcloud/html/data:/var/www/html/data
      - ./nextcloud/html/themes:/var/www/html/themes
    networks:
      - cloudnet:

  mariadb-nextcloud:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    container_name: mariadb-nextcloud
    hostname: mariadb-nextcloud
    volumes:
      - ./nextcloud/mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=yyy
      - MYSQL_PASSWORD=xxx
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks:
      - cloudnet:

networks:
  cloudnet:

Teniendo este archivo en una carpeta, con el comando docker-compose up -d nos bajaremos la última versión de las imágenes de Nextcloud y MariaDB desde el hub de Docker, y seguidamente se instanciarán ambos contenedores. Hemos preferido compartir los volúmenes de los contenedores con el sistema de archivos local para mantener la persistencia por si se elimina el contenedor, y configurar las imágenes con las variables de entorno necesarias para el correcto funcionamiento del servicio.

También hemos relacionado los contenedores (links) y expuesto el puerto 80/tcp, ya que nuestro servicio está detrás de un proxy nginx, del contenedor Nextcloud para utilizarlo aunque pueden incluirse los que se necesiten.

Una vez se levanten los contenedores podremos acceder al servicio por el puerto correspondiente y comenzar a configurar la instancia con las opciones que necesitemos.

Esperamos que esta entrada os haya gustado y os sirva para futuros despliegues, saludos