Recetas·Ubuntu

Usando dig para consultar un servidor DN específico

dns

Hay ocasiones en la que puedes necesitar consultar un servidor DNS directamente. Por ejemplo, antes de cambiar los servidores DNS de un dominio, puedes configurar los nuevos registros en los nuevos servidores DNS y entonces consultarlos directamente para asegurarte de que tienen los registros correctos.

dig te permite especificar un servidor de nombres junto con el registro que quieres consultar.

Por ejemplo, uno de los servidores DNS de rubensa.eu.org es “freedns1.registrar-servers.com“. Podemos consultar en este servidor directamente el registro www mediante:

$ dig rubensa.eu.org @freedns1.registrar-servers.com

Lo que nos dará una salida con una sección de título Answer Section:

;; ANSWER SECTION:
rubensa.eu.org. 1800 IN A 185.199.109.153
rubensa.eu.org. 1800 IN A 185.199.108.153

En ella se detalla el resultado (185.199.109.153) así como el TTL del registro (en segundos). El TTL es importante, ya que indica el tiempo que los servidores DNS pueden cachear el resultado.

Puedes hacer lo mismo para comprobar otros registros como, por ejemplo, los registros MX, simplemente añadiendo el tipo de registro al comando. Por ejemplo:

$ dig MX rubensa.eu.org @freedns1.registrar-servers.com

devolverá:

;; ANSWER SECTION:
rubensa.eu.org. 1800 IN MX 20 mx2.zoho.com.
rubensa.eu.org. 1800 IN MX 10 mx.zoho.com.
rubensa.eu.org. 1800 IN MX 50 mx3.zoho.com.

Aquí podemos ver que el TTL es de 1800 segundo (30 minutos) y que el nivel de prioridad de servidor va de mx.zoho.com a mx3.zoho.com.

vía

Recetas·Ubuntu

Tooltips en negro en Gnome 3

gnome-logo-icon

Al ejecutar aplicaciones gráficas en docker, me he encontrado con problemas con los tooltips de las mismas, de modo que era imposible verlos ya que solamente aparecía un cuadro totalmente en negro.

La solución pasa por personalizar los colores del theme de Gnome 3 de mi host (Ubuntu 19.10).

Para hacer esto, basta con crear el fichero ~/.config/gtk-3.0/gtk.css con el siguiente contenido:

@define-color base_color #ffffff;
@define-color tooltip_bg_color #00ff00;
@define-color tooltip_fg_color #ff0000;
@define-color theme_tooltip_bg_color @tooltip_bg_color;
@define-color theme_tooltip_fg_color @tooltip_fg_color;

tooltip {
  padding: 5px 5px 5px 5px;
  margin: 0px 0px 0px 0px;
    border-width: 1px;
    border-style: solid;
    border-radius: 0px;
    border-color: #ffffff;
    background-image: none;
    background-color: #ffffff;
    color: #454545;
    border: 0px;
}

tooltip * {
    background-color: #ffffff;
    font-weight: bold;
    padding: 5px 5px 5px 5px;
    margin: 0px 0px 0px 0px;
    border-width: 1px;
    border-style: solid;
    border-color: @tooltip_bg_color;
    color: #454545;
    text-shadow: 5px 5px 3px #bbbbbb, 7px 7px 3px #ccccFF;
}

vía

Programación·Recetas·Ubuntu

Spring Boot live application information en VSCode

spring-bool-live-application-information-en-vscode

En las últimas versiones de Spring Boot, el soporte JMX no está habilitado por defecto.  Para habilitarlo, es necesario arrancar la aplicación con algo como esto:

java -Dspring.jmx.enabled=true -Dspring.application.admin.enabled=true -jar target/spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar

En VSCode, la extensión al arrancar la aplicación usando el SPRING-BOOT DASHBOARD ya se establece a true la propiedad spring.application.admin.enabled pero no ocurre lo mismo con spring.jmx.enabled.

Para conseguirlo tenemos que abrir el fichero .vscode/launch.json y añadir el parámetro de configuración vmArgs con dicho valor:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug (Launch)-PetClinicApplication",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "console": "internalConsole",
            "stopOnEntry": false,
            "mainClass": "org.springframework.samples.petclinic.PetClinicApplication",
            "projectName": "spring-petclinic",
            "args": "",
            "vmArgs": "-Dspring.jmx.enabled=true"
        },
        {
            "type": "java",
            "name": "Debug (Attach)",
            "request": "attach",
            "hostName": "localhost",
            "port": 0
        }
    ]
}

Además, en el spring-boot tooling, el language server ya no se auto conecta con la mayoría de procesos (una excepción son las aplicaciones lanzadas por el Boot Dashboard de Eclipse).  Esto lo tienes que hacer explícitamente en VSCode del siguiente modo:

  1. Pulsa CTRL-SHIFT-P
  2. Escribe ‘live
  3. Selecciona el comando ‘Manage Live Boot Process Connections
  4. Selecciona el proceso de tu aplicación y conéctate al mismo.

vía

Docker·Ubuntu

Docker no puede resolver DNS en redes privadas

Docker_(container_engine)_logo

