<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux Sin Humo (Publicaciones sobre poder)</title><link>https://sergiobelkin.com/</link><description></description><atom:link href="https://sergiobelkin.com/categories/poder.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2025 &lt;a href="mailto:sebelk@gmail.com"&gt;sebelk&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"&gt;&lt;/a&gt;
</copyright><lastBuildDate>Thu, 30 Oct 2025 22:19:36 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Usando containers con systemd</title><link>https://sergiobelkin.com/posts/usando-containers-con-systemd/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Una funcionalidad tal vez poco conocida de systemd es la capacidad de correr containers sin necesidad de lxc o docker. Debajo describiremos brevemente dos de sus componentes.&lt;/p&gt;
&lt;h3 id="que-es-systemd-nspawn"&gt;¿Qué es systemd-nspawn?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Un container de espacios de nombres liviano para comandos o sistemas operativos&lt;/li&gt;
&lt;li&gt;Virtualiza&lt;ul&gt;
&lt;li&gt;La jerarquía del sistema de archivos&lt;/li&gt;
&lt;li&gt;El árbol de procesos&lt;/li&gt;
&lt;li&gt;Subsistemas de IPC&lt;/li&gt;
&lt;li&gt;El nombre del host y del dominio&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;No se puede desde el container:&lt;ul&gt;
&lt;li&gt;Modificar las interfaces de red del host&lt;/li&gt;
&lt;li&gt;Cambiar el reloj del del sistema&lt;/li&gt;
&lt;li&gt;Crear archivos de dispositivos&lt;/li&gt;
&lt;li&gt;No se puede reiniciar el host&lt;/li&gt;
&lt;li&gt;No se pueden cargar módulos del kernel del host&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Para crear containers se usa:&lt;ul&gt;
&lt;li&gt;dnf&lt;/li&gt;
&lt;li&gt;debootstrap&lt;/li&gt;
&lt;li&gt;pacman&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="que-es-systemd-machined"&gt;¿Qué es systemd-machined?&lt;/h3&gt;
&lt;p&gt;Es un servicio que mantiene un seguimiento de las máquinas virtuales y containers y de los procesos que les pertenecen.&lt;/p&gt;
&lt;h3 id="como-crear-un-container-debian"&gt;Como crear un container Debian&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo debootstrap --arch=amd64 stretch /var/lib/machines/stretch-2&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="como-listar-images"&gt;Como listar images&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;# machinectl list-images&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330163822618_1354390153.png" alt="Listar Imágenes"&gt;&lt;img src="https://sergiobelkin.com/images/20190330163822618_1354390153.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="como-setear-la-password-de-root-en-un-container"&gt;Como setear la password de root en un container&lt;/h3&gt;
&lt;p&gt;Para setear la password de root ingresamos el siguiente comando:
&lt;code&gt;# systemd-nspawn -UD /var/lib/machines/stretch-2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La opción &lt;code&gt;-U&lt;/code&gt; hace que se active el espacio de nombres de usuario. Se selecciona números de UID y GID al azar como dueño del directorio raíz del container y de ser necesario se realizan los ajustes de permisos y ACLs necesarios.&lt;/p&gt;
&lt;h3 id="como-preparar-el-container"&gt;Como preparar el container&lt;/h3&gt;
&lt;p&gt;Para poder establecer la comunicación entre el host y el container es necesario instalar en este último el paquete systemd-container, de manera que ejecutamos en el mismo:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# apt-get update &amp;amp;&amp;amp; apt-get install systemd-container&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Luego salimos con Ctrl-D&lt;/p&gt;
&lt;h3 id="como-arrancar-un-container"&gt;Como arrancar un container&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;# machinectl start stretch-2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330163822618_1354390153.png" alt="Arracando y monitoreando un container"&gt;&lt;img src="https://sergiobelkin.com/images/20190330163822618_1354390153.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="como-loguearse-al-container"&gt;Como loguearse al container&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;# systemd-run --machine stretch-2 --pty /bin/login&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Otra manera posible es:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# machinectl login stretch-2&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="como-configurar-la-red-en-el-container"&gt;Como configurar la red en el container&lt;/h3&gt;
&lt;p&gt;Hay varias maneras de configurar la red en el container, una manera es aprovecharse de una opción que utiliza systemd:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330201527297_376939938.png" alt="El proceso del container"&gt;&lt;img src="https://sergiobelkin.com/images/20190330201527297_376939938.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;En resumen&lt;/strong&gt;, &lt;code&gt;--network-veth&lt;/code&gt; :
- Crea un enlace virtual entre el host y el container.
- La interfaz del host se llamará ve-MACHINE_NAME. Donde &lt;em&gt;MACHINE_NAME&lt;/em&gt; será el nombre del container.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330203223448_1348206896.png" alt="Interfaz de red del host"&gt;&lt;img src="https://sergiobelkin.com/images/20190330203223448_1348206896.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La interfaz del container se llamará host0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330203404367_294765593.png" alt="Interfaz del red del container"&gt;&lt;img src="https://sergiobelkin.com/images/20190330203404367_294765593.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tras activar las dos interfaces y darle direcciones IP apropiadas, el host y el container podrán comunicarse por red.&lt;/p&gt;
&lt;p&gt;El problema con esta configuración es que el container no tiene manera de acceder al mundo exterior, más allá del host. Ni siquiera configurando al host como default gateway. La manera de solucionarlo es sencilla: arrancando tanto en host como en container el servicio systemd-networkd &lt;del&gt;y luego lanzando el cliente dhcp en el container&lt;/del&gt;.&lt;/p&gt;
&lt;p&gt;Aquí vemos la configuración asignada al container:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="https://sergiobelkin.com/images/20190330214423420_435886515.png" alt="Configuración asignada mediante systemd-networkd"&gt;&lt;img src="https://sergiobelkin.com/images/20190330214423420_435886515.thumbnail.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aun así, tuve que configurar el archivo &lt;code&gt;/etc/resolv.conf&lt;/code&gt; a mano.&lt;/p&gt;
&lt;h3 id="como-ver-el-estado-de-un-container"&gt;Como ver el estado de un container&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;# machinectl status stretch-2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Otra opción es:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# systemctl status systemd-nspawn@stretch-2.service&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="conclusion"&gt;Conclusión&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Teniendo en cuento que la mayoría de las distribuciones actuales más utilizadas usan systemd, es útil contar con un gestor de containers directamente integrado. Seguramente no reemplaza a otras soluciones más sofisticadas, pero para hacer demostraciones, debugging y testing es una excelente opción.&lt;/strong&gt;&lt;/p&gt;</description><category>autoestima</category><category>disfuncionalidades</category><category>poder</category><guid>https://sergiobelkin.com/posts/usando-containers-con-systemd/</guid><pubDate>Tue, 02 Apr 2019 16:02:23 GMT</pubDate></item><item><title>Paz y Propósito</title><link>https://sergiobelkin.com/posts/paz-y-proposito/</link><dc:creator>sebelk</dc:creator><description>&lt;blockquote&gt;
&lt;p&gt;En la materia de la Tierra había pensado Aulë, a quien Ilúvatar había concedido una capacidad y un conocimiento apenas menores que los de Melkor; aunque lo que deleita y enorgullece a Aulë es la tarea de hacer y las cosas hechas, y no la posesión ni su propia maestría; por tanto da y nos atesora, y está libre de cuidados, emprendiendo siempre nuevas tareas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;El Silmarillion, JRR Tolkien&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En las organizaciones de todo tipo podemos encontrar al menos estos tres tipos de disfuncionalidades:&lt;/p&gt;
&lt;h3 id="autoestima-deficiente"&gt;Autoestima deficiente&lt;/h3&gt;
&lt;p&gt;Si una persona no tiene una autoestima sana, buscará algunos de estos métodos para disfrazar o aliviar ese padecimiento:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Involucrarse en tareas que no coinciden con sus mejores habilidades&lt;/li&gt;
&lt;li&gt;Buscar la propia valía a través de tareas que termina superando y agotando sus recursos&lt;/li&gt;
&lt;li&gt;Desplazar a quienes se interpongan en su camino&lt;/li&gt;
&lt;li&gt;Forzar acontecimientos&lt;/li&gt;
&lt;li&gt;Decir lo que otros quieren, pero no formar y hablar con voz propia&lt;/li&gt;
&lt;li&gt;Culpar a otros por fracasos propios&lt;/li&gt;
&lt;li&gt;No reconocer el mérito por los logros propios&lt;/li&gt;
&lt;li&gt;La ausencia de protagonismo&lt;/li&gt;
&lt;li&gt;Insatisfacción&lt;/li&gt;
&lt;li&gt;Bronca y en casos extremos, odio&lt;/li&gt;
&lt;li&gt;Obsesión por las metas y poca satisfacción en el recorrido a la misma&lt;/li&gt;
&lt;li&gt;Es muy común la búsqueda de poder "sobre" en lugar de poder "para".&lt;/li&gt;
&lt;li&gt;Ver la vida como un juego de suma cero: "Para ganar, otro tiene que perder"&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="el-mensaje-del-emisor-se-percibe-distinto-de-acuerdo-al-receptor"&gt;El mensaje del emisor se percibe distinto de acuerdo al receptor&lt;/h3&gt;
&lt;p&gt;Este es un fenómeno prácticamente universal, ya que todos tenemos tendencias y hábitos de comportamiento e historia personal única. Cada vez que comunicamos algo es interpretado por el otro de manera distinta al contenido e intención de mensaje original. Cuanta más diferencia halla en esa interpretación mayor es la probabilidad de conflicto.&lt;/p&gt;
&lt;h3 id="comunicacion-inoportuna"&gt;Comunicación inoportuna&lt;/h3&gt;
&lt;p&gt;Si bien sería absurdo buscar un momento ideal o perfecto para comunicar algo, a veces un mensaje antes o después de algún momento puede también generar malentendidos, conflictos, retrasar o frustrar la resolución de un problema.&lt;/p&gt;
&lt;p&gt;Podemos hablar horas, asistir a cursos y conferencias sobre Project Management, ITIL, metodologías ágiles, DevOps y muchos conceptos más, algunos más de moda que otros, pero si ignoramos  estas disfuncionalidades solamente estaremos cambiando de problemas, no resolviéndolos.&lt;/p&gt;
&lt;p&gt;Algunas propuestas para eliminar esas disfuncionalidades podrían ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conocernos mejor&lt;/li&gt;
&lt;li&gt;Hablar con nuestra propia voz&lt;/li&gt;
&lt;li&gt;Desarrollar el sentido de la oportunidad&lt;/li&gt;
&lt;li&gt;Entender que hay una vida más allá del "poder sobre". Que también existe el goce y el disfrute por aprender y por hacer&lt;/li&gt;
&lt;li&gt;Entender que no somos omnipotentes, pero aun así somos protagonistas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En definitiva, que podamos hallar 'paz y propósito'. Que es en realidad algo bastante más concreto de lo que podríamos pensar.&lt;/p&gt;</description><category>autoestima</category><category>disfuncionalidades</category><category>poder</category><guid>https://sergiobelkin.com/posts/paz-y-proposito/</guid><pubDate>Sun, 06 Jan 2019 22:54:23 GMT</pubDate></item></channel></rss>