Docker rellena el fichero /etc/resolv.conf de los contenedores copiando el /etc/resolv.conf del host y filtrando cualquier servidor de nombres local como podría ser 127.0.0.53.  Si no hay ningún otro servidor de nombres, Docker añadirá los servidores DNS públicos de Google (8.8.8.8 y 8.8.4.4)

En Ubuntu 18.04, y otros sistemas que usan systemd-resolved, puede ser necesario instalar dnsmasq y resolvconf. systemd-resolved tiene hard-coded que escuche en 127.0.0.53 y, como hemos explicado antes, Docker filtra cualquier dirección de loopback al leer el resolv.conf.

  1.  Instala dnsmasq u resolvconf (e ifupdown2, ya dnsmasq usa el comando ifquery):

    sudo apt update
    sudo apt install dnsmasq resolvconf ifupdown2

  2. Edita /etc/dnsmasq.conf y añade las siguientes líneas (127.17.0.1 el la IP del host en docker):

    interface=docker0 # Use interface docker0
    listen-address=172.17.0.1 # Explicitly specify the address to listen on
    bind-dynamic # Makes dynamically created interfaces work in the same way as the default

  3. Crea o edita /etc/resolvconf/resolv.conf.d/tail y añade esta línea:

    nameserver 172.17.0.1

  4. Reinicia la red, actualiza resolv.conf y reinicia docker:

    sudo service network-manager restart
    sudo resolvconf -u
    sudo service dnsmasq restart
    sudo service docker restart

Ahora tus contenedores deberían ser capaces de resolver los DNS con los DNS que esté usando la máquina host.

vía

Ubuntu

Instalación de PulseSecure en Ubuntu 19.10

LogoPulse-Secure

VPN (Virtual Private Network) es un servicio que te permite el acceso a áreas privadas y restringidas mediante el enrutado de tu conexión a través de un servidor VPN.  Todas las soluciones VPN proporcionan clientes con la capacidad de conectarse a áreas restringidas con algún método de autentificación.

Pulse Secure es una de las soluciones VPN empresariales que proporcionan clientes que:

  • Unifican el control de acceso de ecosistemas IT híbridos
  • Permiten el acceso remoto seguro a las redes empresariales
  • Soportan el Control de Acceso a la Red

La instalación del ciente PulseSecure en Ubuntu, a día de hoy, está solamente soportada oficialmente hasta la versión 18.04.  Para poder realizar la instalación en Ubuntu 19.10, es necesario realizar una series de pasos adicionales “a mano”.

Veamos cómo podemos hacerlo. Sigue leyendo “Instalación de PulseSecure en Ubuntu 19.10”

Docker·Ubuntu

Instalando docker manualmente en Ubuntu 19.10

Docker_(container_engine)_logo

  1. Descarga el archivo de binarios estáticos para tu plataforma desde https://download.docker.com/linux/static/stable/
  2. Extrae el archivo:

    $ tar xzvf /path/to/.tar.gz

  3. Crea enlaces a los binarios en un directorio que esté en tu path de ejecutables, como /usr/local/bin/.

    $ sudo cp -rs $HOME/docker/* /usr/local/bin/

  4. Crea el grupo docker:

    $ sudo groupadd docker

  5. Añade a tu usuario al grupo docker:

    $ sudo usermod -aG docker $USER

  6. Cierra tu sesión y vuelve a abrirla de modo que tu pertenencia a los grupos sea re-evaluada.

    NOTA: A partir de Ubuntu 18.04, cuando sales de la sesión de Gnome, algunos de los procesos del usuario no finalizan instantáneamente y si vuelves a iniciar sesión se recupera la que ya tenías (y por tanto, no se re-evalúan los grupos). Puedes forzar a que se detengan todos tus procesos ejecutando el comando (asegúrate de haber salvado todo tu trabajo antes de ejecutar este comando ya que matará tu sesión actual):
    $ loginctl terminate-user $USER

    Alternativamente puedes activar el nuevo grupo en tu actual terminar (y solo en ella) ejecutando el comando:
    $ newgrp docker

Ahora podemos probar la instalación.

  1. Arranca el demonio dockerd:
    $ sudo dockerd &
  2. Comprueba que la instalación ha sido correcta:
    $ docker run hello-world
    Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje de información y finaliza.
  3. Finaliza el demonio que hemos arrancado manualmente:
    $ sudo killall dockerd

Sigue leyendo “Instalando docker manualmente en Ubuntu 19.10”

Docker·Ubuntu

Cómo cambiar el directorio de instalación de las imágenes de Docker

Docker_(container_engine)_logo

Es posible cambiar el directorio base de almacenamiento de Docker (donde se guardan las imágenes y los contenedores) usando la opción -g en el arranque del demonio Docker.

  • Ubuntu/Debian:
    Edita el fichero /etc/default/docker para añadir la opción -g a la variable DOCKER_OPTS:
    DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
  • Fedora/Centos:
    Edita el fichero /etc/sysconfig/docker y añade la opción -g en la variable other_args:
    other_args="-g /var/lib/testdir"

Si hay más de una opción, asegúrate de englobarlas en ” “. Tras un reinicio (service docker restart) Docker debería usar el nuevo directorio.

Sigue leyendo “Cómo cambiar el directorio de instalación de las imágenes de Docker”