rh354 8.0 Student Guide

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 218

Únase a los exploradores, constructores e individuos que, de

manera sólida, ofrecen nuevas soluciones a viejos problemas.


Para el código abierto, la innovación solo es posible gracias a la
gente que está detrás de ella.

LIBRO DE TRABAJO DEL ESTUDIANTE


(ROLE)
Red Hat Enterprise Linux 8.0 RH354
RHEL 8 NUEVAS CARACTERÍSTICAS
PARA ADMINISTRADORES DE LINUX
EXPERIMENTADOS.
Edición 1

RH354-RHEL8.0-es-1-20190319 Copyright ©2019 Red Hat, Inc.


RHEL 8 NUEVAS
CARACTERÍSTICAS
PARA
ADMINISTRADORES
DE LINUX
EXPERIMENTADOS.

RH354-RHEL8.0-es-1-20190319 Copyright ©2019 Red Hat, Inc.


Red Hat Enterprise Linux 8.0 RH354
RHEL 8 Nuevas características para administradores de
Linux experimentados.
Edición 1 20190319
fecha de publicación 20190319

Autores: Artur Glogowski, Morgan Weetman, Herve Quatremain, Trey Feagle,


Adrian Andrade, Adolfo Vazquez
Editor: Phil Sweany, Steven Bonneville
Copyright © 2019 Red Hat, Inc.

The contents of this course and all its modules and related materials, including handouts to audience members, are
Copyright © 2019 Red Hat, Inc.

No part of this publication may be stored in a retrieval system, transmitted or reproduced in any way, including, but
not limited to, photocopy, photograph, magnetic, electronic or other record, without the prior written permission of
Red Hat, Inc.

This instructional program, including all material provided herein, is supplied without any guarantees from Red Hat,
Inc. Red Hat, Inc. assumes no liability for damages or legal action arising from the use or misuse of contents or details
contained herein.

If you believe Red Hat training materials are being used, copied, or otherwise improperly distributed please e-mail
training@redhat.com or phone toll-free (USA) +1 (866) 626-2994 or +1 (919) 754-3700.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, Hibernate, Fedora, the Infinity Logo, and RHCE are
trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a registered trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or
other countries.

The OpenStack® Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/
service marks of the OpenStack Foundation, in the United States and other countries and are used with the
OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation,
or the OpenStack community.

All other trademarks are the property of their respective owners.


Convenciones del documento vii

Introducción ix
RHEL 8 nuevas características para administradores de linux experimentados .................. ix
Orientación sobre el entorno del aula .......................................................................... x
Controlando sus Sistemas ................................................................................. xi
Internacionalización ................................................................................................ xiv

1. Vista previa de Red Hat Enterprise Linux 8 1


Visión general de Red Hat Enterprise Linux 8 ............................................................... 2
Cuestionario: Visión general de Red Hat Enterprise Linux 8 ........................................... 12
Resumen ................................................................................................................ 14

2. Instalación o actualización de Red Hat Enterprise Linux 8 15


Instalación de Red Hat Enterprise Linux 8 ................................................................... 16
Ejercicio Guiado: Instalación de Red Hat Enterprise Linux 8 ........................................... 19
Actualizaciones de servidores a Red Hat Enterprise Linux 8 ......................................... 22
Cuestionario: Actualizaciones de servidores a Red Hat Enterprise Linux 8 ...................... 25
Trabajo de laboratorio: Instalación o actualización de Red Hat Enterprise Linux 8 ............. 27
Resumen ............................................................................................................... 34

3. Aprovisionamiento y configuración de servidores 35


Administración de paquetes con Yum ........................................................................ 36
Ejercicio Guiado: Administración de paquetes con Yum ................................................ 37
Administración de servidores con Cockpit .................................................................. 39
Ejercicio Guiado: Administración de servidores con Cockpit .......................................... 44
Elaboración de imágenes del sistema con Composer ................................................... 50
Ejercicio Guiado: Elaboración de imágenes del sistema con Composer ........................... 53
Automatización con Roles de Sistema de RHEL .......................................................... 58
Ejercicio Guiado: Automatización con Roles de Sistema de RHEL .................................. 59
Trabajo de laboratorio: Aprovisionamiento y configuración de servidores ....................... 65
Resumen ................................................................................................................ 71

4. Adaptación a los cambios del sistema principal (core) 73


Visualización del escritorio con Wayland y X ............................................................... 74
Ejercicio Guiado: Visualización del escritorio con Wayland y X ....................................... 77
Administración de la autenticación de usuario con Authselect ..................................... 80
Ejercicio Guiado: Administración de la autenticación de usuario con Authselect ............... 82
Configuración de NTP con Chrony ............................................................................ 89
Ejercicio Guiado: Configuración de NTP con Chrony .................................................... 93
Administración de las versiones de Python en Red Hat Enterprise Linux 8 ...................... 96
Ejercicio Guiado: Administración de versiones Python en RHEL 8 .................................. 97
Trabajo de laboratorio: Adaptación a los cambios del sistema principal (core) .................. 99
Resumen .............................................................................................................. 104

5. Implementación de almacenamiento con las nuevas funciones 105


Gestión de almacenamiento en capas con Stratis ....................................................... 106
Ejercicio Guiado: Gestión de almacenamiento en capas con Stratis ................................ 110
Compresión y deduplicación de almacenamiento con VDO ........................................... 114
Ejercicio Guiado: Compresión y deduplicación de almacenamiento con VDO ................... 116
Administración de mejoras de NFS ........................................................................... 119
Ejercicio Guiado: Administración de mejoras de NFS ................................................... 121
Trabajo de laboratorio: Implementación de almacenamiento con las nuevas funciones ..... 126
Resumen .............................................................................................................. 130

6. Gestión de contenedores en el entorno de ejecución 131


Implementación de contenedores con el nuevo tiempo de ejecución de contenedor ........ 132

RH354-RHEL8.0-es-1-20190319 v
Ejercicio Guiado: Implementación de contenedores con el nuevo tiempo de ejecución de
contenedor ........................................................................................................... 134
Trabajo de laboratorio: Gestión de contenedores con el nuevo tiempo de ejecución ......... 137
Resumen .............................................................................................................. 144
7. Implementación de funciones de red mejoradas 145
Administración de firewalls de servidor en RHEL 8 ..................................................... 146
Ejercicio Guiado: Administración de firewalls de servidor en RHEL 8 ............................. 156
Configuración de redes de servidores con NetworkManager ........................................ 159
Ejercicio Guiado: Configuración de redes de servidores con NetworkManager ................ 160
Trabajo de laboratorio: Implementación de funciones de red mejoradas ......................... 166
Resumen .............................................................................................................. 172
8. Adaptación a mejoras de virtualización 173
Configuración de máquinas virtuales ........................................................................ 174
Ejercicio Guiado: Configuración de máquinas virtuales ................................................ 179
Trabajo de laboratorio: Adaptación a mejoras de virtualización .................................... 187
Resumen .............................................................................................................. 197

vi RH354-RHEL8.0-es-1-20190319
CONVENCIONES DEL DOCUMENTO

REFERENCIAS
En "Referencias", se describe el lugar donde se puede encontrar documentación
externa relevante para un tema.

NOTA
Las "notas" son consejos, atajos o enfoques alternativos para una tarea determinada.
Omitir una nota no debería tener consecuencias negativas, pero quizás se pase por
alto algún truco que puede simplificar una tarea.

IMPORTANTE
En las cajas (boxes) "Importante", se detallan cosas que se olvidan con facilidad:
cambios de configuración que solo se aplican a la sesión actual o servicios que se
deben reiniciar para poder aplicar una actualización. Ignorar una caja (box) con la
etiqueta "Importante" no provocará pérdida de datos, pero puede causar irritación y
frustración.

ADVERTENCIA
No se deben ignorar las "Advertencias". Es muy probable que omitir las advertencias
provoque pérdida de datos.

RH354-RHEL8.0-es-1-20190319 vii
viii RH354-RHEL8.0-es-1-20190319
INTRODUCCIÓN

RHEL 8 NUEVAS CARACTERÍSTICAS PARA


ADMINISTRADORES DE LINUX EXPERIMENTADOS
RHEL 8 Nuevas Características para Administradores de Linux Experimentados
(RH354) es una introducción dirigida a administradores de sistemas Linux
con experiencia sobre los cambios clave y las nuevas características de la
próxima versión de Red Hat Enterprise Linux 8.

En este curso, se proporciona una orientación a Red Hat Enterprise Linux 8,


basado en la versión previa beta, para permitir que los profesionales de TI
con experiencia previa en Red Hat Enterprise Linux 7, incluidos operadores,
administradores y administradores de sistemas principales, estén preparados
para implementaciones y migraciones a la próxima versión importante de
Red Hat Enterprise Linux.

OBJETIVOS DEL • Prepararse para la implementación de Red Hat


CURSO Enterprise Linux 8 al obtener información sobre
los cambios en las características clave del
sistema operativo.
• Aprender a usar las nuevas características
clave de Red Hat Enterprise Linux 8 a fin de
aprovechar las nuevas capacidades para sus
casos prácticos.

DESTINATARIOS • Profesionales de TI con experiencia en


Red Hat Enterprise Linux 7 y la administración
de sistemas Linux que estén planificando
actualizaciones o la implementación de
sistemas Red Hat Enterprise Linux 8.

REQUISITOS • Certificación Red Hat Certified System


PREVIOS Administrator (EX200/RHCSA) o conocimiento
y experiencia en Red Hat Enterprise Linux
equivalente. La certificación RHCE puede ser
útil.

RH354-RHEL8.0-es-1-20190319 ix
Introducción

ORIENTACIÓN SOBRE EL ENTORNO DEL


AULA

Figura 0.1: Entorno del aula

En este curso, el sistema de cómputo principal usado para las actividades prácticas de aprendizaje
es workstation. Los estudiantes también usan otras tres máquinas para estas actividades:
servera, serverb y serverc. Estos cuatro sistemas se encuentran en el dominio DNS
lab.example.com.

Todos los sistemas de cómputo de los estudiantes tienen una cuenta de usuario estándar
(student) con la contraseña student. La contraseña root de todos los sistemas de los
estudiantes es redhat.

Máquinas del aula

NOMBRE DE LA MÁQUINA DIRECCIONES IP ROL

workstation.lab.example.com 172.25.250.254 Estación de trabajo gráfica usada


para la administración del sistema

servera.lab.example.com 172.25.250.10 Servidor administrado "A"

serverb.lab.example.com 172.25.250.11 Servidor administrado "B"

serverc.lab.example.com 172.25.250.12 Servidor administrado "C"

Una función adicional de workstation es que actúa como enrutador entre la red que conecta las
máquinas de los estudiantes y la red del aula. Si la workstation está apagada, otras máquinas de
estudiantes solo podrán acceder a sistemas en la red de estudiantes.

Varios sistemas en el aula brindan servicios de soporte. Dos servidores, content.example.com


y materials.example.com son fuentes de software y materiales del trabajo de laboratorio

x RH354-RHEL8.0-es-1-20190319
Introducción

usados en actividades prácticas. Se provee información sobre cómo usar estos servidores en las
instrucciones para estas actividades.

CONTROLANDO SUS SISTEMAS

A los estudiantes se les asignan computadoras remotas en un aula de aprendizaje en línea de


Red Hat. Se accede a ellas a través de una aplicación web alojada en rol.redhat.com [http://
rol.redhat.com]. Los estudiantes también deben iniciar sesión en este sitio usando sus credenciales
de usuario del Portal de clientes de Red Hat.

Control de las máquinas virtuales


Las máquinas virtuales del entorno de su aula se controlan a través de una página web. El estado
de cada máquina virtual en el aula se muestra en la página en la pestaña Online Lab (Trabajo de
laboratorio en línea).

Estados de la máquina

ESTADO DE LA DESCRIPCIÓN
MÁQUINA VIRTUAL

STARTING (EN La máquina virtual está por arrancar.


INICIO)

STARTED (INICIADA) La máquina virtual se está ejecutando y está disponible (o bien, cuando
arranque, pronto lo estará).

STOPPING (EN La máquina virtual está por apagarse.


DETENCIÓN)

STOPPED La máquina virtual se ha apagado completamente. Al iniciarse, la


(DETENIDA) máquina virtual arranca en el mismo estado en que se hallaba en el
momento de apagarse (el disco se habrá preservado).

PUBLISHING Se está llevando a cabo la creación inicial de la máquina virtual.


(PUBLICADA)

WAITING_TO_START La máquina virtual está esperando que inicien las demás máquinas
(EN ESPERA PARA virtuales.
INICIARSE)

Según el estado de una máquina, se dispone de una selección de las siguientes acciones.

Acciones de aula/máquina

BOTÓN O ACCIÓN DESCRIPCIÓN

PROVISION LAB Cree el aula de ROL. Crea todas las máquinas virtuales necesarias para
(APROVISIONAR el aula y las inicia. Puede tardar algunos minutos en completarse.
TRABAJO DE
LABORATORIO)

RH354-RHEL8.0-es-1-20190319 xi
Introducción

BOTÓN O ACCIÓN DESCRIPCIÓN

DELETE LAB Elimine el aula de ROL. Destruye todas las máquinas virtuales del aula.
(ELIMINAR Precaución: Se perderán los trabajos generados en los discos.
TRABAJO DE
LABORATORIO)

START LAB (INICIAR Inicie todas las máquinas virtuales en el aula.


TRABAJO DE
LABORATORIO)

SHUTDOWN LAB Detenga todas las máquinas virtuales en el aula.


(APAGAR TRABAJO
DE LABORATORIO)

OPEN CONSOLE Abra una nueva pestaña en el navegador y conéctese a la consola de


(ABRIR CONSOLA) la máquina virtual. Los estudiantes pueden iniciar sesión directamente
en la máquina virtual y ejecutar los comandos. En la mayoría de los
casos, los estudiantes deben iniciar sesión en la máquina virtual
workstation y usar ssh para conectarse a las otras máquinas
virtuales.

ACTION (ACCIÓN) Inicie (power on [encender]) la máquina virtual.


→ Start (Iniciar)

ACTION (ACCIÓN) Apague la máquina virtual correctamente y preserve el contenido del


→ Shutdown disco.
(Apagar)

ACTION (ACCIÓN) Fuerce el apagado de la máquina virtual y preserve el contenido del


→ Power Off disco. Esto equivale a desenchufar una máquina física.
(Desconectar)

ACTION (ACCIÓN) Fuerce el apagado de la máquina virtual y restablezca el disco para


→ Reset que vuelva a su estado original. Precaución: Se perderán los trabajos
(Restablecer) generados en el disco.

Al inicio de un ejercicio, si se le indica que restablezca el nodo de una máquina virtual, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer) solo para la máquina virtual específica.

Al inicio de un ejercicio, si se le indica que restablezca todas las máquinas virtuales, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer)

Si desea que el entorno del aula vuelva a su estado original al inicio del curso, puede hacer clic
en DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) para eliminar el entorno del aula
completo. Después de eliminar el trabajo de laboratorio, puede hacer clic en PROVISION LAB
(APROVISIONAR TRABAJO DE LABORATORIO) para aprovisionar un nuevo conjunto de sistemas
del aula.

ADVERTENCIA
La operación DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) no puede
deshacerse. Se perderán todos los trabajos que haya completado en el entorno del
aula hasta el momento.

xii RH354-RHEL8.0-es-1-20190319
Introducción

Temporizador de detención automática


La inscripción al aprendizaje en línea de Red Hat otorga a los estudiantes derecho a una cierta
cantidad de tiempo de uso del equipo. Para ahorrar tiempo asignado de la computadora, el aula de
ROL tiene un temporizador en cuenta regresiva asociado, el cual apaga el entorno del aula cuando
se termina el tiempo.

Para ajustar el temporizador, haga clic en MODIFY (MODIFICAR) para que aparezca el cuadro de
diálogo New Autostop Time (Nuevo tiempo de detención automática). Defina la cantidad de horas
y minutos hasta que el aula deba detenerse automáticamente. Tenga en cuenta que hay un tiempo
máximo de diez horas. Haga clic en ADJUST TIME (AJUSTAR TIEMPO) para aplicar este cambio en
los ajustes del temporizador.

RH354-RHEL8.0-es-1-20190319 xiii
Introducción

INTERNACIONALIZACIÓN

SELECCIÓN DE IDIOMA POR USUARIO


Es posible que sus usuarios prefieran usar un idioma para su entorno de escritorio distinto al
predeterminado del sistema. Quizás también quieran usar una distribución del teclado o un método
de entrada distintos para su cuenta.

Configuración de idioma
En el entorno de escritorio GNOME, posiblemente el usuario deba definir el idioma de su
preferencia y el método de entrada la primera vez que inicie sesión. Si no es así, la manera más
simple para un usuario individual de definir el idioma de su preferencia y el método de entrada es
usando la aplicación Region & Language (Región e idioma).

Puede iniciar esta aplicación de dos maneras. Puede ejecutar el comando gnome-control-
center region desde una ventana de terminal, o en la barra superior, desde el menú del
sistema en la esquina derecha, seleccionar el botón de configuración (que tiene un ícono de un
destornillador y una llave cruzados) desde la parte inferior izquierda del menú.

En la ventana que se abre, seleccione Region & Language (Región e idioma). El usuario puede
hacer clic en la caja (box) Language (Idioma) y seleccionar el idioma de su preferencia en la lista
que aparece. Esto también actualiza la configuración de Formats (Formatos) mediante la adopción
del valor predeterminado para ese idioma. La próxima vez que inicie sesión, se efectuarán los
cambios.

Estas configuraciones afectan el entorno de escritorio GNOME y todas las aplicaciones, como
gnome-terminal, que se inician dentro de este. Sin embargo, de forma predeterminada, no se
aplican a la cuenta si el acceso a ella es mediante un inicio de sesión ssh desde un sistema remoto
o un inicio de sesión basado en texto en una consola virtual (como tty5).

NOTA
Puede hacer que su entorno de shell use la misma configuración de LANG que su
entorno gráfico, incluso cuando inicia sesión mediante una consola virtual basada
en texto o mediante ssh. Una manera de hacer esto es colocar un código similar
al siguiente en su archivo ~/.bashrc. Este código de ejemplo definirá el idioma
empleado en un inicio de sesión en interfaz de texto de modo que coincida con el
idioma actualmente definido en el entorno de escritorio GNOME del usuario.

i=$(grep 'Language=' /var/lib/AccountsService/users/${USER} \


| sed 's/Language=//')
if [ "$i" != "" ]; then
export LANG=$i
fi

Es posible que algunos idiomas, como el japonés, coreano, chino y otros con un
conjunto de caracteres no latinos, no se vean correctamente en consolas virtuales
basadas en texto.

xiv RH354-RHEL8.0-es-1-20190319
Introducción

Se pueden crear comandos individuales para usar otro idioma mediante la configuración de la
variable LANG en la línea de comandos:

[user@host ~]$ LANG=fr_FR.utf8 date


jeu. avril 25 17:55:01 CET 2019

Los comandos subsiguientes se revertirán y se usarán el idioma de salida predeterminado del


sistema. El comando locale se puede usar para determinar el valor actual de LANG y otras
variables de entorno relacionadas.

Configuración del método de entrada


GNOME 3 en Red Hat Enterprise Linux 7 o posterior usa de manera automática el sistema de
selección de método de entrada IBus, que permite cambiar las distribuciones del teclado y los
métodos de entrada de manera rápida y sencilla.

La aplicación Region & Language (Región e idioma) también se puede usar para habilitar métodos
de entrada alternativos. En la ventana de la aplicación Region & Language (Región e idioma), la
caja (box) Input Sources (Fuentes de entrada) muestra los métodos de entrada disponibles en este
momento. De forma predeterminada, es posible que English (US) (Inglés [EE. UU.]) sea el único
método disponible. Resalte English (US) y haga clic en el icono de teclado para ver la distribución
actual del teclado.

Para agregar otro método de entrada, haga clic en el botón +, en la parte inferior izquierda de la
ventana Input Sources (Fuentes de entrada). Se abrirá la ventana Add an Input Source (Agregar
una fuente de entrada). Seleccione su idioma y, luego, el método de entrada o la distribución del
teclado de su preferencia.

Cuando haya más de un método de entrada configurado, el usuario puede alternar entre ellos
rápidamente escribiendo Super+Space (en ocasiones denominado Windows+Space). También
aparecerá un indicador de estado en la barra superior de GNOME con dos funciones: por un lado,
indica el método de entrada activo; por el otro lado, funciona como un menú que puede usarse para
cambiar de un método de entrada a otro o para seleccionar funciones avanzadas de métodos de
entrada más complejos.

Algunos de los métodos están marcados con engranajes, que indican que tienen opciones de
configuración y capacidades avanzadas. Por ejemplo, el método de entrada japonés Japanese
(Kana Kanji) (japonés [Kana Kanji]) permite al usuario editar previamente texto en latín y usar las
teclas de Down Arrow (flecha hacia abajo) y Up Arrow (flecha hacia arriba) para seleccionar los
caracteres correctos que se usarán.

El indicador también puede ser de utilidad para los hablantes de inglés de Estados Unidos. Por
ejemplo, dentro de English (United States) (Inglés [Estados Unidos]) está la configuración del
teclado English (international AltGr dead keys) (Inglés [internacional, teclas inactivas AltGr]),
que trata AltGr (o la tecla Alt derecha) en un teclado de 104/105 teclas de una PC como una
tecla modificadora "Bloq Mayús secundaria" y tecla de activación de teclas inactivas para escribir
caracteres adicionales. Hay otras distribuciones alternativas disponibles, como Dvorak.

RH354-RHEL8.0-es-1-20190319 xv
Introducción

NOTA
Cualquier carácter Unicode puede ingresarse en el entorno de escritorio GNOME
si conoce el código Unicode del carácter. Escriba Ctrl+Shift+U, seguido por
el código. Después de ingresar Ctrl+Shift+U, aparecerá una u subrayada que
indicará que el sistema espera la entrada del código Unicode.

Por ejemplo, la letra del alfabeto griego en minúscula lambda tiene el código U
+03BB y puede ingresarse escribiendo Ctrl+Shift+U, luego 03BB y, por último,
Enter.

VALORES DE IDIOMA PREDETERMINADO EN TODO EL


SISTEMA
El idioma predeterminado del sistema está definido en US English (inglés de EE. UU.), que usa
la codificación UTF-8 de Unicode como su conjunto de caracteres (en_US.utf8), pero puede
cambiarse durante o después de la instalación.

Desde la línea de comandos, el usuario root puede cambiar los ajustes de configuración regional
de todo el sistema con el comando localectl. Si localectl se ejecuta sin argumentos, muestra
los ajustes actuales de configuración regional de todo el sistema.

Para configurar el idioma predeterminado de todo el sistema, ejecute el comando localectl


set-locale LANG=locale, donde locale es el valor adecuado para la variable de entorno
LANG de la tabla "Referencia de códigos de idioma" en este capítulo. El cambio tendrá efecto para
usuarios en su próximo inicio de sesión y se almacena en /etc/locale.conf.

[root@host ~]# localectl set-locale LANG=fr_FR.utf8

En GNOME, un usuario administrativo puede cambiar esta configuración en Region & Language
(Región e idioma) haciendo clic en el botón Login Screen (Pantalla de inicio de sesión) ubicado
en la esquina superior derecha de la ventana. Al cambiar la opción de Language (Idioma) de la
pantalla de inicio de sesión gráfico, también ajustará el valor de idioma predeterminado de todo el
sistema en el archivo de configuración /etc/locale.conf.

IMPORTANTE
Las consolas virtuales basadas en texto, como tty4, pueden mostrar una cantidad
más limitada de fuentes que los terminales en una consola virtual que ejecuta un
entorno gráfico, o pseudoterminales para sesiones ssh. Por ejemplo, los caracteres
del japonés, coreano y chino posiblemente no se visualicen como se espera en una
consola virtual basada en texto. Por este motivo, debe considerar el uso de inglés u
otro idioma con un conjunto de caracteres latinos para los valores predeterminados
para todo el sistema.

De manera similar, las consolas virtuales basadas en texto soportan una cantidad
limitada de métodos de entrada; y esto se administra de manera separada
desde el entorno gráfico de escritorio. Las opciones de entrada globales pueden
ser configuradas a través localectl de la consola de texto virtual y del
entorno gráfico. Para obtener más información, consulte las páginas del manual
localectl(1) y vconsole.conf(5).

xvi RH354-RHEL8.0-es-1-20190319
Introducción

PAQUETES DE IDIOMAS
Paquetes de RPM especiales llamados langpacks instalan paquetes de idiomas que agregan
soporte para idiomas específicos. Estos paquetes de idiomas usan dependencias para instalar
automáticamente paquetes de RPM adicionales que contienen localizaciones, diccionarios y
traducciones para otros paquetes de software en su sistema.

Use yum list langpacks-* para enumerar los paquetes de idiomas que están instalados y que
pueden instalarse:

[root@host ~]# yum list langpacks-*


Updating Subscription Management repositories.
Updating Subscription Management repositories.
Installed Packages
langpacks-en.noarch 1.0-12.el8 @AppStream
Available Packages
langpacks-af.noarch 1.0-12.el8 rhel-8-for-x86_64-appstream-rpms
langpacks-am.noarch 1.0-12.el8 rhel-8-for-x86_64-appstream-rpms
langpacks-ar.noarch 1.0-12.el8 rhel-8-for-x86_64-appstream-rpms
langpacks-as.noarch 1.0-12.el8 rhel-8-for-x86_64-appstream-rpms
langpacks-ast.noarch 1.0-12.el8 rhel-8-for-x86_64-appstream-rpms
...output omitted...

Para agregar soporte de idioma, instale el paquete langpacks correcto. Por ejemplo, el siguiente
comando agrega soporte para francés:

[root@host ~]# yum install langpacks-fr

Use yum repoquery --whatsupplements para determinar qué paquetes de RPM pueden ser
instalados por un paquete de idiomas:

[root@host ~]# yum repoquery --whatsupplements langpacks-fr


Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 0:01:33 ago on Wed 06 Feb 2019 10:47:24 AM CST.
glibc-langpack-fr-0:2.28-18.el8.x86_64
gnome-getting-started-docs-fr-0:3.28.2-1.el8.noarch
hunspell-fr-0:6.2-1.el8.noarch
hyphen-fr-0:3.0-1.el8.noarch
libreoffice-langpack-fr-1:6.0.6.1-9.el8.x86_64
man-pages-fr-0:3.70-16.el8.noarch
mythes-fr-0:2.3-10.el8.noarch

RH354-RHEL8.0-es-1-20190319 xvii
Introducción

IMPORTANTE
Los paquetes langpacks usan dependencias débiles de RPM para instalar paquetes
complementarios solo cuando el paquete principal (core) que lo necesita también
está instalado.

Por ejemplo, al instalar langpacks-fr como se muestra en los ejemplos anteriores, el


paquete mythes-fr solo se instalará si el tesauro mythes también está instalado en el
sistema.

Si mythes se instala posteriormente en ese sistema, el paquete mythes-fr también se


instalará automáticamente debido a la débil dependencia del paquete langpacks-fr
ya instalado.

REFERENCIAS
Páginas del manual: locale(7), localectl(1), locale.conf(5),
vconsole.conf(5), unicode(7) y utf-8(7).

Las conversiones entre los nombres de los diseños X11 del entorno de escritorio
gráfico y sus nombres en localectl se pueden encontrar en el archivo /usr/
share/X11/xkb/rules/base.lst.

REFERENCIA DE CÓDIGOS DE IDIOMA


NOTA
Es posible que esta tabla no refleje todos los paquetes de idiomas disponibles en su
sistema. Use yum info langpacks-SUFFIX para obtener más información sobre
un paquete langpacks en particular.

Códigos de idioma

IDIOMA SUFIJO DE LOS VALOR $LANG


PAQUETES DE
IDIOMAS

Inglés (EE. UU.) en en_US.utf8

Asamés as as_IN.utf8

Bengalí bn bn_IN.utf8

Chino (simplificado) zh_CN zh_CN.utf8

Chino (tradicional) zh_TW zh_TW.utf8

Francés fr fr_FR.utf8

Alemán de de_DE.utf8

Guyaratí gu gu_IN.utf8

xviii RH354-RHEL8.0-es-1-20190319
Introducción

IDIOMA SUFIJO DE LOS VALOR $LANG


PAQUETES DE
IDIOMAS

Hindi hi hi_IN.utf8

Italiano it it_IT.utf8

Japonés ja ja_JP.utf8

Canarés kn kn_IN.utf8

Coreano ko ko_KR.utf8

Malayalam ml ml_IN.utf8

Maratí mr mr_IN.utf8

Odia or or_IN.utf8

Portugués (brasileño) pt_BR pt_BR.utf8

Panyabí pa pa_IN.utf8

Ruso ru ru_RU.utf8

Español es es_ES.utf8

Tamil ta ta_IN.utf8

Telugú te te_IN.utf8

RH354-RHEL8.0-es-1-20190319 xix
xx RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1

VISTA PREVIA DE RED HAT


ENTERPRISE LINUX 8
META Describir las principales mejoras y mejoras de
funciones en la próxima versión de Red Hat
Enterprise Linux 8.

OBJETIVOS • Describir las principales mejoras y mejoras de


funciones en la próxima versión de Red Hat
Enterprise Linux 8.

SECCIONES • Visión general de Red Hat Enterprise Linux 8 (y


cuestionario)

RH354-RHEL8.0-es-1-20190319 1
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

VISIÓN GENERAL DE RED HAT


ENTERPRISE LINUX 8

OBJETIVOS
Después de completar esta sección, debe ser capaz de proporcionar una descripción básica de las
funciones clave de Red Hat Enterprise Linux 8.

ACERCA DE RED HAT ENTERPRISE LINUX 8


Red Hat Enterprise Linux 8 (RHEL 8) es el último gran lanzamiento del sistema operativo
empresarial de Red Hat. Implementable en hardware físico, en máquinas virtuales, en la nube y en
contenedores, Red Hat Enterprise Linux 8 ofrece las características avanzadas que requieren las
arquitecturas de TI de próxima generación.

Este curso proporciona una oportunidad práctica de trabajar con Red Hat Enterprise Linux 8, y
explora características seleccionadas de esta nueva versión. Los autores del curso han elegido
estas características en función de su posible relevancia para una amplia audiencia. Sin embargo,
no se cubrirán todas las nuevas características de Red Hat Enterprise Linux 8. Para obtener más
información, consulte la documentación del producto y los artículos que se encuentran en http://
access.redhat.com/, el portal de clientes de Red Hat.

ARQUITECTURAS SOPORTADAS
Red Hat Enterprise Linux 8 está sopotado en las siguientes arquitecturas de procesador:

Arquitecturas de procesadores soportadas

• AMD/Intel de 64 bits (x86_64)


• ARM de 64 bits (aarch64)
• IBM POWER, little endian (ppc64le)
• IBM Z (s390x)

Red Hat Enterprise Linux ya no se trata sólo de servidores x86_64. Si bien x86_64 domina las
implementaciones de centros de datos, hay razones para implementar Linux en arquitecturas
alternativas y nuevas aplicaciones que se benefician de arquitecturas de cómputo no tradicionales.

La iniciativa de arquitecturas múltiples de Red Hat proporciona soporte de software para una
variedad de arquitecturas de procesadores y de máquinas, alimentada por una plataforma
operativa en común basada en Red Hat Enterprise Linux. Los clientes pueden implementar
sistemas en una variedad de diseños de servidor y aprovechar, a la vez, la administración en común
y la compatibilidad de las aplicaciones.

Soporte ARMv8
El soporte para ARM de 64 bits se incorporó como prueba piloto en Red Hat Enterprise Linux 7 y
ahora se incluye como componente principal (core) de Red Hat Enterprise Linux 8:

Soporte RHEL 8 para ARM64

• Red Hat Enterprise Linux para ARM (aarch64).


• Los procesadores ARMv8 de 64 bits están soportados.

2 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

• Apuntado a servidores optimizados SoC (Systems of Chip) para la nube, hiperescala, HPC, telcos
y computación perimetral
• Goal es una plataforma operativa única para múltiples proveedores de ARM.

Red Hat lleva años impulsando estándares abiertos en el ecosistema de procesadores ARM.
Nuestra meta ha sido desarrollar una plataforma operativa única a través de múltiples productos
sistema en chip (Systems of Chip o SoC en Inglés) para servidores ARMv8-A de 64 bits, diseñados
para la nube, hiperescala, telecomunicaciones y computación perimetral, así como también
aplicaciones de cómputo de alto rendimiento (High Performance Computing o HPC en inglés)

Tenga en cuenta que los procesadores de ARM de 32 bits (como la arquitectura armv7l) no están
soportadas.

Soporte para Little Endian IBM POWER


El soporte para procesadores de Red Hat Enterprise Linux 8 para sistemas IBM Power ha tenido
algunos cambios:

RHEL 8 para IBM POWER

• RHEL 8 para sistemas IBM Power solo soporta el modo little endian (ppc64le).
• Los procesadores POWER8 y POWER9 están soportados.
• ¿Puede ser un huésped de KVM en Red Hat Virtualization para Power, PowerVM y PowerNV (sin
sistema operativo [bare-metal]).

Las versiones anteriores de RHEL eran compatibles con sistemas IBM Power utilizando la
arquitectura ppc64 big endian. Red Hat Enterprise Linux 8 ya no se desarrolla ni proporciona más
para big endian. Solo el modo little endian ppc64le está soportado.

Los sistemas little endian almacenan los datos en la memoria ordenada primero con el byte
menos significativo y por último con el byte más significativo, al revés del sistema big-endian. La
arquitectura x86_64 también es little endian. La ventaja de ejecutar los procesadores POWER en el
modo little endian es que hace que sea más sencillo para los programadores transferir aplicaciones
de x86_64 a POWER. Utilizar el mismo modo endian para todos los procesadores soportados
por Red Hat Enterprise Linux permite a los programadores evitar errores que podrían causar a
problemas en la representación de los datos de la aplicación transferida, o cuando la aplicación.

CARACTERÍSTICAS CLAVE Y CAMBIOS


Hay demasiadas mejoras, cambios y nuevas características en Red Hat Enterprise Linux como
para cubrirlos todos en este curso. La descripción general que sigue analiza muchos de ellos,
algunos de los cuales se investigarán en detalle más adelante en este curso. Esta lista no es
exhaustiva. Para obtener más información, visite http://access.redhat.com/documentation/en-us/
red_hat_enterprise_linux/ y revise las Notas de lanzamiento y demás documentación de Red Hat
Enterprise Linux 8.

Cambios seleccionados en RHEL 8

• La siguiente discusión es una revisión de cambios seleccionados en RHEL 8.


• En este curso, no se cubrirán todos los cambios o nuevas características en RHEL 8.
• Para obtener más información, consulte las Notas de lanzamiento en https://access.redhat.com/.

Instalación e implementación
Algunos cambios en el instalador se tratan en detalle más adelante en este curso. Para resumir:

RH354-RHEL8.0-es-1-20190319 3
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

Descripción general de los cambios en la instalación

• Reestructuración de los canales en "BaseOS" y "AppStream".


• "System Purpose" (Propósito del sistema) para indicar el propósito planificado para derechos y
nivel de soporte.
• Mejoras a las directivas de Kickstart.
• Puede instalar y arrancar desde dispositivos NVDIMM ( utilizando Anaconda o Kickstart).

Puesta en marcha y administración del sistema


Cambios en la administración del gestor de arranque:

Administrador de arranque BOOM

• Simplifica el proceso de creación de entradas de arranque.


• Agrega entradas, no las modifica.
• CLI y API simplificados.

BOOM es un administrador de arranque de Linux que simplifica la creación de entradas de


arranque. BOOM puede arrancar desde imágenes de snapshots de sistema basadas en LVM.
La configuración del gestor de arranque existente no es modificado, ya que BOOM solo inserta
entradas adicionales. La configuración existente se mantiene y funciona como antes. BOOM tiene
ambas, una interfaz de línea de comando y una API para que los administradores creen entradas de
arranque.

Habilitar huéspedes Secure-Boot.

• RHEL 8 soporta huéspedes secure-boot que utilizan imágenes firmadas criptográficamente.


• Las imágenes están firmadas organizaciones de confianza externas para asegurar la integridad.

Kernel
El kernel actual admite un direccionamiento físico de 52 bits para arquitecturas ARM de 64 bits,
paginación de 5 niveles, mecanismo Control Group v2, kdump anticipado, planificador de procesos
con fecha de límite y la configuración de espacios de nombres de tiempos separados.

Cambios en los paquetes

• kernel-core proporciona el kernel principal (core).


• kernel-modules y kernel-modules-extra contienen módulos del kernel que coinciden con la
versión del paquete kernel-core.
• kernel es ahora un metapaquete que asegura quekernel-core y kernel-modulesestén instalados.
• kernel-doc se ha quitado. Use kernel source RPM en su lugar.

Este nuevo enfoque del empaquetado del kernel permite una configuración más granular y
modular del kernel. Es especialmente importante en implementaciones actuales basadas en la
nube, donde el espacio es de gran importancia.

Gestión de memoria

• Nuevo modelo de paginación de 5 niveles.


• Direccionamiento de memoria virtual de 57 bits (128 PiB de espacio de direcciones utilizable).
• Direccionamiento de memoria física de 52 bits (teóricamente hasta 4 PiB RAM).
• Los límites de soporte físico pueden variar dependiendo del hardware.

4 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

La capacidad de direccionamiento de memoria se ha extendido a 57/52-bit de memoria física/


virtual. Para manejar el rango de direcciones expandido, la administración de memoria se extendió
para utilizar implementación de tablas de página de 5 niveles.

Habilitación de Kdump anticipado en el arranque

• RHEL 7 y los lanzamientos anteriores de RHEL inician el kdump.service como parte del proceso
de arranque multi-user.target. Problemas que ocurran previo a este evento de servicio no
podrán ser capturados.
• RHEL 8 proporciona Kdump anticipado almacenando el vmlinuz y elinitramfsdel kernel
con problemas, dentro del initramfs del kernel de arranque. Estos componentes se
cargan directamente en la memoria reservada (crashkernel) durante las primeras etapas
del initramfs, lo que permite la captura del volcado del kernel durante todas las fases de
arranque.

Mejorando el planificador de procesos

• El planificador de procesos de CFS sigue siendo el planificador de procesos predeterminado en


RHEL 8.
• RHEL 8 soporta el nuevo planificador de procesos de fecha límite, que proporciona una clase de
planificación SCHED_DEADLINE con los nuevos atributos fecha límite, período y tiempo
de ejecución.
• SCHED_DEADLINE se basa en los algoritmos de fecha límite más antigua primero (EDF) y
servidor de ancho de banda constante (CBS).
• SCHED_DEADLINE es adecuado para aplicaciones en tiempo real, como aplicaciones multimedia
o de control industrial, y proporciona un mejor rendimiento en máquinas con capacidades NUMA.
• Los desarrolladores usan las llamadas al sistemasched_setattr() y sched_getattr() para
manejar los atributos de programación.

Habilitar espacios de nombres de tiempo

• RHEL 8 admite espacios de nombres con diferentes relojes, como compensaciones de la vista de
la hora actual del sistema.
• Habilitar espacios de nombres de tiempo permite ejecutar pruebas en diferentes puntos en el
tiempo.

Redes
Mejoras y cambios en las características de red en RHEL 8:

Cambios en el firewall

• nftables es el motor de firewall predeterminado.


• nftables es el sucesor de iptables, ip6tables, arptables, ebtables e ipset.
• Se sigue recomendando usar firewall-cmd para administrar el firewall; use nft directamente
solo para configuraciones complejas.
• Existen herramientas de compatibilidad con iptables disponibles.

Los conjuntos de herramientas iptables y ebtables son reemplazados por nftables en RHEL 8.
El marco (framework) nftables, y su herramienta principal (core) nft, proporciona mejoras
significativas en comodidad, características y rendimiento. Unifica las herramientas IPv4 e IPv6,
usa tablas de búsqueda rápida en lugar de procesamiento de reglas lineales, admite la depuración
y el rastreo en el conjunto de reglas y tiene una sintaxis más consistente y compacta. Las
herramientas de compatibilidad basadas en los antiguos nombres de comandos están disponibles,
y las herramientas para migrar conjuntos de reglas desde iptables y ip6tables a nft están
documentadas en la página del manual xtables-translate(8).

RH354-RHEL8.0-es-1-20190319 5
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

El sistema firewalld sigue siendo la forma recomendada de administrar las reglas del
firewall local para casos de uso típicos. En RHEL 8, utiliza nftables como su motor de reglas
predeterminado. Si el motor de reglas vuelve a cambiar en una versión posterior de Red Hat
Enterprise Linux, firewalld está diseñado para agregar y seleccionar fácilmente un valor
predeterminado entre los entre los motores de reglas disponibles.

Las mejoras de firewall se tratan en detalle más adelante en este curso.

NetworkManager y los scripts de red

• nmcli es la herramienta preferida para administrar la configuración de red a través de


NetworkManager.
• Las nuevas versiones de ifup y ifdown requieren NetworkManager.
• Los scripts de red heredados como ifup-local están en desuso y no están disponibles de
forma predeterminada.

Las mejoras de NetworkManager se tratan en detalle más adelante en este curso.

Sincronización de tiempo de NTP

• Chrony (chronyd) reemplaza a ntpd como la implementación del servicio NTP


• Chrony se desempeña mejor en una amplia gama de condiciones, se sincroniza más rápido y con
mayor precisión.
• Las herramientas de migración están disponibles en /usr/share/doc/chrony/.

En RHEL 8, Chrony reemplaza completamente a ntpd como la implementación NTP proporcionada


por el sistema operativo. El paquete ntpd ya no está disponible.

Chrony funciona mejor que ntpd en muchos escenarios del mundo real: cuando el acceso a la
referencia de tiempo es intermitente, cuando la red presenta atascos frecuentes o cuando el
reloj del sistema está sujeto a cambios repentinos en la tasa de tics (debido a los cambios en la
temperatura del oscilador de cristal). Tiene una serie de otras mejoras también.

Hay disponible un script de migración /usr/share/doc/chrony/ntp2chrony.py


para convertir configuraciones de ntpd a Chrony. Los detalles sobre cómo usarlo se
encuentran en la documentación de RHEL 8 en https://access.redhat.com/documentation/
red_hat_enterprise_linux/8-beta/html-single/configuring_basic_system_settings/#migrating-to-
chrony_using-chrony-to-configure-ntp.

Hablaremos sobre Chrony en detalle más adelante en este curso.

Mejoras en TCP

• Actualización a la versión 4.16 de la pila (stack) TCP.


• Mejora en el rendimiento de servidores TCP con alta tasa de ingreso de conexiones.
• Nuevos algoritmos de control de atasco BBR y NV.

Controladores de red eliminados

• Ciertos controladores de red obsoletos se han eliminado de RHEL 8.


• El controlador e1000 fue removido, pero el e1000e es aún soportado.
• El controlador tulip se ha eliminado, lo cual afecta a las máquinas virtuales de "Generación 1"
en Microsoft Hyper-V.

Los controladores de red obsoletos se han eliminado de RHEL 8 y ya no son soportados. Consulte
la sección Soporte de hardware eliminado de las notas de lanzamiento para ver cuáles están

6 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

afectados. Se usaron ampliamente dos controladores en particular y pueden afectar a los antiguos
entornos de hardware o virtualización.

El controlador e1000 para los dispositivos Intel Gigabit Ethernet basados en PCI fue eliminado.
Esta familia común de tarjetas de red fue el controlador predeterminado para las máquinas
virtuales KVM que usan el tipo de máquina i440fx. Red Hat ahora recomienda el tipo de máquina
q35 en RHEL 8.

IMPORTANTE
El controlador e1000e relacionado para dispositivos Intel Gigabit Ethernet basados
en PCIe todavía está disponible y sigue siendo soportado.

El controlador tulip para la familia de dispositivos DEC "Tulip" chip Fast Ethernet se ha eliminado.
Las máquinas virtuales Microsoft Hyper-V "Generación 1" emulan este dispositivo para su
adaptador de red virtual. Puesto que RHEL 8 no proporciona un controlador para ese dispositivo,
la instalación PXE de RHEL 8 en una máquina virtual Hyper-V "Generación 1" fallará. La solución es
usar máquinas virtuales de "Generación 2" o instalar la máquina virtual con una imagen ISO.

Administración de software
La nueva característica de Yum es el método de agrupación de paquetes llamado modules.

Los módulos

• Los módulos se instalan independientemente de la versión principal del sistema operativo


subyacente.
• El sistema de módulos es compatible con múltiples versiones de una aplicación
simultáneamente.
• Un módulo está vinculado a un flujo de aplicaciones.

La modularidad y la gestión de flujos de módulos con yum se tratan en detalle más adelante en este
curso.

Actualizaciones a RPM y YUM

• DNF es una reescritura de la tecnología de Yum y es la nueva funcionalidad estándar de


administración de paquetes para paquetes RPM en RHEL 8.
• El comando yum (v4) se conserva como la utilidad de línea de comando recomendada,
simbólicamente vinculada dnf para facilitar la compatibilidad de los scripts y del operador.
• Yum v4 admite módulos que permiten la modularidad del software.
• Yum v4 ahora entiende las dependencias débiles y booleanas.
• Yum v4 proporciona una colección más amplia de complementos (plug-ins) y herramientas
adicionales (add-ons).

Almacenamiento
El nuevo administrador de almacenamiento local proporciona un sistema de archivos administrado
por volumen que usa grupos compartidos de almacenamiento.

Administrador de almacenamiento de Stratis

• Capacidad para crear grupos de uno o varios dispositivos de bloque.


• Cree sistemas de archivos dinámicos y flexibles dentro de esos grupos.

RH354-RHEL8.0-es-1-20190319 7
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

• Stratis admite la captura de snapshots del sistema de archivos. Las snapshots son
independientes de los sistemas de archivos de origen.

Hablaremos en detalle sobre el administrador de almacenamiento Stratis más adelante en este


curso.

Optimizador de datos virtual (VDO)

• VDO reduce la huella de datos de almacenamiento en tres fases: eliminación de bloque cero,
deduplicación de bloques redundantes y compresión de datos.
• VDO elimina los bloques que solo incluyen ceros y mantiene sus metadatos.
• Los discos virtuales para máquinas virtuales son un buen caso de uso de los volúmenes VDO.

Hablaremos en detalle sobre VDO más adelante en este curso.

Extensiones de copia en escritura XFS

• Copy-on-Write (CoW) (copia en escritura) se habilita de forma predeterminada cuando se crea el


sistema de archivos.
• Agrega soporte a XFS para permitir que dos o más archivos compartan los mismos bloques de
datos.
• Si un archivo cambia, el uso compartido se interrumpe y se rastrean bloques separados.
• Clonación eficiente de archivos, snapshots por archivo y funcionamiento de NFS y Overlayfs.
• RHEL 7 solo puede montar XFS con extensiones de CoW en el modo de solo lectura.

La funcionalidad de las extensiones de datos de copia en escritura compartidas permite que


múltiples archivos compartan un conjunto común de bloques de datos.

Compatibilidad de reservas persistentes de SCSI-3 con Virtio-SCSI

• En RHEL 8, tanto qemu como libvirt admiten reservas persistentes de SCSI-3 en dispositivos de
almacenamiento presentados a las máquinas virtuales a través de Virtio-SCSI respaldadas por
LUN conectados directamente.
• Las máquinas virtuales pueden compartir dispositivos de almacenamiento Virtio-SCSI y usar PR
SCSI-3 para controlar el acceso.
• Los dispositivos de almacenamiento administrados con device-mapper-multipath pueden
acceder directamente a las máquinas virtuales para usar SCSI-3 PR, y el host administra las
acciones de PR en todos los caminos.

Otras características de almacenamiento

• El nuevo formato en disco LUKS2 para almacenamiento cifrado reemplaza a LUKS1.


• Los dispositivos de bloque ahora utilizan la planificación en múltiples colas y el controlador
scsi-mq está habilitado de forma predeterminada para un mejor rendimiento de SSD.

Características de almacenamiento eliminadas

• Se han eliminado varios controladores de almacenamiento antiguos y el soporte para


adaptadores obsoletos.
• El sistema de archivos Btrfs ha sido eliminado.
• Se ha eliminado el soporte para el canal de fibra a través de Ethernet (FCoE) administrado por
software.

8 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

IMPORTANTE
La descarga de adaptadores FCoE que aparecen como adaptadores de canal de
fibra en el sistema operativo y no usan las herramientas de gestión fcoe-utils
continúan siendo soportados. Esto se aplica a los adaptadores seleccionados de los
controladores lpfc y qla2xxx.

También se sigue admitiendo la descarga de los adaptadores FCoE que sí usan las
herramientas de gestión fcoe-utils, pero tienen sus propios controladores en lugar
de fcoe.ko y administran la configuración DCBX en sus controladores o firmware,
a menos que Red Hat disponga lo contrario. Esto incluye los controladores fnic,
bnx2fs y qedf.

Características de seguridad
Muchas características nuevas o mejoradas relacionadas con la seguridad se presentan en RHEL 8.
Entre los cambios importantes se incluyen:

Política criptográfica en todo el sistema

• Política criptográfica en todo el sistema para TLS/IPSec/SSH/DNSSEC/Kerberos.


• Permite que el administrador actualice la lista de protocolos y algoritmos para seguir la práctica
recomendada para muchos servicios de manera consistente.
• Se proporcionan varias políticas y se pueden aplicar usando el comando update-crypto-
policies.
• La política DEFAULT proporciona una valor predeterminado razonable compatible con PCI-DSS.

Para obtener más información sobre las políticas criptográficas en todo el sistema, consulte
Seguridad consistente por políticas criptográficas en Red Hat Enterprise Linux 8 [https://
www.redhat.com/en/blog/consistent-security-crypto-policies-red-hat-enterprise-linux-8] y la
página del manual update-crypto-policies(8).

Mejora de las capacidades de sosreport

• RHEL 8 incluye la versión 3.6 de la herramienta sosreport, que admite nuevos perfiles, por
ejemplo contenedores, presets de línea de comandos definidos por usuario y política, y límites de
tamaño para comandos externos
• Esta versión de sosreport también es compatible con una gran colección de nuevos
complementos (plug-ins), por ejemplo ansible, buildah y runc
• La utilidad sos-collector está disponible en RHEL 8, y recopila sosreports de entornos de
múltiples hosts como un clúster RHV o un clúster RHEL de alta disponibilidad

Otros cambios de seguridad

• Subsistema de auditoría actualizado a la versión 3.0.


• Actualización de rsyslog a 8.37.0 con nuevas funciones y correcciones adicionales.
• Rebase OpenSSH 7.8p1, se eliminó el soporte para cifrados débiles y el protocolo obsoleto SSH
versión 1.
• Mejoras de OpenSCAP CLI, borrador de perfil OSPP versión 4.2 para RHEL 8.
• Se ha eliminado el soporte para tcp_wrappers.

Entorno de usuario
GNOME es ahora el único administrador de pantalla disponible. KDE ha sido completamente
eliminado de la distribución. Wayland es el servidor de pantalla predeterminado, que ofrece

RH354-RHEL8.0-es-1-20190319 9
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

múltiples ventajas y mejoras, incluidos un modelo de seguridad más sólido, mejor manejo de
múltiples monitores y mejora en el escalamiento (scaling) de la interfaz de usuario.

Cambios en el escritorio gráfico

• Wayland es el servidor de visualización predeterminado; Xorg todavía está disponible.


• Actualizado a GNOME 3.28.
• KDE eliminado de la distribución.

Virtualización
En esta versión, QEMU ahora puede emular el chipset de la placa base Intel Q35, que ofrece una
mejor plataforma de hardware para los sistemas operativos virtualizados modernos.

Gestión de máquinas virtuales

• Los paquetes para la virtualización están en el flujo de módulos virt.


• Nueva interfaz en la herramienta de gestión web Cockpit para gestionar máquinas virtuales.
• virt-manager está en desuso pero todavía está disponible.

El uso de Cockpit para crear y administrar máquinas virtuales se explica en detalle más adelante en
este curso.

Modelo de hardware KVM actualizado

• KVM ahora se establece de manera predeterminada en el modelo de hardware Q35 (emulación


de hardware más nueva).
• Mejor soporte de pasaje a través de PCI Express, admite arranque seguro.
• La anterior emulación Intel 440FX todavía está disponible para sistemas operativos más
antiguos.
• Concepto similar a las máquinas virtuales "Generación 1" y "Generación 2" en Microsoft Hyper-V.

La selección del modelo de hardware KVM para usar en las máquinas virtuales se explica en detalle
más adelante en este curso.

Actualizaciones a HA Clustering

• Pacemaker actualizado a la versión 2.0.0


• pcs tiene nuevas características, soporte para Corosync 3, algunos cambios de sintaxis.
• Una lista detallada de los cambios está disponible en https://access.redhat.com/
articles/3681151/.

Contenedores Linux
RHEL 8 incluye un nuevo módulo de paquete que proporciona un nuevo motor de contenedor,
llamado Podman, para reemplazar Docker y Moby. A diferencia de Docker, que depende de
daemons para crear y ejecutar contenedores, este nuevo conjunto de herramientas y el motor de
contenedor permiten crear y ejecutar contenedores sin daemons.

Nuevas herramientas de contenedores

• El motor de contenedor Podman no tiene demonios y admite la ejecución de contenedores.


• Buildah admite la creación de imágenes de contenedores, incluida la creación de esas imágenes
desde cero o desde un Dockerfile.
• Puede copiar e inspeccionar imágenes de contenedores en registros con Skopeo.

10 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

Hablaremos sobre los contenedores en detalle más adelante en este curso.

REFERENCIAS
Para obtener más información, consulte las Notas de lanzamiento RHEL 8.0 beta en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html/8.0_beta_release_notes/

Base de conocimiento: "¿Qué es la compatibilidad con kdump anticipado y


cómo la configuro?"
https://access.redhat.com/solutions/3700611

Base de conocimiento: "Actualización de Pacemaker 2.0 en Red Hat Enterprise


Linux 8"
https://access.redhat.com/articles/3681151

Extensiones de datos de copia en escritura XFS


https://www.redhat.com/en/about/videos/rhel-8-beta-xfs-copy-write-data-extents

Seguridad consistente por políticas criptográficas en Red Hat Enterprise Linux


8
https://www.redhat.com/en/blog/consistent-security-crypto-policies-red-hat-
enterprise-linux-8

Tablas de página de cinco niveles


https://lwn.net/Articles/717293

Espacios de nombres de tiempo


https://lwn.net/Articles/766089

Redes zero-copy
https://lwn.net/Articles/726917

Administrador de arranque Boom


https://media.readthedocs.org/pdf/boom/latest/boom.pdf

Planificación de tareas con fecha límite


https://www.kernel.org/doc/Documentation/scheduler/sched-deadline.txt

chrony: comparación de implementaciones NTP


https://chrony.tuxfamily.org/comparison.html

BBR: Control de congestión basado en congestiones


https://queue.acm.org/detail.cfm?id=3022184

TCP-NV: actualización a TCP-Vegas


https://docs.google.com/document/d/1o-53jbO_xH-
m9g2YCgjaf5bK8vePjWP6Mk0rYiRLK-U

Mecanismo de encolamiento de E/S de bloque multicola para Linux (blk-mq)


https://www.thomas-krenn.com/en/wiki/Linux_Multi-
Queue_Block_IO_Queueing_Mechanism_(blk-mq)

Sysreport sos-3.6
https://github.com/sosreport/sos/releases

RH354-RHEL8.0-es-1-20190319 11
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

CUESTIONARIO

VISIÓN GENERAL DE RED HAT


ENTERPRISE LINUX 8
Elija las respuestas correctas para las siguientes preguntas:

1. ¿Cuáles de los siguientes enunciados son verdaderos? (Elija dos opciones).


a. nftables es el backend de firewalld predeterminado.
b. Btrfs es el sistema de archivos predeterminado, y se ha actualizado y mejorado.
c. Yum v4 admite módulos que permiten la modularidad del software.
d. El controlador e1000 para los dispositivos Intel Gigabit Ethernet basados en PCI se ha
migrado a Red Hat Enterprise Linux 8.

2. ¿Qué cuatro arquitecturas de procesador admite Red Hat Enterprise Linux 8? (Elija
cuatro opciones).
a. AMD/Intel de 64 bits (x86_64)
b. AMD/Intel de 32 bits (x86)
c. ARM de 64 bits (aarch64)
d. ARM de 32 bits (aarch32)
e. IBM POWER, little endian (ppc64le)
f. IBM Z (s390x)

3. ¿Cuáles de las siguientes afirmaciones son verdaderas acerca de la nueva


administración de memoria en Red Hat Enterprise Linux 8? (Elija dos opciones).
a. La capacidad de direccionamiento de la memoria se ha ampliado a una memoria virtual/
física de 52/57 bits.
b. El direccionamiento teórico máximo de memoria física es de hasta 8 PiB RAM.
c. La capacidad de direccionamiento de la memoria se ha ampliado a una memoria virtual/
física de 57/52 bits.
d. El direccionamiento teórico máximo de memoria física es de hasta 4 PiB RAM.

4. ¿Cuáles de los siguientes parámetros del planificador de procesos con fecha límite son
compatibles con RHEL 8? (Elija tres opciones).
a. deadline
b. period
c. deadline_time
d. runtime

12 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

SOLUCIÓN

VISIÓN GENERAL DE RED HAT


ENTERPRISE LINUX 8
Elija las respuestas correctas para las siguientes preguntas:

1. ¿Cuáles de los siguientes enunciados son verdaderos? (Elija dos opciones).


a. nftables es el backend de firewalld predeterminado.
b. Btrfs es el sistema de archivos predeterminado, y se ha actualizado y mejorado.
c. Yum v4 admite módulos que permiten la modularidad del software.
d. El controlador e1000 para los dispositivos Intel Gigabit Ethernet basados en PCI se ha
migrado a Red Hat Enterprise Linux 8.

2. ¿Qué cuatro arquitecturas de procesador admite Red Hat Enterprise Linux 8? (Elija
cuatro opciones).
a. AMD/Intel de 64 bits (x86_64)
b. AMD/Intel de 32 bits (x86)
c. ARM de 64 bits (aarch64)
d. ARM de 32 bits (aarch32)
e. IBM POWER, little endian (ppc64le)
f. IBM Z (s390x)

3. ¿Cuáles de las siguientes afirmaciones son verdaderas acerca de la nueva


administración de memoria en Red Hat Enterprise Linux 8? (Elija dos opciones).
a. La capacidad de direccionamiento de la memoria se ha ampliado a una memoria virtual/
física de 52/57 bits.
b. El direccionamiento teórico máximo de memoria física es de hasta 8 PiB RAM.
c. La capacidad de direccionamiento de la memoria se ha ampliado a una memoria virtual/
física de 57/52 bits.
d. El direccionamiento teórico máximo de memoria física es de hasta 4 PiB RAM.

4. ¿Cuáles de los siguientes parámetros del planificador de procesos con fecha límite son
compatibles con RHEL 8? (Elija tres opciones).
a. deadline
b. period
c. deadline_time
d. runtime

RH354-RHEL8.0-es-1-20190319 13
CAPÍTULO 1 | Vista previa de Red Hat Enterprise Linux 8

RESUMEN

En este capítulo, aprendió lo siguiente:

• La iniciativa de arquitecturas múltiples de Red Hat tiene que ver con proporcionar soporte de
software para una variedad de arquitecturas de procesadores y máquinas que funcionan con una
plataforma operativa común desarrollada en Red Hat Enterprise Linux.

• El kernel actualizado admite, entre otros, el direccionamiento físico de 52 bits hacia una
arquitectura ARM de 64 bits, paginación de 5 niveles y mecanismo Control Group v2.

• nftables reemplaza iptables como backend de firewalld.

• nmcli es la herramienta preferida para administrar la configuración de red.

• Chrony (chronyd) reemplaza por completo a ntpd como la implementación del servicio NTP

• Varios controladores de red obsoletos se han eliminado de RHEL 8.

• Una de las nuevas características Yum es el método de agrupación de paquetes llamado


modules.

• KVM ahora se establece de manera predeterminada en el modelo de hardware Q35 (proporciona


la emulación de hardware más nueva).

14 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2

INSTALACIÓN O
ACTUALIZACIÓN DE RED HAT
ENTERPRISE LINUX 8
META Instalar RHEL 8 o actualizar un sistema existente
de RHEL 7 a RHEL 8.

OBJETIVOS • Instalar RHEL 8 en un nuevo servidor.


• Actualizar un servidor RHEL 7 existente a
RHEL 8.

SECCIONES • Instalación de Red Hat Enterprise Linux 8 (y


ejercicio guiado)
• Actualización de servidores a Red Hat
Enterprise Linux 8 (y cuestionario)

RH354-RHEL8.0-es-1-20190319 15
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

INSTALACIÓN DE RED HAT ENTERPRISE


LINUX 8

OBJETIVOS
Tras finalizar esta sección, los estudiantes deberán ser capaces de instalar RHEL 8 en un nuevo
servidor.

ESTRUCTURA DEL REPOSITORIO


Red Hat Enterprise Linux ha cambiado la forma en que los paquetes se dividen en canales o
repositorios. Los paquetes se reorganizan en los repositorios del sistema operativo base (BaseOS)
y flujo de aplicaciones (AppStream). Los repositorios para propósitos especiales también se
reestructuran para admitir el nuevo AppStream y los contextos modulares.

Repositorios y contenido de RHEL 8

• BaseOS: paquetes necesarios para la instalación mínima del sistema operativo.


• AppStream: la mayoría de los otros paquetes, excepto los que requieren derechos sobre los
complementos.
• CodeReady Linux Builder: paquetes que proporcionan un lenguaje de programación de
dependencias en tiempo de compilación; usado por los desarrolladores de aplicaciones.
• Se eliminaron los repositorios Extras y Opcionales. El diseño de AppStream hace que los
repositorios adicionales sean innecesarios. Los paquetes se movieron a AppStream o se
descartaron. Los paquetes descartados podrían terminar en EPEL.
• Suplementario: existe y conserva el mismo rol en RHEL 8.
• Existen repositorios para los complementos Alta Disponibilidad, Almacenamiento Flexible,
Tiempo Real y Tiempo Real para NFV. Productos complementarios requieren derechos
adicionales.

ESTRUCTURA DE LOS MEDIOS DE INSTALACIÓN


Las opciones de medios de instalación determinan el método para iniciar una instalación. Las
opciones de medios siguen siendo las mismas que en las versiones anteriores de RHEL. Los
cambios en el repositorio determinan desde dónde se instalan los paquetes. La modularidad
de AppStream cambia la forma en que los paquetes se agrupan y se superponen en el sistema
operativo base.

Formatos de medios de instalación disponibles

• Netboot ISO: contiene solo el instalador Anaconda. Este método requiere una red configurada
para acceder a los repositorios de paquetes disponibles mediante HTTP, FTP o NFS.
• DVD binario: contiene Anaconda y los repositorios de BaseOS y AppStream.
• Imagen QCOW2: disco del sistema creado previamente, listo para implementarse como una
máquina virtual en la nube o en entornos virtuales.

MODULARIDAD DE PAQUETES
Red Hat Enterprise Linux 8 trae algunas incorporaciones en las capacidades de gestión de
paquetes.

16 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

Módulos
Yum usa un nuevo método de agrupación de paquetes llamado modules. Un módulo es un conjunto
de paquetes RPM que forman un perfil de aplicación.

Características del módulo

• Los módulos se pueden instalar independientemente de la versión principal del sistema


operativo subyacente.
• El diseño del sistema de módulos es compatible con múltiples versiones de una aplicación
simultáneamente.
• Los módulos pueden contener varios flujos que disponibilizan múltiples versiones de la
aplicación a instalar.
• Un flujo representa una versión de la aplicación sustancialmente diferente de las versiones
anteriores.
• Se puede crear un flujo cuando una nueva versión de la aplicación no es compatible con
versiones anteriores.
• La instalación de un flujo reemplaza por completo al flujo instalado anteriormente, ya sea como
una actualización o degradación. Compare esto con la actualización de un paquete de la versión
anterior, que agrega o elimina solo los archivos de paquetes modificados.

Por ejemplo, podría instalar el flujo de Perl 5.24, y aunque los paquetes de Perl 5.26 están
disponibles, no se incluirán ni se aplicarán actualizaciones. Puede cambiar al flujo Perl 5.26 en
cualquier momento. La característica del módulo reemplaza al producto Colecciones de Software
de Red Hat.

La especificación de nomenclatura del módulo completo toma la forma


name:stream:version:context:architecture/profile. Se pueden usar especificaciones
más cortas cuando los valores predeterminados son aceptables.

Especificación de nomenclatura del módulo

• name
• name:stream
• name:stream:version
• Cualquiera de las especificaciones anteriores con ::architecture anexado.
• name:stream:version:context:architecture
• Cualquiera de las especificaciones anteriores con /profile anexado.

DESCRIPCIÓN DE LA CONFIGURACIÓN DE SYSTEM


PURPOSE (PROPÓSITO DEL SISTEMA)
El cuadro de diálogo de configuración System Purpose (Propósito del sistema) es una nueva
función de instalación que asigna derechos de sistema precisos para que coincidan con el uso
previsto del sistema.

RH354-RHEL8.0-es-1-20190319 17
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

Figura 2.1: El cuadro de diálogo System Purpose (Propósito del sistema)

Cuadro de diálogo System Purpose (Propósito del sistema)

• Role: elección del servidor, estación de trabajo, nodo de cómputo o cliente.


• Service Level Agreement: el nivel de soporte que necesita este sistema.
• Usage: elección de producción, desarrollo o recuperación ante desastres.
• Estas opciones determinan cómo se manejan los archivos adjuntos de suscripción y el consumo
de derechos durante la instalación.

Directivas de Kickstart de System Purpose (Propósito del sistema)

• syspurpose --role=
• syspurpose --sla=
• syspurpose --usage=

REFERENCIAS
Para obtener más información, consulte la guía Instalación e implementación de
RHEL en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/

Presentación de CodeReady Linux Builder


https://developers.redhat.com/blog/2018/11/15/introducing-codeready-linux-
builder/

Presentación de flujos de aplicaciones en RHEL 8


https://developers.redhat.com/blog/2018/11/15/rhel8-introducing-appstreams/

18 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

EJERCICIO GUIADO

INSTALACIÓN DE RED HAT ENTERPRISE


LINUX 8
En este ejercicio, instalará manualmente RHEL 8 en una máquina virtual limpia usando
Anaconda.

RESULTADOS
Debe ser capaz de instalar manualmente Red Hat Enterprise Linux 8.

ANDES DE COMENZAR
El medio de instalación ISO ya se ha adjuntado a serverc.

Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab install-installation start.

[student@workstation ~]$ lab install-installation start

1. Localice el icono de la consola serverc, según corresponda para el entorno del aula.
Encienda serverc y abra la consola. El servidor está desinstalado y está preconfigurado
para iniciarse desde una instalación virtual de arranque ISO.

2. Desde el menú de arranque de los medios de instalación, use las teclas de flecha para
seleccionar Install Red Hat Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0).

3. Seleccione el idioma correspondiente de los idiomas disponibles y, luego, haga clic en


Continue (Continuar).

4. Use la partición automática en el disco predeterminado.

4.1. Haga clic en Installation Destination (Destino de la instalación).

4.2. Haga clic en Done (Listo) para usar la opción predeterminada de particionamiento
automático.

5. Establezca el nombre de host del servidor en serverc.lab.example.com, y habilite y


configure la única interfaz de red.

5.1. Haga clic en Network & Host Name (Nombre del host y de la red).

5.2. En el campo Host Name (Nombre de host), ingrese serverc.lab.example.com.

5.3. Haga clic en Apply (Aplicar).

5.4. Haga clic en Configure (Configurar) y, luego, haga clic en la pestaña IPv4 Settings
(Configuración de IPv4).

RH354-RHEL8.0-es-1-20190319 19
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

5.5. Seleccione Manual.

5.6. Haga clic en Add (Agregar).

5.7. En el campo Address (Dirección), ingrese 172.25.250.12.

5.8. En el campo Netmask (Máscara de red), ingrese 255.255.255.0. Como alternativa,


puede especificar la máscara en la notación CIDR: 24.

5.9. En el campo Gateway (Puerta de enlace), ingrese 172.25.250.254.

5.10. En el campo DNS servers (Servidores DNS), ingrese 172.25.250.254.

5.11. Haga clic en Save (Guardar).

5.12. Habilite la interfaz de red configurando ON/OFF en ON.

5.13. Haga clic en Done (Listo).

6. Configure el campo Installation Source (Fuente de instalación) en http://


content.example.com/rhel8.0/x86_64/dvd.

6.1. Haga clic en Installation Source (Fuente de instalación).

6.2. En el campo http://, escriba content.example.com/rhel8.0/x86_64/dvd.

6.3. Haga clic en Done (Listo).

7. Desactive Kdump.

7.1. Haga clic en KDUMP.

7.2. Desmarque Enable kdump (Habilitar kdump).

7.3. Haga clic en Done (Listo).

8. Seleccione el software requerido para ejecutar un servidor web básico.

8.1. Haga clic en Software Selection (Selección de software).

8.2. Seleccione Server (Servidor) de la lista de entorno base.

8.3. Seleccione Basic Web Server (Servidor web básico) desde la lista de complementos.

8.4. Haga clic en Done (Listo).

9. Configure el propósito del sistema.

9.1. Haga clic en System Purpose (Propósito del sistema).

9.2. Seleccione el rol Red Hat Enterprise Linux Server.

9.3. Seleccione un nivel de SLA de Self-Support (Autosoporte).

9.4. Seleccione un uso de Development/Test (Desarrollo/Prueba).

9.5. Haga clic en Done (Listo).

20 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

10. Haga clic en Begin Installation (Comenzar la instalación).

11. Mientras la instalación avanza, establezca la contraseña para root en redhat.

11.1. Haga clic en Root Password (Contraseña root).

11.2. Ingrese redhat en el campo Root Password (Contraseña de root).

11.3. Ingrese redhat en el campo Confirm (Confirmar).

11.4. La contraseña es débil, por lo que tendrá que hacer clic en Done (Listo) dos veces.

12. Mientras la instalación avanza, agregue el usuario student.

12.1. Haga clic en User Creation (Creación de usuario).

12.2. Ingrese student en el campo Full Name (Nombre completo).

12.3. Marque Make this user administrator (Hacer administrador a este usuario).

12.4. Ingrese student en el campo Password (Contraseña).

12.5. Ingrese student en el campo Confirm (Confirmar).

12.6. La contraseña es débil, por lo que tendrá que hacer clic en Done (Listo) dos veces.

13. Cuando la instalación esté completa, haga clic en Reboot (Reiniciar).

14. Si el sistema vuelve a arrancar desde el medio de instalación, presione Esc; luego, escriba
local y presione Enter (Intro). Alternativamente, seleccione Troubleshooting (Solución
de problemas) y, luego, Boot from local drive (Arrancar desde disco local).

15. Cuando el sistema muestre el aviso de inicio de sesión, inicie sesión como student con la
contraseña student.

Limpieza
En workstation, ejecute lab install-installation finish para limpiar los recursos
creados para este ejercicio.

[student@workstation ~]$ lab install-installation finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 21
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

ACTUALIZACIONES DE SERVIDORES A
RED HAT ENTERPRISE LINUX 8

OBJETIVOS
Tras finalizar esta sección, los estudiantes deberán ser capaces de actualizar el servidor RHEL 7
existente a RHEL 8.

DESCRIPCIÓN DE LEAPP
LeApp es un marco (framework) extensible diseñado para ayudar a los administradores con la
modernización de aplicaciones. Es compatible con Red Hat Enterprise Linux, CentOS y Fedora, y es
el método preferido para actualizaciones incorporadas de RHEL 7 a RHEL 8.

Marco (framework) de modernización de LeApp

• Permite a los usuarios modernizar las cargas de trabajo existentes sin interrumpirlas.
• Tres métodos: actualizar en el lugar, migrar a un nuevo lugar o colocarlas en contenedor.
• Arquitectura modular diseñada para reemplazar la herramienta del asistente previo a la
actualización.
• Las diversas estrategias de migración y la lógica específica de la aplicación se mantienen en
complementos (plug-ins) o módulos independientes.
• LeApp utiliza sistemas de mensajería para pasar datos entre los actores. La ejecución de los
actores depende de los datos producidos por otros actores que se ejecutan antes que ellos.

LeApp es una arquitectura modular de nuevo diseño para reemplazar la herramienta del asistente
previo a la actualización, cuya arquitectura es demasiado restrictiva para la complejidad de los
requisitos modernos de actualización de aplicaciones. Un resolvedor de dependencias producirá
un gráfico de dependencia para satisfacer esos requisitos, es decir, conectar los puertos de salida
a los puertos de entrada apropiados. La implementación de actores se realiza en una shell, con
un contenedor de Python para presentar la interfaz adecuada para el marco (framework) (basado
en Python). Las partes de la terminal se ejecutan usando Ansible (como módulos Ansible) y usan
JSON para la comunicación.

La información sobre las diversas estrategias de migración y la lógica específica de la aplicación se


mantiene en complementos (plug-ins) o módulos independientes en lugar de hacerlo en archivos
fuente únicos. Los complementos (plug-ins) y módulos pueden ser mantenidos por expertos en
una aplicación en particular, independientemente del mantenimiento de la aplicación principal
(core) de LeApp. LeApp resuelve limitaciones del asistente previo a la actualización al agregar
dependencias de módulos y métodos para el paso de información entre módulos. LeApp utiliza
sistemas de mensajería para pasar datos entre los actores. La ejecución de los actores depende de
los datos producidos por otros actores que se ejecutan antes que ellos. Esto contrasta con Ansible,
donde los parámetros deben especificarse en la guía antes de la ejecución.

Componentes de LeApp

• Workflow: describe todo el proceso de actualización.


• Phase: una sección del flujo de trabajo dedicada a una parte específica de la actualización.
• Stage: las fases se dividen en etapas, Antes, Principal y Después.
• Actor: un paso en el flujo de trabajo que realiza una tarea. Los actores se pueden etiquetar, lo
que permite que el marco (framework) los incluya automáticamente en un flujo de trabajo.
• Tag: permite al marco (framework) ubicar y ejecutar actores.

22 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

• Message: usado para transferir información entre actores.


• Model: define la estructura de los datos enviados en los mensajes. Los modelos usan Temas para
agrupar los datos.
• Topic: define el área temática para los datos del modelo.
• Repository: contiene las definiciones de todos los actores, etiquetas, temas y flujos de trabajo.

Figura 2.2: Visión general de la arquitectura de LeApp

Estado de LeApp
LeApp se encuentra en pleno desarrollo y actualmente no es adecuado para todas las
actualizaciones.

Limitaciones de LeApp

• Actualmente, LeApp solo funciona en instalaciones mínimas de Red Hat Enterprise Linux 7.
• LeApp solo admite sistemas con interfaces de red únicas; no hay puentes, vínculos ni equipos.
• LeApp solo admite sistemas con configuraciones de almacenamiento simples; no RAID, múltiples
rutas, UEFI ni cifrado.
• LeApp no tiene soporte para productos en capas, pero cualquier experto puede redactar los
módulos.
• La única arquitectura admitida es x86_64.

DEMOSTRACIÓN: ACTUALIZACIÓN DEL SISTEMA


USANDO LEAPP
Figura 2.2: Actualización a Red Hat Enterprise Linux 8 con LeApp

RH354-RHEL8.0-es-1-20190319 23
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

REFERENCIAS
Documentación de LeApp
https://leapp.readthedocs.io/en/latest/index.html

LeApp: marco (framework) de actualización del sistema operativo y la


aplicación
https://oamg.github.io/leapp/

24 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

CUESTIONARIO

ACTUALIZACIONES DE SERVIDORES A
RED HAT ENTERPRISE LINUX 8
Elija las respuestas correctas para las siguientes preguntas:

1. ¿Cuáles de las siguientes opciones son actualmente limitaciones de LeApp? (Elija tres
opciones).
a. No admite interfaces de red vinculadas.
b. No admite volúmenes cifrados.
c. Solo admite x86_64 y la serie IBM Z.
d. No hay soporte para productos en capas.
e. Solo es compatible con sistemas que usan paquetes de los canales rhel-7-server-rpms y
rhel-7-server-optional-rpms.

2. ¿Cuáles de las siguientes opciones son componentes de LeApp? (Elija cinco opciones).
a. Suscriptor
b. Tema
c. Etapa
d. Fase
e. Consumidor
f. Actor
g. Flujo de trabajo

3. ¿Cuáles de las siguientes opciones son sistemas operativos compatibles con LeApp?
(Elija tres opciones).
a. Fedora
b. SuSE
c. CentOS
d. Ubuntu
e. Debian
f. Red Hat Enterprise Linux

RH354-RHEL8.0-es-1-20190319 25
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

SOLUCIÓN

ACTUALIZACIONES DE SERVIDORES A
RED HAT ENTERPRISE LINUX 8
Elija las respuestas correctas para las siguientes preguntas:

1. ¿Cuáles de las siguientes opciones son actualmente limitaciones de LeApp? (Elija tres
opciones).
a. No admite interfaces de red vinculadas.
b. No admite volúmenes cifrados.
c. Solo admite x86_64 y la serie IBM Z.
d. No hay soporte para productos en capas.
e. Solo es compatible con sistemas que usan paquetes de los canales rhel-7-server-rpms y
rhel-7-server-optional-rpms.

2. ¿Cuáles de las siguientes opciones son componentes de LeApp? (Elija cinco opciones).
a. Suscriptor
b. Tema
c. Etapa
d. Fase
e. Consumidor
f. Actor
g. Flujo de trabajo

3. ¿Cuáles de las siguientes opciones son sistemas operativos compatibles con LeApp?
(Elija tres opciones).
a. Fedora
b. SuSE
c. CentOS
d. Ubuntu
e. Debian
f. Red Hat Enterprise Linux

26 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

TRABAJO DE LABORATORIO

INSTALACIÓN O ACTUALIZACIÓN DE
RED HAT ENTERPRISE LINUX 8

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, instalará un sistema Red Hat Enterprise Linux 8.

RESULTADOS
Debe ser capaz de instalar RHEL 8 desde los medios de instalación ISO y personalizarlo
según sea necesario.

ANDES DE COMENZAR
El medio de instalación ISO ya se ha adjuntado a serverc.

Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab install-review start.

[student@workstation ~]$ lab install-review start

NOTA
Si realizó el ejercicio guiado de instalación de RHEL 8 anteriormente en
este capítulo, restablezca la máquina virtual serverc de nuevo al valor
predeterminado.

1. Localice el icono de la consola serverc, según corresponda para el entorno del aula.
Encienda serverc y abra la consola. El servidor está desinstalado y está preconfigurado para
iniciarse desde una instalación virtual de arranque ISO.
2. Desde el menú de arranque de los medios de instalación, use las teclas de flecha para
seleccionar Install Red Hat Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0).
3. Seleccione el idioma correspondiente de los idiomas disponibles y, luego, haga clic en
Continue (Continuar).
4. Configure el disco del sistema usando LVM con un volumen / (root [raíz]) de 10 GiB, /
boot de 1 GiB y /home usando el espacio libre restante.
5. Establezca el nombre de host del servidor en serverc.lab.example.com, y habilite y
configure la única interfaz de red. Agregue el dominio de búsqueda adicional example.net.
Use la siguiente información:

CAMPO VALOR

Dirección IP 172.25.250.12

RH354-RHEL8.0-es-1-20190319 27
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

CAMPO VALOR

Máscara de red 255.255.255.0

Puerta de enlace 172.25.250.254

Servidor DNS 172.25.250.254

Dominio de búsqueda example.net

Nombre de host serverc.lab.example.com

6. Configure Installation Source (Fuente de instalación) en http://content.example.com/


rhel8.0/x86_64/dvd.
7. Seleccione el software requerido para ejecutar un escritorio gráfico con un entorno de
desarrollo básico.
8. Configure el propósito del sistema como estación de trabajo Red Hat Enterprise Linux, con
Auto-Soporte, para uso de desarrolladores.
9. Haga clic en Begin Installation (Comenzar la instalación).
10. Mientras la instalación avanza, establezca la contraseña para root en redhat.
11. Mientras la instalación avanza, agregue el usuario administrativo lab con la contraseña
redhat.
12. Cuando la instalación esté completa, haga clic en Reboot (Reiniciar).
13. Asegúrese de que el sistema arranque desde el disco local.
14. Acepte el acuerdo de licencia de usuario final (EULA); luego, haga clic en Continue
(Continuar).
15. Cuando el sistema muestre el aviso de inicio de sesión, inicie sesión como lab con la
contraseña de redhat.

Limpieza
En workstation, ejecute lab install-review finish para limpiar los recursos creados
para este ejercicio.

[student@workstation ~]$ lab install-review finish

Esto concluye el trabajo de laboratorio.

28 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

SOLUCIÓN

INSTALACIÓN O ACTUALIZACIÓN DE
RED HAT ENTERPRISE LINUX 8

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, instalará un sistema Red Hat Enterprise Linux 8.

RESULTADOS
Debe ser capaz de instalar RHEL 8 desde los medios de instalación ISO y personalizarlo
según sea necesario.

ANDES DE COMENZAR
El medio de instalación ISO ya se ha adjuntado a serverc.

Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab install-review start.

[student@workstation ~]$ lab install-review start

NOTA
Si realizó el ejercicio guiado de instalación de RHEL 8 anteriormente en
este capítulo, restablezca la máquina virtual serverc de nuevo al valor
predeterminado.

1. Localice el icono de la consola serverc, según corresponda para el entorno del aula.
Encienda serverc y abra la consola. El servidor está desinstalado y está preconfigurado para
iniciarse desde una instalación virtual de arranque ISO.
2. Desde el menú de arranque de los medios de instalación, use las teclas de flecha para
seleccionar Install Red Hat Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0).
3. Seleccione el idioma correspondiente de los idiomas disponibles y, luego, haga clic en
Continue (Continuar).
4. Configure el disco del sistema usando LVM con un volumen / (root [raíz]) de 10 GiB, /
boot de 1 GiB y /home usando el espacio libre restante.

4.1. Haga clic en Installation Destination (Destino de la instalación).

4.2. Seleccione Custom (Personalizado) y, luego, haga clic en Done (Listo). Esto inicia el
cuadro de diálogo Manual Partitioning (Particionamiento manual).

4.3. Asegúrese de que el esquema de partición esté establecido en LVM.

RH354-RHEL8.0-es-1-20190319 29
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

4.4. Haga clic en Click here to create them automatically (Haga clic aquí para crearlos
automáticamente) para generar el conjunto estándar de puntos de montaje.

4.5. Seleccione el punto de montaje / y cambie el valor de Desired Capacity (Capacidad


deseada) a 10 GiB.

4.6. El punto de montaje /boot no debe requerir ningún cambio.

4.7. Haga clic en + para agregar un punto de montaje. Ingrese /home para Mount Point
(Punto de montaje) o selecciónelo de la lista. Deje Desired Capacity (Capacidad
deseada) en blanco y se le debe asignar el espacio libre restante. Haga clic en Add
mount point (Agregar punto de montaje).

4.8. Haga clic en Done (Listo) para mostrar el cuadro de diálogo Summary of Changes
(Resumen de cambios). Haga clic en Accept Changes (Aceptar cambios).
5. Establezca el nombre de host del servidor en serverc.lab.example.com, y habilite y
configure la única interfaz de red. Agregue el dominio de búsqueda adicional example.net.
Use la siguiente información:

CAMPO VALOR

Dirección IP 172.25.250.12

Máscara de red 255.255.255.0

Puerta de enlace 172.25.250.254

Servidor DNS 172.25.250.254

Dominio de búsqueda example.net

30 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

CAMPO VALOR

Nombre de host serverc.lab.example.com

5.1. Haga clic en Network & Host Name (Nombre del host y de la red).

5.2. En el campo Host Name (Nombre de host), ingrese serverc.lab.example.com.

5.3. Haga clic en Apply (Aplicar).

5.4. Haga clic en Configure (Configurar); luego, haga clic en la pestaña IPv4 Settings
(Configuración de IPv4).

5.5. Seleccione Manual.

5.6. Haga clic en Add (Agregar).

5.7. En el campo Address (Dirección), ingrese 172.25.250.12.

5.8. En el campo Netmask (Máscara de red), ingrese 255.255.255.0.

5.9. En el campo Gateway (Puerta de enlace), ingrese 172.25.250.254.

5.10. En el campo DNS servers: (Servidores DNS:), ingrese 172.25.250.254.

5.11. Agregue example.net en el campo Search domains (Dominios de búsqueda).

5.12. Haga clic en Save (Guardar).

5.13. Habilite la interfaz de red configurando ON/OFF en ON.

5.14. Haga clic en Done (Listo).


6. Configure Installation Source (Fuente de instalación) en http://content.example.com/
rhel8.0/x86_64/dvd.

6.1. Haga clic en Installation Source (Fuente de instalación).

6.2. En el campo http://, ingrese content.example.com/rhel8.0/x86_64/dvd.

6.3. Haga clic en Done (Listo).


7. Seleccione el software requerido para ejecutar un escritorio gráfico con un entorno de
desarrollo básico.

7.1. Haga clic en Software Selection (Selección de software).

7.2. Seleccione Workstation (Estación de trabajo) de la lista de entorno base.

7.3. Seleccione Development Tools (Herramientas de desarrollo) de la lista de


complementos.

7.4. Haga clic en Done (Listo).

RH354-RHEL8.0-es-1-20190319 31
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

8. Configure el propósito del sistema como estación de trabajo Red Hat Enterprise Linux, con
Auto-Soporte, para uso de desarrolladores.

8.1. Haga clic en System Purpose (Propósito del sistema).

8.2. Seleccione un rol de Red Hat Enterprise Linux Workstation.

8.3. Seleccione un nivel de SLA de Self-Support (Autosoporte).

8.4. Seleccione un uso de Development/Test (Desarrollo/Prueba).

8.5. Haga clic en Done (Listo).


9. Haga clic en Begin Installation (Comenzar la instalación).
10. Mientras la instalación avanza, establezca la contraseña para root en redhat.

10.1. Haga clic en Root Password (Contraseña root).

10.2. Ingrese redhat en el campo Root Password (Contraseña root).

10.3. Ingrese redhat en el campo Confirm (Confirmar).

10.4. La contraseña es débil, por lo que tendrá que hacer clic en Done (Listo) dos veces.
11. Mientras la instalación avanza, agregue el usuario administrativo lab con la contraseña
redhat.

11.1. Haga clic en User Creation (Creación del usuario).

11.2. Ingrese lab en el campo Full Name (Nombre completo).

11.3. Seleccione Make this user administrator (Hacer administrador a este usuario).

11.4. Ingrese redhat en el campo Password (Contraseña).

11.5. Ingrese redhat en el campo Confirm (Confirmar).

11.6. La contraseña es débil, por lo que tendrá que hacer clic en Done (Listo) dos veces.
12. Cuando la instalación esté completa, haga clic en Reboot (Reiniciar).
13. Asegúrese de que el sistema arranque desde el disco local.

13.1. Si el sistema vuelve a arrancar desde el medio de instalación, presione Esc y,


luego, escriba local y presione Enter (Intro). Alternativamente, seleccione
Troubleshooting (Solución de problemas) y Boot from local drive (Arrancar desde
disco local).
14. Acepte el acuerdo de licencia de usuario final (EULA); luego, haga clic en Continue
(Continuar).

14.1. Haga clic en License Information (Información de licencia).

14.2. Seleccione I accept the license agreement (Acepto el contrato de licencia).

14.3. Haga clic en Done (Listo).

14.4. Haga clic en Finish Configuration (Finalizar configuración).


15. Cuando el sistema muestre el aviso de inicio de sesión, inicie sesión como lab con la
contraseña de redhat.

32 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

Limpieza
En workstation, ejecute lab install-review finish para limpiar los recursos creados
para este ejercicio.

[student@workstation ~]$ lab install-review finish

Esto concluye el trabajo de laboratorio.

RH354-RHEL8.0-es-1-20190319 33
CAPÍTULO 2 | Instalación o actualización de Red Hat Enterprise Linux 8

RESUMEN

En este capítulo, aprendió lo siguiente:

• Los repositorios de software para RHEL 8 se han reestructurado y la mayoría de los paquetes se
alojan en los repositorios de BaseOS y AppStream.

• La última versión de Yum admite módulos, que permiten que las aplicaciones tengan un ciclo de
vida diferente al del sistema operativo.

• El último instalador Anaconda tiene una nueva función llamada System Purpose (Propósito del
sistema), que automatiza la selección de los derechos del sistema.

• La nueva herramienta de actualización del sistema es el marco (framework) de LeApp.


Actualmente, está en desarrollo y tiene varias limitaciones.

34 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3

APROVISIONAMIENTO
Y CONFIGURACIÓN DE
SERVIDORES
META Identificar nuevas utilidades y herramientas de
gestión de paquetes y sistemas.

OBJETIVOS • Realizar tareas de administración de paquetes


con la nueva versión de yum basada en DNF.
• Realizar la administración local y remota de
servidores con la utilidad Cockpit.
• Crear varios tipos de imágenes del sistema con
la nueva utilidad Composer.
• Escribir Ansible Playbooks para automatizar
operaciones comunes, usando Roles de
Sistema de RHEL incluidos con Red Hat
Enterprise Linux.

SECCIONES • Administración de paquetes con Yum (y


ejercicio guiado)
• Administración de servidores con Cockpit (y
ejercicio guiado)
• Elaboración de imágenes del sistema con
Composer (y ejercicio guiado)
• Automatización con Roles de Sistema de RHEL
(y ejercicio guiado)

TRABAJO DE Aprovisionamiento y configuración de servidores


LABORATORIO

RH354-RHEL8.0-es-1-20190319 35
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

ADMINISTRACIÓN DE PAQUETES CON


YUM

OBJETIVOS
Después de completar esta sección, los estudiantes deben ser capaces de realizar tareas de
administración de paquetes con la nueva versión de yum basada en DNF.

USO DE YUM V4
Red Hat Enterprise Linux 8 incluye la versión 4 de la utilidad yum, que usa la tecnología DNF como
back-end. Aunque el back-end de la versión 4 de yum ha cambiado, las opciones típicas para el
comando siguen siendo las mismas.

Tecnología DNF en Yum v4

• DNF reemplaza a YUM como la tecnología de administración de paquetes para paquetes RPM en
Red Hat Enterprise Linux 8.
• La API DNF mejora la integración y resuelve los problemas de estabilidad de la API Yum v3.
• Yum v4 incluye la nueva funcionalidad proporcionada por DNF.
• El comando recomendado yum es un vínculo a dnf.

Mejoras en Yum v4

• Admite módulos que habilitan el software AppStreams.


• Ahora entiende las dependencias débiles y booleanas.
• Proporciona una colección más amplia de complementos (plug-ins) y herramientas adicionales.
• Mejora el rendimiento de Yum, que es clave para las cargas de trabajo de contenedores, CI/CD y
la nube.

Módulos, secuencias y perfiles


Un módulo es una colección de paquetes que se instalan juntos. Los módulos resuelven los
problemas de dependencias de las versiones de paquetes más antiguas o más nuevas. Un módulo
puede incluir una o más secuencias, que son versiones diferentes del software proporcionadas
por el módulo. Un módulo tiene una sola secuencia activa a la vez, de manera predeterminada,
la secuencia que contiene la última versión del software. Los módulos también incluyen perfiles,
que son una lista de paquetes que admiten un caso de uso, por ejemplo, para implementar una
instalación mínima.

REFERENCIAS
Para obtener más información, consulte el capítulo Instalación de software con yum
de la Guía de configuración básica de sistemas de Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_basic_system_settings/

36 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

EJERCICIO GUIADO

ADMINISTRACIÓN DE PAQUETES CON


YUM
En este ejercicio, administrará paquetes de software y secuencias de módulos con Yum.

RESULTADOS
Debe ser capaz de administrar las versiones de software instaladas con Yum.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. Use SSH para
iniciar sesión en el sistema servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1. Yum v4 conserva las funciones anteriores y agrega otras nuevas.

1.1. Use yum install postgresql para instalar el paquete predeterminado de


PostgreSQL 10 y sus dependencias.

[root@servera ~]# yum install postgresql

1.2. Use yum remove postgresql para quitar el paquete predeterminado de


PostgreSQL 10 y las dependencias que se agregaron.

[root@servera ~]# yum remove postgresql

2. Yum v4 ahora proporciona las funciones de módulo y secuencia para instalar y modificar
grupos de paquetes.

2.1. Use yum module list para enumerar los módulos y las secuencias disponibles.

[root@servera ~]# yum module list

2.2. Use yum module install postgresql:9.6 para instalar el módulo


PostgreSQL y la secuencia específica.

[root@servera ~]# yum module install postgresql:9.6

2.3. Use yum module install postgresql:10 para actualizar la secuencia vigente
a Postgresql 10.

RH354-RHEL8.0-es-1-20190319 37
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

[root@servera ~]# yum module install postgresql:10

Esto concluye el ejercicio guiado.

38 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

ADMINISTRACIÓN DE SERVIDORES CON


COCKPIT

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de realizar la administración local y
remota de servidores con la utilidad Cockpit.

PRESENTACIÓN DE COCKPIT
Ha habido algunos cambios importantes en la forma en que los servidores con Red Hat Enterprise
Linux se pueden configurar y acceder de forma remota. Se eliminaron todas las herramientas
system-config-* que dependen de la interfaz gráfica de usuario. No se requiere configuración
manual, edición de archivos ni ejecución de comandos múltiples. Todos estos comandos o
herramientas se reemplazaron con Cockpit. Cockpit es una interfaz interactiva de administración
de servidores. Cockpit interactúa directamente con el sistema operativo desde una sesión real de
Linux en un explorador y reemplaza la necesidad de sesiones de reenvío cruzado.

Figura 3.1: Interfaz de Cockpit

Cockpit como herramienta de solución de problemas

• Gráficos de estadísticas del sistema en tiempo real


• Inspección y filtrado de eventos de syslog
• Configuración de SELinux y revisión de errores de control de acceso de SELinux
• Creación de informes de diagnóstico de Soporte de Red Hat
• Habilitación y configuración de volcados de memoria por error del kernel
• Ejecución de comandos desde una sesión de terminal

Cockpit como herramienta de administración

• Control de servicios del sistema en ejecución


• Configuración de interfaces de red y firewalld
• Administración de cuentas de usuario
• Monitoreo y configuración de dispositivos de almacenamiento.
• Administración de suscripciones del sistema y actualizaciones de software.
• Administración de máquinas virtuales y contenedores

RH354-RHEL8.0-es-1-20190319 39
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Si una característica que necesita no está disponible (por ejemplo, administración de iptables),
Cockpit se puede ampliar creando un nuevo complemento (plug-in).

ADMINISTRACIÓN BÁSICA DEL SISTEMA CON


COCKPIT

Operaciones básicas del sistema

• Apagado o reinicio del sistema


• Acceso a la información del hardware
• Cambio de perfiles de rendimiento
• Configuración de nombre de host
• Conexión a un dominio realmd

Figura 3.2: Cambio de perfil del sistema

Figura 3.3: Acceso a registros del sistema

40 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Figura 3.4: Cambio de configuración de red

Figura 3.5: Creación de cuentas de usuario nuevas

Figura 3.6: Control de servicios

RH354-RHEL8.0-es-1-20190319 41
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Figura 3.7: Creación de informe de diagnóstico

Figura 3.8: Registro de un sistema

Figura 3.9: Acceso a la terminal

42 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

REFERENCIAS
Para obtener más información, consulte la guía Gestión de sistemas con la interfaz
web de Cockpit en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/

Administración del sistema Linux a través de la consola de gestión: Cockpit


https://www.redhat.com/en/blog/linux-system-administration-management-
console-cockpit

Creación de complementos (plug-ins) para la interfaz de usuario de Cockpit


https://cockpit-project.org/blog/creating-plugins-for-the-cockpit-user-
interface.html

RH354-RHEL8.0-es-1-20190319 43
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

EJERCICIO GUIADO

ADMINISTRACIÓN DE SERVIDORES CON


COCKPIT
En este ejercicio, administrará un sistema remoto con la utilidad Cockpit.

RESULTADOS
Debe ser capaz de usar Cockpit para monitorear las funciones básicas del sistema,
inspeccionar los archivos de registro, crear un informe de diagnóstico, crear una cuenta de
usuario y acceder a la terminal.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. Use SSH para
iniciar sesión en el sistema servera con el usuario root.

[student@workstation ~]$ ssh root@servera

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. Cockpit ya está instalado en el sistema, pero no está activado. Habilite e inicie el servicio
Cockpit.

1.1. Use el comando systemctl enable cockpit.socket para habilitar el servicio


Cockpit.

[root@servera ~]# systemctl enable cockpit.socket


Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/
lib/systemd/system/cockpit.socket.

1.2. Use el comando systemctl start cockpit para iniciar el servicio Cockpit.

[root@servera ~]# systemctl start cockpit

2. En workstation, abra Firefox e inicie sesión en la interfaz de Cockpit que se ejecuta en


el sistema servera.lab.example.com como el usuario student con la contraseña
student.

2.1. Abra Firefox y vaya a la dirección https://servera.lab.example.com:9090.

2.2. Acepte el certificado autofirmado agregándolo como una excepción.

44 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

2.3. Inicie sesión como student con la contraseña student.


Ya ha iniciado sesión como usuario normal, solo con privilegios mínimos.

2.4. Haga clic en Terminal en la barra de navegación izquierda para acceder al terminal.
Se abre una sesión de terminal con la sesión del usuario student ya iniciada.
Escriba el comando id para confirmar que puede usar el terminal de forma remota
desde una sesión del explorador.

[student@servera ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
context=unconfined_u:unconfined_r:unconfined_t:s0

2.5. Haga clic en Accounts (Cuentas) en la barra de navegación izquierda para


administrar usuarios.
Tenga en cuenta que el usuario student no está autorizado a crear cuentas nuevas.

2.6. Haga clic en el vínculo Student User (Usuario estudiante).


En la página de detalles de cuenta del usuario student, observe que el usuario solo
puede establecer una nueva contraseña o agregar claves públicas SSH autorizadas.

2.7. Haga clic en el menú desplegable Student User (Usuario estudiante) en la esquina
superior derecha. En el menú desplegable, elija Log Out (Cerrar sesión).

3. Vuelva a iniciar sesión en la interfaz de Cockpit como el usuario student con student
como contraseña, pero esta vez marque la casilla Reuse my password for privileged tasks
(Reusar mi contraseña para tareas privilegiadas).
Tenga en cuenta que el usuario student ahora es un usuario Privileged (Privilegiado).
Algunas de las tareas administrativas que antes no estaban disponibles ahora están
disponibles y se pueden ejecutar con el mecanismo sudo.

4. Haga clic en System (Sistema) en la barra de navegación izquierda para acceder a las
estadísticas del sistema.
En esta página, se muestran algunas de las estadísticas básicas del sistema operativo, como
la carga actual, el uso del disco, las E/S del disco y el tráfico de red.

5. Haga clic en Logs (Registros) en la barra de navegación izquierda para acceder a los
registros del sistema.
En esta página, se muestran los registros del sistema de systemd. Puede elegir la fecha
en la que desea acceder a los registros, así como el tipo de gravedad de las entradas de
registro que busca.

5.1. Haga clic en el menú desplegable Severity (Gravedad) y elija Everything (Todo).

5.2. Revise las entradas de registro del día del mes en curso y haga clic en la que desea
ver. Se abrirá una página de detalles de entrada de registro con información adicional
sobre el evento. Aquí se muestran, por ejemplo, el nombre de host, el contexto de
SELinux o el número de PID del proceso al que corresponde la entrada.

RH354-RHEL8.0-es-1-20190319 45
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

6. Haga clic en Networking (Redes) en la barra de navegación izquierda.


En esta página, se muestran los detalles de la configuración de red actual para servera,
así como las estadísticas de red en tiempo real, la configuración de firewall y las entradas de
registro relacionadas con la red.

6.1. Haga clic en el vínculo Firewall.

6.2. Haga clic en Add Services... (Agregar servicios...).

6.3. En la ventana Add Services (Agregar servicios), haga clic en la casilla de verificación
del servicio de Red Hat Satellite 6.

6.4. Haga clic en Add Services para agregar este servicio a la configuración del firewall.
Observe que el servicio Red Hat Satellite 6 se agregó a la lista de servicios
permitidos.

6.5. En la misma línea que el servicio Red Hat Satellite 6, haga clic en el icono de papelera
para eliminar el servicio de la configuración del firewall.
Observe que el servicio se elimina sin pedir confirmación.

7. Haga clic en Networking (Redes) en la barra de navegación izquierda.


Observe que en la sección Interfaces puede agregar uniones, equipos, puentes o una VLAN
a ese servidor.

7.1. Haga clic en el nombre de la interfaz de red disponible (por ejemplo, ens3).
Se abre una página de detalles en la que se muestran estadísticas de red en tiempo
real y la configuración actual de la interfaz de red.

7.2. Haga clic en el vínculo Address 172.25.250.10/24 via 172.25.250.254 (Dirección


172.25.250.10/24 a través de 172.25.250.254).
Se abre una nueva ventana para cambiar la configuración de la interfaz de red.

8. Agregue una segunda dirección IP a la interfaz identificada en el paso anterior.

8.1. En la nueva ventana IPv4 Settings (Configuración de IPv4), haga clic en + junto a
Manual.

8.2. En el cuadro de texto Address (Dirección), ingrese 172.25.250.99 como la


segunda dirección IP.

8.3. En el cuadro de texto Prefix length or Netmask (Longitud del prefijo o máscara de
red), ingrese 24 como el valor de la máscara de red.

8.4. Haga clic en Apply (Aplicar) para guardar la nueva configuración de red.
La nueva configuración se aplica inmediatamente. La nueva dirección IP es visible en
la línea IPv4.

46 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

9. Haga clic en Accounts (Cuentas) en la barra de navegación izquierda.

9.1. Haga clic en Create New Account (Crear cuenta nueva).

9.2. En la nueva ventana Create New Account, complete los detalles de la siguiente
manera:

CAMPO VALOR

Full Name (Nombre completo) Sam Simons

User Name (Nombre de usuario) ssimons

Password (Contraseña) redh@t123

Confirm (Confirmar) redh@t123

9.3. Haga clic en Create (Crear).

10. Haga clic en Services (Servicios) en la barra de navegación izquierda.

10.1. Desplácese hacia abajo en la lista System Services (Servicios del sistema). Busque
y haga clic en el vínculo Software RAID monitoring and management (Monitoreo y
administración de RAID de software).
Para encontrar el servicio requerido dentro de Firefox, busque texto con la
combinación de teclas Ctrl+F .
En la página de detalles del servicio, se muestra que este se encuentra inactivo.

10.2. Haga clic en Start (Iniciar) para iniciar el servicio.


Este servicio no se inició porque falta el archivo de configuración /etc/
mdadm.conf.

10.3. En el panel izquierdo, haga clic en Services (Servicios).

10.4. Desplácese hacia abajo en la lista System Services (Servicios del sistema). En la
sección Disabled (Deshabilitado), busque y haga clic en el vínculo Kernel process
accounting (Contabilidad de procesos de kernel).

10.5. Haga clic en Enable (Habilitar).

10.6. Haga clic en Start (Iniciar).


El servicio ahora está habilitado y activo. Este servicio realiza un cambio por única
vez. Se inicia y se cierra.

11. Haga clic en Diagnostic Reports (Informes de diagnóstico) en la barra de navegación


izquierda.

11.1. Haga clic en Create Report (Crear informe) y espere a que se cree el informe (tarda
hasta dos minutos en terminar).

11.2. Cuando el informe esté listo, haga clic en Download report (Descargar informe) y,
luego, en Save File (Guardar archivo).

11.3. Haga clic en Close (Cerrar).

RH354-RHEL8.0-es-1-20190319 47
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

12. Haga clic en SELinux en la barra de navegación izquierda.


Observe los errores de control de acceso de SELinux. Según el entorno actual, es posible
que no haya ningún error. Si no, continúe con el paso siguiente.
Haga clic en cualquiera de los errores informados para acceder a información detallada
sobre el evento.
En la sección de detalles de cada evento, aplique la solución sugerida para resolver el
problema o haga clic en el icono de la papelera para eliminar la entrada de la lista, así como
para encontrar la entrada de registro de auditoría original para ese evento.

13. Agregue un sistema remoto al panel de Cockpit.

13.1. Haga clic en Terminal en la barra de navegación izquierda.


En servera.lab.example.com, instale el paquete cockpit-dashboard.

[student@servera ~]# sudo yum install cockpit-dashboard


[sudo] password for student: student
...output omitted...
Is this ok [y/N]: y
...output omitted...

13.2. Cierre sesión en la interfaz de Cockpit. Inicie sesión de nuevo como el usuario
student y con la contraseña student con la casilla de verificación de usuario
privilegiado marcada.
En la barra de navegación izquierda, ahora hay una nueva sección que representa el
panel.

13.3. Haga clic en Dashboard (Panel) en la barra de navegación izquierda.


Muestra gráficos en tiempo real para diversas estadísticas de
servera.lab.example.com.

13.4. Haga clic en +.

13.5. En la ventana Add Machine to Dashboard (Agregar máquina al panel), ingrese el


nombre de host serverb.lab.example.com.

13.6. Haga clic en Add (Agregar).

13.7. En la ventana Unknown Host Key (Clave de host desconocida), haga clic en Connect
(Conectar).
Ahora hay dos hosts en Dashboard. Use la misma interfaz de Cockpit
que se ejecuta en servera.lab.example.com para hacer cambios en
serverb.lab.example.com. Para pasar a otro servidor diferente, haga clic en el
nombre del servidor deseado en la lista Servers (Servidores) de Dashboard.

14. Cierre sesión en la interfaz de Cockpit.

15. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

48 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 49
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

ELABORACIÓN DE IMÁGENES DEL


SISTEMA CON COMPOSER

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de elaborar varios tipos de imágenes
del sistema con la nueva utilidad de composición.

COMPOSER
Composer es una nueva herramienta disponible en Red Hat Enterprise Linux 8 como vista previa
de tecnología. Permite que los administradores creen imágenes personalizadas del sistema de
Red Hat Enterprise Linux. Composer tiene una interfaz gráfica de usuario en Cockpit. También se
puede acceder desde un terminal con el comando composer-cli.

Formatos de salida de Composer

• Imagen QEMU QCOW2 (*.qcow2)


• Imagen del sistema de archivos Ext4 (*.img)
• Imagen de disco con particiones sin formato (*.img)
• ISO de arranque en vivo (*.iso)
• Colección de archivos TAR (*.tar)
• Disco de imagen de máquinas de Amazon (*.ami)
• Imagen de disco de n Azure (*.vhd)
• Disco de máquina virtual de VMware (*.vmdk)

PLANOS TÉCNICOS DE COMPOSER


Composer crea imágenes del sistema basadas en planos técnicos. Un plano técnico define la
imagen al enumerar paquetes, usuarios, claves SSH y otros recursos posibles que formarán parte
del sistema. Los planos técnicos están versionados y pueden editarse. Cuando se crea una nueva
imagen a partir de un plano técnico con Cockpit, la imagen se asocia al plano técnico.

Requisitos de sistema de Composer

• Máquina virtual dedicada con SELinux en modo permisivo


• CPU con 2 núcleos (cores)
• 4 GB de RAM
• 20 GiB de espacio en disco
• Conectividad a Internet y a otro servidor con duplicados de repositorio.

Figura 3.10: Interfaz de Composer

50 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Figura 3.11: Creación de un plano técnico

Figura 3.12: Personalización de un plano técnico

Figura 3.13: Confirmación de cambios

Figura 3.14: Creación de una nueva imagen

RH354-RHEL8.0-es-1-20190319 51
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

Figura 3.15: Nueva imagen completada

REFERENCIAS
Para obtener más información, consulte el capítulo Elaboración de imágenes del
sistema personalizadas con Composer de Instalación e implementación de RHEL en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/installing_and_deploying_rhel/#building-custom-system-images-
with-composer_graphical-installation

Lorax (proyecto fuente de Composer)


https://weldr.io/lorax/

52 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

EJERCICIO GUIADO

ELABORACIÓN DE IMÁGENES DEL


SISTEMA CON COMPOSER
En este ejercicio, elaborará una imagen del sistema con la utilidad Composer.

RESULTADOS
Debe ser capaz de usar Composer para crear imágenes del sistema.

1. Inicie sesión en workstation como student con la contraseña student. Desde un


terminal, use SSH para iniciar sesión en el sistema servera con el usuario root.

[student@workstation ~]$ ssh root@servera

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e inicie
sesión en Cockpit con un nuevo explorador. Este software está en beta.

2. En servera, instale Composer y el complemento (plug-in) Cockpit Composer.

2.1. Use el comando yum install lorax-composer composer-cli cockpit-


composer.

[root@servera ~]# yum install lorax-composer \


> composer-cli cockpit-composer
...output omitted...
Is this ok [y/N]: y
...output omitted...

2.2. Use el comando systemctl enable --now para habilitar e iniciar el servicio
Composer.

[root@servera ~]# systemctl enable --now lorax-composer.socket

3. En servera, establezca SELinux en modo permisivo. Anaconda requiere que SELinux


esté en modo permisivo para que la creación de imágenes funcione correctamente. Como
Composer instala una imagen completa del SO en un directorio alternativo, SELinux no
tiene reglas adecuadas para todos esos nombres de archivos y directorios alternativos.

[root@servera ~]# setenforce 0

RH354-RHEL8.0-es-1-20190319 53
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

4. En workstation, use Firefox para abrir la interfaz de Cockpit que se ejecuta en


servera.lab.example.com:9090. Inicie sesión como el usuario student y con la
contraseña student con la casilla de verificación de usuario privilegiado marcada.

5. Haga clic en Image Builder (Creador de imágenes) en la barra de navegación izquierda.


Image Builder estará disponible si inició sesión después de que se instalaron los paquetes,
porque Composer agrega objetos de interfaz recién instalados durante el inicio de sesión.

6. Cree una nueva imagen ISO de arranque con uno de los planos técnicos existentes.

6.1. Haga clic en el plano técnico example-development.


En esta página, se muestran los detalles del plano técnico ya creado que contiene un
servidor HTTP de ejemplo con soporte para PHP y MySQL.

6.2. Haga clic en la pestaña Images (Imágenes).


Aquí puede descargar imágenes completadas o ver el estado de las imágenes
creadas anteriormente.

6.3. Haga clic en Create Image (Crear imagen).

6.4. Haga clic en el menú Image Type (Tipo de imagen) y en la lista elija el tipo Live
Bootable ISO (.iso) (ISO de arranque en vivo [.iso]).

6.5. Haga clic en Create (Crear).


La nueva imagen aparece en la lista de imágenes disponibles. El proceso de creación
tarda alrededor de 10 minutos en completarse. Las solicitudes para crear imágenes
adicionales se agregan a la cola, por lo que es seguro pasar a los siguientes pasos.

6.6. Cuando se completa el proceso de creación de la imagen, la imagen se puede


descargar al sistema local, pero en este ejercicio no necesita tomarse un tiempo para
descargar el archivo ISO.

7. Cree un nuevo plano técnico personalizado con el paquete mc.

7.1. Use los vínculos de la parte superior de la página para regresar a la página Blueprints
(Planos técnicos).

7.2. Haga clic en Create Blueprint (Crear plano técnico).

7.3. En la ventana Create Blueprint (Crear plano técnico), ingrese rh-vm como el nombre
del plano técnico.

7.4. Haga clic en Create (Crear).

7.5. En el cuadro de búsqueda Filter by Name... (Filtrar por nombre...), ingrese el nombre
del paquete mc y presione Enter (Intro).

7.6. Desplácese hacia abajo en la lista de paquetes filtrados y haga clic en el icono + junto
al paquete mc.
El paquete mc se agrega al plano técnico.

7.7. Haga clic en Commit (Confirmar) para confirmar los cambios.

7.8. En la ventana Changes Pending Commit (Cambios pendientes de confirmación),


haga clic en Commit.

54 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

8. Use el nuevo plano técnico rh-vm para crear una nueva imagen QCOW2.

8.1. Use el vínculo de la barra de navegación superior para volver a la página Blueprints.

8.2. En la línea con el plano técnico rh-vm, haga clic en Create Image (Crear imagen).

8.3. Haga clic en el menú desplegable Image Type (Tipo de imagen) y seleccione QEMU
QCOW2 Image (.qcow2) (Imagen QEMU QCOW2 [.qcow2]).

8.4. Haga clic en Create (Crear).


El proceso de creación tarda alrededor de 10 minutos en completarse. Las solicitudes
para crear imágenes adicionales se agregan a la cola, por lo que es seguro pasar a
los siguientes pasos. Verifique el estado del proceso de creación haciendo clic en el
plano técnico rh-vm y, luego, en la pestaña Images (Imágenes).

8.5. Cuando se termina el proceso de creación de la imagen, la imagen se puede


descargar al sistema local. En este ejemplo, no es necesario que descargue el archivo
QCOW2.

9. Personalice el plano técnico rh-vm agregando el usuario student y la clave SSH


del estudiante a ese plano técnico. Para simplificar esta tarea y para evitar errores no
relacionados con el aprendizaje de Composer, este curso proporciona un archivo que
contiene información de usuario preconfigurada y una clave SSH de usuario.

9.1. En servera.lab.example.com, use el comando composer-cli blueprints


save BLUEPRINTNAME para exportar la configuración de planos técnicos a un
archivo. El nombre de archivo creado incluirá automáticamente .toml como su
extensión.

[root@servera ~]# composer-cli blueprints save rh-vm

9.2. Use wget para descargar las personalizaciones de plano técnico de custom.user
del servidor classroom.

[root@servera ~]# wget http://materials.example.com/labs/custom.user

9.3. Anexe la personalización del archivo custom.user al archivo de plano técnico rh-
vm.toml.

[root@servera ~]# cat custom.user >> rh-vm.toml

9.4. Revise el plano técnico modificado:

[root@servera ~]# cat rh-vm.toml


name = "rh-vm"
description = ""
version = "0.0.2"
modules = []
groups = []

[[packages]]
name = "mc"
version = "4.8.19"

RH354-RHEL8.0-es-1-20190319 55
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

[customizations]

[[customizations.user]]
name = "student"
password = "$6$C3w0glL853ygS8k7$QxoI50 ...output omitted... d5LDdi/dr0Zq1"
key = "ssh-rsa AAAAB3NzaC1yc2EAA ...output omitted... 6QuZf8f7aL LabGradingKey"
groups = ["users", "wheel"]

9.5. Envíe el archivo de plano técnico modificado de vuelta al servidor Composer.

[root@servera ~]# composer-cli blueprints push rh-vm.toml

9.6. Verifique que los cambios se hayan enviado al servidor Composer.

[root@servera ~]# composer-cli blueprints show rh-vm


name = "rh-vm"
description = ""
version = "0.0.2"
modules = []
groups = []

[[packages]]
name = "mc"
version = "4.8.19"

[customizations]

[[customizations.user]]
name = "student"
password = "$6$C3w0glL853 ...output omitted... 7xOdxd5LDdi/dr0Zq1"
key = "ssh-rsa AAAAB3Nza ...output omitted... QuZf8f7aL LabGradingKey"
groups = ["users", "wheel"]

9.7. Cree una nueva imagen de QCOW2 que contenga las modificaciones. Use el comando
composer-cli compose start BLUEPRINTNAME TYPE.

[root@servera ~]# composer-cli compose start rh-vm qcow2


Compose 36b17 ...output omitted... 8299b2 added to the queue

10. Use el comando composer-cli compose list para verificar el estado actual de la
compilación.

[root@servera ~]# composer-cli compose list


36b17126-3c1a-4abb-9235-b3748c8299b2 RUNNING rh-vm 0.0.4 qcow2
0ba76f6e-4acf-4909-a750-5676baac586d FINISHED example-development 0.0.1 live-iso
3a899344-3e5d-40b8-bf96-1d91d65f2054 FINISHED rh-vm 0.0.2 qcow2

La nueva imagen tiene un nuevo nombre con una versión correspondiente a la última
versión del plano técnico. El nombre de la imagen está asociado al plano técnico usado para
crearla.

56 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

11. Una vez terminada la compilación final, vuelva a configurar SELinux en el modo Enforcing
(Cumplimiento) en servera. Siempre vuelva a configurar el sistema de servidor Composer
en el modo Enforcing tan pronto como haya pasado la necesidad de usar el modo Permissive
(Permisivo).

[root@servera ~]# setenforce 1

12. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 57
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

AUTOMATIZACIÓN CON ROLES DE


SISTEMA DE RHEL

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de escribir Ansible Playbooks para
automatizar operaciones comunes, usando los Roles de Sistema de RHEL incluidos con Red Hat
Enterprise Linux.

ROLES DE SISTEMA DE RED HAT ENTERPRISE


LINUX 8
Red Hat Enterprise Linux 8 incluye roles de sistema de Ansible para simplificar la automatización
de tareas complejas y la configuración de subsistemas de Red Hat Enterprise Linux. Puede ejecutar
un rol con una guía de Ansible, que es una colección de tareas de Ansible. Cada play puede usar
un rol definiéndolo en la sección de rol. Las play también pueden incluir otras secciones, como
la sección post_tasks para definir las tareas que se ejecutarán después de las tareas normales
de la reproducción o la sección handlers para definir manejadores. Puede ejecutar guías con el
comando ansible-playbook incluido en Red Hat Ansible Engine. Red Hat Enterprise Linux 8
Beta no instala Red Hat Ansible Engine de manera predeterminada.

Roles de Sistema de Ansible en RHEL 8

• Incluye rhel-system-roles.kdump, rhel-system-roles.network, rhel-system-


roles.postfix, rhel-system-roles.selinux y rhel-system-roles.timesync
• Disponible en el paquete rhel-system-roles
• Roles de sistema adicionales planificados: almacenamiento, registro de eventos del sistema y de
las aplicaciones, métricas, administración de hardware e inspección de host.

Python en hosts administrados de Red Hat Enterprise Linux 8


Para gestionar los hosts administrados basados en Red Hat Enterprise Linux 8, debe
especificar la versión de Python que usará un host administrado con la variable de host
ansible_python_interpreter. Esta variable de host se define en el archivo de inventario. De
manera predeterminada, Red Hat Enterprise Linux 8 proporciona Python para plataformas Red
Hat Enterprise Linux 8, que es adecuado para las herramientas de nivel de sistema. Si necesita
módulos adicionales de Python en el host gestionado de RHEL 8, debe instalar Python 3.6 con el
módulo de Yum python36. Para usar la versión Python 3.6, debe actualizar la variable del host
ansible_python_interpreter para que el host administrado apunte a /usr/bin/python3.
Se espera que una próxima versión de Ansible verifique si está configurado /usr/bin/python y
busque el intérprete del sistema común de Python si no lo está. Las versiones futuras de Ansible
2.x usarán la tabla de búsqueda incluso si /usr/bin/python está presente.

REFERENCIAS
Base de conocimiento: Roles de sistema de Red Hat Enterprise Linux (RHEL)
https://access.redhat.com/articles/3050101

Roles de Sistema de Linux


https://linux-system-roles.github.io/

58 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

EJERCICIO GUIADO

AUTOMATIZACIÓN CON ROLES DE


SISTEMA DE RHEL
En este ejercicio, usará uno de los roles de sistema de Red Hat Enterprise Linux junto con una
tarea normal para configurar la sincronización de la hora y la zona horaria de los servidores.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Instalar los roles de sistema de Red Hat Enterprise Linux.


• Buscar y usar la documentación de roles de sistema de RHEL.
• Usar el rol rhel-system-roles.timesync en una guía para configurar la
Sincronización horaria en hosts remotos.

DESCRIPCIÓN GENERAL DEL ESCENARIO


Su organización mantiene dos centros de datos: uno en Estados Unidos (Chicago) y otro en
Finlandia (Helsinki). Para facilitar el análisis de registros de los servidores de bases de datos
en los centros de datos, asegúrese de que el reloj del sistema de cada host esté sincronizado
mediante el protocolo de tiempo de red. Para facilitar el análisis de actividades por hora del
día en los centros de datos, asegúrese de que cada servidor de base de datos tenga una zona
horaria que se corresponda con la ubicación del centro de datos del host.

La Sincronización horaria tiene los siguientes requisitos:

• Use el servidor NTP ubicado en classroom.example.com. Habilite la opción iburst


para acelerar la Sincronización horaria inicial.
• Use el paquete chrony para la sincronización temporal.

ANDES DE COMENZAR
Desde workstation, ejecute el comando lab tools-automating start para preparar
el entorno para este ejercicio. Esto crea el directorio de trabajo, tools-automating, y lo
completa con un archivo de configuración de Ansible y un inventario de hosts.

[student@workstation ~]$ lab tools-automating start

1. Inicie sesión en su host workstation como student. Verifique que ansible esté
disponible, y cambie al directorio de trabajo tools-automating.

1.1. Verifique que ansible esté disponible.

[student@workstation ~]$ yum list installed ansible


...output omitted...

1.2. Cambie al directorio de trabajo tools-automating.

RH354-RHEL8.0-es-1-20190319 59
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

[student@workstation ~]$ cd ~/tools-automating


[student@workstation tools-automating]$

2. Instale los roles de sistema de RHEL en el nodo de control,


workstation.lab.example.com. Verifique la ubicación de los roles instalados en el
nodo de control.

2.1. Use ansible-galaxy para verificar que no haya roles disponibles inicialmente. La
salida vacía indica que no se encontraron roles.

[student@workstation tools-automating]$ ansible-galaxy list


...output omitted...
[student@workstation tools-automating]$

2.2. Instale el paquete rhel-system-roles.

[student@workstation tools-automating]$ sudo yum install rhel-system-roles


...output omitted...
Is this ok [y/N]: y
...output omitted...

2.3. Use ansible-galaxy para verificar que los roles del sistema estén disponibles.

[student@workstation tools-automating]$ ansible-galaxy list


- linux-system-roles.kdump, (unknown version)
- linux-system-roles.network, (unknown version)
- linux-system-roles.postfix, (unknown version)
- linux-system-roles.selinux, (unknown version)
- linux-system-roles.timesync, (unknown version)
- rhel-system-roles.kdump, (unknown version)
- rhel-system-roles.network, (unknown version)
- rhel-system-roles.postfix, (unknown version)
- rhel-system-roles.selinux, (unknown version)
- rhel-system-roles.timesync, (unknown version)

Los roles están ubicados en el directorio /usr/share/ansible/roles. Un rol que


comience con linux-system-roles es un vínculo simbólico al rol rhel-system-
roles correspondiente.

3. Cree una guía, configure_time.yml, con una reproducción orientada al grupo de hosts
database_servers. Incluya el rol rhel-system-roles.timesync en la sección
roles de la reproducción.
El contenido de configure_time.yml ahora coincide:

---
- name: Time Synchronization
hosts: database_servers

roles:
- rhel-system-roles.timesync

60 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

4. La documentación del rol contiene una descripción de cada variable del rol, incluido su
valor predeterminado. Determine las variables de rol que se anularán para cumplir con los
requisitos de Sincronización horaria.
Coloque los valores de las variables de rol en un archivo denominado timesync.yml.
Debido a que los valores de estas variables se aplican a todos los hosts del inventario,
coloque el archivo en el subdirectorio group_vars/all.

4.1. Consulte la sección Variables de rol del archivo README.md para conocer el rol
rhel-system-roles.timesync.

[student@workstation tools-automating]$ cat \


> /usr/share/doc/rhel-system-roles/timesync/README.md
...output omitted...
Role Variables
--------------

...output omitted...
# List of NTP servers
timesync_ntp_servers:
- hostname: foo.example.com # Hostname or address of the server
minpoll: 4 # Minimum polling interval (default 6)
maxpoll: 8 # Maximum polling interval (default 10)
iburst: yes # Flag enabling fast initial synchronization
# (default no)
pool: no # Flag indicating that each resolved address
# of the hostname is a separate NTP server
# (default no)
...output omitted...
# Name of the package which should be installed and configured for NTP.
# Possible values are "chrony" and "ntp". If not defined, the currently active
# or enabled service will be configured. If no service is active or enabled, a
# package specific to the system and its version will be selected.
timesync_ntp_provider: chrony

4.2. Cree el subdirectorio group_vars/all.

[student@workstation tools-automating]$ mkdir -pv group_vars/all


mkdir: created directory ‘group_vars’
mkdir: created directory ‘group_vars/all’

4.3. Cree un archivo group_vars/all/timesync.yml nuevo con el editor de texto.


Agregue definiciones de variables para satisfacer los requisitos de Sincronización
horaria. El archivo ahora contiene lo siguiente:

---
#rhel-system-roles.timesync variables for all hosts

timesync_ntp_provider: chrony

timesync_ntp_servers:
- hostname: classroom.example.com
iburst: yes

RH354-RHEL8.0-es-1-20190319 61
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

5. Inserte una tarea para establecer la zona horaria para cada host. Asegúrese de que la tarea
use el módulo timezone y se ejecute después del rol rhel-system-roles.timesync.
Debido a que los hosts pueden no pertenecer a la misma zona horaria, use una variable
(host_timezone) para el nombre de la zona horaria.

5.1. Revise la sección Ejemplos de la documentación del módulo timezone.

[student@workstation tools-automating]$ ansible-doc timezone | grep -A 4


"EXAMPLES"
EXAMPLES:
- name: set timezone to Asia/Tokyo
timezone:
name: Asia/Tokyo

5.2. Agregue una tarea a la sección post_tasks de la reproducción en la guía


configure_time.yml. Modele la tarea siguiendo el ejemplo de la documentación,
pero use la variable host_timezone para el nombre de la zona horaria.
La documentación del módulo timezone también recomienda reiniciar el servicio
crond después de cambiar la zona horaria. Agregue una palabra clave notify a
la tarea, con un valor asociado de restart crond. La sección post_tasks de la
reproducción coincide:

post_tasks:
- name: Set timezone
timezone:
name: "{{ host_timezone }}"
notify: restart crond

5.3. Agregue el manejador restart crond a la reproducción Time


Synchronization. La guía completa ahora contiene lo siguiente:

---
- name: Time Synchronization
hosts: database_servers

roles:
- rhel-system-roles.timesync

post_tasks:
- name: Set timezone
timezone:
name: "{{ host_timezone }}"
notify: restart crond

handlers:
- name: restart crond
service:
name: crond
state: restarted

62 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

6. Para cada centro de datos, cree un archivo llamado timezone.yml con un valor apropiado
para la variable host_timezone. Use el comando timedatectl list-timezones para
encontrar la cadena de zona horaria válida para cada centro de datos.

6.1. Cree los subdirectorios group_vars para los grupos de hosts na-datacenter y
europe-datacenter.

[student@workstation tools-automating]$ mkdir -pv \


> group_vars/{na-datacenter,europe-datacenter}
mkdir: created directory ‘group_vars/na-datacenter’
mkdir: created directory ‘group_vars/europe-datacenter’

6.2. Use el comando timedatectl list-timezones para determinar la zona horaria


para los centros de datos de EE. UU. y Europa:

[student@workstation tools-automating]$ timedatectl list-timezones | grep Chicago


America/Chicago
[student@workstation tools-automating]$ timedatectl list-timezones | grep Helsinki
Europe/Helsinki

6.3. Cree el timezone.yml para ambos centros de datos:

[student@workstation tools-automating]$ echo "host_timezone: America/Chicago" > \


> group_vars/na-datacenter/timezone.yml
[student@workstation tools-automating]$ echo "host_timezone: Europe/Helsinki" > \
> group_vars/europe-datacenter/timezone.yml

7. Ejecute la guía. Algunas tareas generarán errores, ya que intentan detener los servicios
que no se están ejecutando en este ejercicio. El rol de sistema timesync normalmente
esperaría encontrar y detener los servicios NTP en desuso.

[student@workstation tools-automating]$ ansible-playbook configure_time.yml

PLAY [Time Synchronization] **************************************************

TASK [Gathering Facts] *******************************************************


ok: [serverb.lab.example.com]
ok: [servera.lab.example.com]

TASK [rhel-system-roles.timesync : Check if only NTP is needed] **************


ok: [servera.lab.example.com]
ok: [serverb.lab.example.com]

...output omitted...

TASK [rhel-system-roles.timesync : Enable timemaster] ************************


skipping: [servera.lab.example.com]
skipping: [serverb.lab.example.com]

RUNNING HANDLER [rhel-system-roles.timesync : restart chronyd] ***************


changed: [servera.lab.example.com]
changed: [serverb.lab.example.com]

RH354-RHEL8.0-es-1-20190319 63
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

TASK [Set timezone] **********************************************************


changed: [serverb.lab.example.com]
changed: [servera.lab.example.com]

RUNNING HANDLER [restart crond] **********************************************


changed: [serverb.lab.example.com]
changed: [servera.lab.example.com]

PLAY RECAP *******************************************************************


servera.lab.example.com : ok=17 changed=6 unreachable=0 failed=0
serverb.lab.example.com : ok=17 changed=6 unreachable=0 failed=0

8. Verifique la configuración de zona horaria de cada servidor. Use un comando ad hoc de


Ansible para ver la salida del comando date en todos los servidores de bases de datos.

[student@workstation tools-automating]$ ansible database_servers -m shell -a date


serverb.lab.example.com | CHANGED | rc=0 >>
Tue Nov 27 23:24:27 EET 2018

servera.lab.example.com | CHANGED | rc=0 >>


Tue Nov 27 15:24:27 CST 2018

Cada servidor tiene una configuración de zona horaria basada en su ubicación geográfica.

Finalizar
Ejecute el comando lab tools-automating finish para limpiar el host gestionado.

[student@workstation ~]$ lab tools-automating finish

Esto concluye el ejercicio guiado.

64 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

TRABAJO DE LABORATORIO

APROVISIONAMIENTO Y
CONFIGURACIÓN DE SERVIDORES

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, habilitará una secuencia de módulos e instalará paquetes
desde allí al acceder al servidor a través de la interfaz de Cockpit y, luego, ejecutar una
Ansible Playbooks que usa un Rol de Sistema de RHEL para garantizar que la configuración
subsiguiente sea correcta en el servidor.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Habilitar y usar Cockpit para proporcionar acceso al sistema.

• Habilitar secuencias de módulos e instalar paquetes.

• Usar el rol rhel-system-roles.postfix para instalar y configurar Postfix.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab tools-review start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab tools-review start

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. Use Cockpit para acceder a servera y Yum, a fin de habilitar la secuencia del módulo de
Python 3.6.
2. Con los roles de Red Hat Enterprise Linux en workstation, cree una guía llamada lab-
postfix.yml dentro del directorio de trabajo de ~/lab-roles. Incluya la directiva
become: yes (convertirse: sí) para permitir el uso de sudo y configure servera para que
sea un MTA de Postfix con las siguientes variables de configuración de rol:

VARIABLE VALOR

inet_interfaces all

myorigin $mydomain

RH354-RHEL8.0-es-1-20190319 65
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

VARIABLE VALOR

mydestination $myhostname localhost.$mydomain


$mydomain

relay_domains $mydestination

relay_host example.com

Finalizar
En workstation, ejecute lab tools-review finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab tools-review finish

NOTA
Python36 se elimina de servera al finalizar el trabajo de laboratorio para
prepararse para trabajos futuros.

Esto concluye el trabajo de laboratorio.

66 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

SOLUCIÓN

APROVISIONAMIENTO Y
CONFIGURACIÓN DE SERVIDORES

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, habilitará una secuencia de módulos e instalará paquetes
desde allí al acceder al servidor a través de la interfaz de Cockpit y, luego, ejecutar una
Ansible Playbooks que usa un Rol de Sistema de RHEL para garantizar que la configuración
subsiguiente sea correcta en el servidor.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Habilitar y usar Cockpit para proporcionar acceso al sistema.

• Habilitar secuencias de módulos e instalar paquetes.

• Usar el rol rhel-system-roles.postfix para instalar y configurar Postfix.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab tools-review start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab tools-review start

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. Use Cockpit para acceder a servera y Yum, a fin de habilitar la secuencia del módulo de
Python 3.6.

1.1. En workstation, abra Firefox y diríjase a https://


servera.lab.example.com:9090. Si aparece un error de certificado, acepte el
certificado autofirmado.
Marque la casilla Reuse my password for privileged tasks (Reusar mi contraseña para
tareas privilegiadas) e inicie sesión con el nombre de usuario student y la contraseña
student.
Haga clic en servera.lab.example.com en la barra de navegación izquierda y
seleccione la entrada de menú Terminal a la izquierda.

1.2. Use el comando yum module list para enumerar las secuencias disponibles y elija
la que corresponde a Python 3.6.

RH354-RHEL8.0-es-1-20190319 67
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

[student@servera ~]$ sudo yum module list

1.3. Use el comando yum module install python36 para instalar el módulo de
Python 3.6.

[student@servera ~]$ sudo yum module install python36

2. Con los roles de Red Hat Enterprise Linux en workstation, cree una guía llamada lab-
postfix.yml dentro del directorio de trabajo de ~/lab-roles. Incluya la directiva
become: yes (convertirse: sí) para permitir el uso de sudo y configure servera para que
sea un MTA de Postfix con las siguientes variables de configuración de rol:

VARIABLE VALOR

inet_interfaces all

myorigin $mydomain

mydestination $myhostname localhost.$mydomain


$mydomain

relay_domains $mydestination

relay_host example.com

2.1. Cambie al directorio de trabajo /home/student/lab-roles.

[student@workstation ~]$ cd ~/lab-roles


[student@workstation lab-roles]$

2.2. Cree una guía, lab-postfix.yml, con una reproducción que apunte a
servera.lab.example.com. Incluya el rol rhel-system-roles.postfix en la
sección roles de la reproducción.
El contenido de lab-postfix.yml ahora coincide:

---
- hosts: servera.lab.example.com
become: yes
vars:
postfix_conf:
inet_interfaces: "all"
myorigin: "$mydomain"
mydestination: "$myhostname localhost.$mydomain $mydomain"
relay_domains: "$mydestination"
relay_host: "example.com"
roles:

68 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

- rhel-system-roles.postfix

2.3. Ejecute la guía.

[student@workstation lab-roles]$ ansible-playbook lab-postfix.yml


PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************


ok: [servera.lab.example.com]

TASK [rhel-system-roles.postfix : Install Postfix] *****************************


changed: [servera.lab.example.com]

...output omitted...

TASK [rhel-system-roles.postfix : Configure Postfix] ***************************


changed: [servera.lab.example.com] => (item={'key': 'inet_interface', 'value':
'all'})
changed: [servera.lab.example.com] => (item={'key': 'myorigin', 'value':
'$mydomain'})
changed: [servera.lab.example.com] => (item={'key': 'mydestination', 'value':
'$myhostname localhost.$mydomain $mydomain'})
changed: [servera.lab.example.com] => (item={'key': 'relay_domains', 'value':
'$mydestination'})
changed: [servera.lab.example.com] => (item={'key': 'relay_host', 'value':
'example.com'})

RUNNING HANDLER [rhel-system-roles.postfix : check postfix] ********************


changed: [servera.lab.example.com]

RUNNING HANDLER [rhel-system-roles.postfix : restart postfix] ******************


changed: [servera.lab.example.com]

PLAY RECAP *********************************************************************


servera.lab.example.com : ok=9 changed=8 unreachable=0 failed=0

2.4. Use telnet servera.lab.example.com 25 en workstation para probar la


funcionalidad del servidor de correo.

[student@workstation ~]$ telnet servera.lab.example.com 25


Connected to servera.lab.example.com.
Escape character is '^]'.
220 servera.lab.example.com ESMTP Postfix
^]

telnet> quit
Connection closed.

Finalizar
En workstation, ejecute lab tools-review finish para limpiar los recursos creados para
este ejercicio.

RH354-RHEL8.0-es-1-20190319 69
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

[student@workstation ~]$ lab tools-review finish

NOTA
Python36 se elimina de servera al finalizar el trabajo de laboratorio para
prepararse para trabajos futuros.

Esto concluye el trabajo de laboratorio.

70 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 3 | Aprovisionamiento y configuración de servidores

RESUMEN

En este capítulo, aprendió lo siguiente:

• Red Hat Enterprise Linux 8 incluye la versión 4 de la utilidad Yum, que usa la tecnología DNF
como back-end.

• Un módulo de Yum es una colección de paquetes que se instalan juntos. Los módulos resuelven
los problemas de dependencias de las versiones de paquetes más antiguas o más nuevas.

• Cockpit es una interfaz interactiva de administración de servidores.

• Composer es una herramienta nueva que permite que los administradores creen imágenes
personalizadas del sistema de Red Hat Enterprise Linux.

• Composer crea imágenes del sistema basadas en planos técnicos.

• Red Hat Enterprise Linux 8 incluye roles de sistema de Ansible para simplificar la automatización
de tareas complejas y la configuración de subsistemas de Red Hat Enterprise Linux.

RH354-RHEL8.0-es-1-20190319 71
72 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4

ADAPTACIÓN A LOS CAMBIOS


DEL SISTEMA PRINCIPAL
(CORE)
META Administrar los componentes del sistema principal
(core) que han tenido cambios significativos,
incluidos la infraestructura de escritorio gráfico,
la configuración de autenticación de usuario, el
servicio NTP y la selección de versión de Python.

OBJETIVOS • Explicar la diferencia entre Wayland y el sistema


heredado X Window, y configurar un servidor o
una sesión de usuario para usar Wayland o X.
• Administrar la configuración de autenticación
de usuario en PAM, NSS y dconf con Authselect,
y explicar las diferencias entre Authselect y
Authconfig.
• Mantener la sincronización de tiempos con NTP
usando Chrony y configurar la zona horaria con
timedatectl.
• Identificar, instalar y controlar las versiones
específicas de Python disponibles para un
servidor.

SECCIONES • Visualización del escritorio con Wayland y X (y


ejercicio guiado)
• Administración de la autenticación de usuario
con Authselect (y ejercicio guiado)
• Configuración de NTP con Chrony (y ejercicio
guiado)
• Administración de versiones Python en RHEL 8
(y ejercicio guiado)

TRABAJO DE Adaptación a los cambios del sistema principal


(core)
LABORATORIO

RH354-RHEL8.0-es-1-20190319 73
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

VISUALIZACIÓN DEL ESCRITORIO CON


WAYLAND Y X

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de realizar lo siguiente:

• Explicar la diferencia entre Wayland y el sistema X Window heredado.


• Configurar un servidor o una sesión de usuario para usar Wayland o X.

SISTEMA DE VENTANAS WAYLAND


Wayland es un sistema de ventanas de cliente/servidor diseñado para reemplazar a X11. Las
mejoras de rendimiento de Wayland sobre X11 se derivan de la simplificación de la arquitectura.

Componentes de Wayland

• Wayland Compositor: combina los roles de servidor de visualización y compositor.


• Wayland Client: la aplicación gráfica que se comunica con el compositor de Wayland. Los clientes
de Wayland son responsables de realizar su propia representación.
• Linux Kernel: responsable de la comunicación entre el compositor de Wayland, el controlador
de dispositivo de eventos que maneja los dispositivos de entrada y salida (evdev), y la API en
configuración de modo kernel (KMS) para resolución, profundidad y actualización.

Cambio a Wayland
Wayland no es una extensión del sistema de ventanas X11, sino un reemplazo.

Figura 4.1: La arquitectura de Wayland

Razones para cambiar a Wayland

• El servidor de visualización X se ha convertido en un cuello de botella entre los clientes, el


compositor y el kernel.

74 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

• X tiene un código heredado, como la API de representación, que rara vez se usa, pero debe
seguir siendo compatible con el protocolo X11.
• La mayoría de los escritorios gráficos tienen una opción de composición, que agrega latencia
porque el servidor de pantalla X debe enviar el contenido al proceso de composición para su
representación y, luego, devolver el contenido representado al servidor X para que se muestre.

Compatibilidad de aplicaciones X11


Las aplicaciones X11 que no se han migrado a Wayland aún se pueden ejecutar en un compositor
de Wayland. XWayland es un servidor Xorg que se ejecuta como un cliente de Wayland. Cuando se
inicia una aplicación X11, el compositor de Wayland llamará a XWayland para manejar las solicitudes
de la aplicación. XWayland es proporcionado por el paquete xorg-x11-server-Xwayland.

Representación remota
Wayland no es transparente en la red y no admite la representación remota. En su lugar, un
servidor de representación remoto, como los protocolos de escritorio RDP o VNC, se puede
ejecutar además de Wayland. También se espera que se creen compositores de Wayland
ascendentes que incluyan un protocolo remoto.

Verifique que se esté usando Wayland


Use los siguientes pasos para determinar si su escritorio está usando Wayland.

[user@demo ~]$ loginctl


SESSION UID USER SEAT TTY
2 1000 user seat0 tty2
c1 42 gdm seat0 tty1

2 sessions listed.

[user@demo ~]$ loginctl show-session 2 -p Type


Type=wayland

Gnome 3 usa Wayland de manera predeterminada. Sin embargo, no se han migrado todas las
aplicaciones en Red Hat Enterprise Linux 8. Las aplicaciones no migradas se gestionan con un
controlador XWayland para proporcionar sus requisitos de servidor X.

Si Wayland es incompatible con su hardware o aplicación de gráficos, es un proceso simple para


volver a usar Xorg. Elimine el comentario de la siguiente línea en /etc/gdm/custom.conf y,
luego, reinicie su máquina.

#WaylandEnable=false

Esto obliga a GDM a usar Xorg y también a establecer la sesión predeterminada en Xorg.

RH354-RHEL8.0-es-1-20190319 75
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

REFERENCIAS
Arquitectura de Wayland
https://wayland.freedesktop.org/architecture.html

Preguntas frecuentes de Wayland


https://wayland.freedesktop.org/faq.html

Cómo depurar problemas de Wayland


https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

76 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

EJERCICIO GUIADO

VISUALIZACIÓN DEL ESCRITORIO CON


WAYLAND Y X
En este ejercicio, examinará workstation para determinar qué aplicaciones usan Wayland
de forma nativa, y practicar el cambio entre Wayland y Xorg.

RESULTADOS
Debe ser capaz de determinar qué aplicaciones usan Wayland y cuáles usan X11 con la capa
de compatibilidad XWayland. También debe ser capaz de cambiar entre Wayland y Xorg, lo
que es útil para solucionar problemas con aplicaciones gráficas.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab core-wayland start.

[student@workstation ~]$ lab core-wayland start

1. Inicie la aplicación de fotos Cheese.

1.1. Presione Alt+F2 para abrir el cuadro de diálogo Enter a Command (Ingresar un
comando).

1.2. Escriba cheese para iniciar la aplicación.

2. Inicie Looking Glass, el depurador e inspector integrado de Gnome.

2.1. Presione Alt+F2 para abrir el cuadro de diálogo Enter a Command (Ingresar un
comando).

2.2. Escriba lg para iniciar el inspector.

3. Use Looking Glass para determinar qué aplicaciones están usando Wayland de forma nativa.

3.1. Haga clic en Windows en la parte superior derecha.

3.2. Haga clic en el texto gnome-shell para visualizar el cuadro de diálogo de


inspección de objeto.
En la primera línea del cuadro de diálogo de inspección de objeto, se muestra el tipo
de objeto, que incluye el texto MetaWindowXwayland. Esto indica que Gnome Shell
usa el servidor de visualización XWayland y, por lo tanto, todavía está configurado
para usar X11.
Cierre el cuadro de diálogo.

RH354-RHEL8.0-es-1-20190319 77
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

3.3. Haga clic en el texto student@workstation:~, que representa la terminal abierta


de Gnome.
La primera línea en el cuadro de diálogo de inspección de objeto incluye el texto
MetaWindowWayland, que confirma que Gnome terminal es una aplicación nativa
de Wayland.
Cierre el cuadro de diálogo.

3.4. Haga clic en el texto Take a photo (Tomar una foto), que representa a la aplicación
Cheese.
La primera línea en el cuadro de diálogo de inspección de objeto incluye el texto
MetaWindowWayland, lo que confirma que Cheese es una aplicación nativa de
Wayland.
Cierre el cuadro de diálogo.
Presione Esc para salir de Looking Glass.

4. Desde la terminal, verifique el tipo de sesión usando el comando loginctl.

4.1. Ejecute el comando loginctl para encontrar su número de sesión.

[student@workstation ~]$ loginctl


SESSION UID USER SEAT TTY
2 1000 student seat0 tty2
c1 42 gdm seat0 tty1

2 sessions listed.

4.2. Ejecute el comando loginctl show-session para encontrar el tipo de sesión.

[student@workstation ~]$ loginctl show-session 2 -p Type


Type=wayland

5. Desde la terminal, conviértase en root y, luego, edite /etc/gdm/custom.conf. Elimine


el comentario de la línea que contiene WaylandEnable, guarde los cambios y, luego,
reinicie workstation.

# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=False

6. Inicie sesión como student y verifique el tipo de sesión usando el comando loginctl.

6.1. Abra la terminal y ejecute el comando loginctl para encontrar su número de


sesión.

[student@workstation ~]$ loginctl


SESSION UID USER SEAT TTY
2 1000 student seat0 tty2
c1 42 gdm seat0 tty1

78 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

2 sessions listed.

6.2. Ejecute el comando loginctl show-session para encontrar el tipo de sesión.

[student@workstation ~]$ loginctl show-session 2 -p Type


Type=x11

7. Desde la terminal, conviértase en root y edite /etc/gdm/custom.conf. Comente la línea


que contiene WaylandEnable, guarde los cambios y, luego, reinicie workstation.

# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=False

Limpieza
En workstation, ejecute lab core-wayland finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab core-wayland finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 79
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

ADMINISTRACIÓN DE LA
AUTENTICACIÓN DE USUARIO CON
AUTHSELECT

OBJETIVOS
Una vez completada esta sección, los estudiantes deben ser capaces de administrar la
configuración de autenticación de usuario en PAM, NSS y dconf con Authselect, y explicar las
diferencias entre Authselect y Authconfig.

PRESENTACIÓN DE AUTHSELECT
Red Hat Enterprise Linux 8 se envía con Authselect, que simplifica la configuración de la
autenticación del usuario y reemplaza a Authconfig. Authselect usa un enfoque diferente y más
seguro, basado en perfiles que simplifican los cambios de configuración para los administradores
de sistemas. Authselect se usa para configurar los parámetros de autenticación habituales, como
contraseñas, certificados, tarjetas inteligentes y huellas digitales.

Características de Authselect

• Ajusta la configuración de PAM, NSS y GNOME dconf.


• Se envía con tres perfiles listos para usar: sssd, winbind y nis.
• pam_pwquality está habilitado de forma predeterminada para imponer restricciones de
calidad de contraseña en los usuarios locales.

Comparación entre Authselect y Authconfig

• Authselect usa perfiles probados, en lugar de modificar directamente los archivos de


configuración de autenticación del sistema.
• Authselect solo modifica archivos en /etc/nsswitch.conf, /etc/pam.d/* y /etc/dconf/
db/distro.d/*.

Cómo usar Authselect

• Use el comando authselect list para enumerar los perfiles predeterminados y


personalizados.
• Los perfiles predeterminados se almacenan en /usr/share/authselect/default.
• Use el comando authselect create-profile para crear nuevos perfiles personalizados.
• Los perfiles personalizados se almacenan en el directorio /etc/authselect/custom/.

Cuándo usar Authselect

• Use authselect en entornos de gestión de identidad locales y semicentralizados, como


Winbind o NIS.
• Continúe usando ipa-client o realmd cuando se una a un dominio con gestión de
identidades o Active Directory de Red Hat Enterprise Linux . Estas herramientas configuran
correctamente los parámetros de autenticación del host por sí mismos.

80 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

REFERENCIAS
Páginas del manual authselect(8), authselect-migration(7) y
authselect-profiles(5).

Para obtener más información, consulte el capítulo Configuración de la autenticación


en Red Hat Enterprise Linux Host en la Guía de administración de identidades y
control de acceso de Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/installing_identity_management_and_access_control/
#configuring-authentication

RH354-RHEL8.0-es-1-20190319 81
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

EJERCICIO GUIADO

ADMINISTRACIÓN DE LA
AUTENTICACIÓN DE USUARIO CON
AUTHSELECT
En este ejercicio, verá y configurará la configuración de autenticación de usuario local usando
Authselect.

RESULTADOS
Debe ser capaz de configurar los parámetros de identidad y autorización con Authselect, que
reemplaza a Authconfig.

1. Explore la aplicación Authselect.

1.1. Inicie sesión en servera y conviértase en usuario root.

[student@workstation ~]$ ssh servera


[student@servera ~]$ sudo -i
[root@servera ~]#

1.2. Authselect se instala de manera predeterminada en RHEL 8. Revise las opciones


disponibles en servera

[root@servera ~]# authselect --help


Usage:
authselect COMMAND COMMAND-ARGS

Available commands:
- select Select profile
- apply-changes Regenerate configuration for currently selected command
- list List available profiles
- show Show profile information
- requirements Print profile requirements
- current Get identificator of currently selected profile
- check Check if the current configuration is valid
- test Print changes that would be otherwise written
- enable-feature Enable feature in currently selected profile
- disable-feature Disable feature in currently selected profile
- create-profile Create new authselect profile

Common options:
--debug Print error messages
--trace Print trace messages
--warn Print warning messages

Help options:

82 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

-?, --help Show this for a command


--usage Show brief usage message for a command

1.3. Enumere los perfiles de Authselect disponibles.

[root@servera ~]# authselect list


- nis Enable NIS for system authentication
- sssd Enable SSSD for system authentication (also for local users only)
- winbind Enable winbind for system authentication

1.4. Enumere el perfil de Authselect seleccionado actualmente.

[root@servera ~]# authselect current


Profile ID: sssd
Enabled features: None

1.5. Determine si la configuración actual es válida.

[root@servera ~]# authselect check


Current configuration is valid.

1.6. Imprima los requisitos de perfil de Authselect.

[root@servera ~]# authselect requirements sssd


Make sure that SSSD service is configured and enabled. See SSSD documentation for
more information.

1.7. Muestre los detalles del perfil de Authselect y las características opcionales.

[root@servera ~]# authselect show sssd


...output omitted...
AVAILABLE OPTIONAL FEATURES
---------------------------

with-faillock::
Enable account locking in case of too many consecutive
authentication failures.

with-mkhomedir::
Enable automatic creation of home directories for users on their
first login.

with-ecryptfs::
Enable automatic per-user ecryptfs.

with-smartcard::
Enable authentication with smartcards through SSSD. Please note that
smartcard support must be also explicitly enabled within
SSSD's configuration.

with-smartcard-lock-on-removal::

RH354-RHEL8.0-es-1-20190319 83
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

Lock screen when a smartcard is removed.


Note: "with-smartcard" must be set as well.

with-smartcard-required::
Smartcard authentication is required. No other means of authentication
(including password) will be enabled.
Note: "with-smartcard" must be set as well.

with-fingerprint::
Enable authentication with fingerprint reader through *pam_fprintd*.

with-silent-lastlog::
Do not produce pam_lastlog message during login.

with-sudo::
Allow sudo to use SSSD as a source for sudo rules in addition of /etc/sudoers.

with-pamaccess::
Check access.conf during account authorization.

without-nullok::
Do not add nullok parameter to pam_unix.
...output omitted...

2. Seleccione y revise los perfiles de Authselect.

2.1. Seleccione un perfil de Authselect en servera.

[root@servera ~]# authselect select sssd


Profile "sssd" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for
more information.

2.2. Revise el contenido de /etc/nsswitch.conf en servera.

[root@servera ~]# grep sss /etc/nsswitch.conf


...output omitted...
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
automount: sss files
services: sss files
...output omitted...

84 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

shadow: files sss

2.3. Seleccione otro perfil de Authselect en servera para comparar.

[root@servera ~]# authselect select nis


Profile "nis" was selected.
The following nsswitch maps are overwritten by the profile:
- aliases
- automount
- ethers
- group
- hosts
- initgroups
- netgroup
- networks
- passwd
- protocols
- publickey
- rpc
- services
- shadow

Make sure that NIS service is configured and enabled. See NIS documentation for
more information.

2.4. Revise el contenido de /etc/nsswitch.conf en servera para comparar ambos


perfiles.

[root@servera ~]# grep nis /etc/nsswitch.conf


...output omitted...
aliases: files nis
automount: files nis
ethers: files nis
group: files nis systemd
hosts: files nis dns myhostname
initgroups: files nis
netgroup: files nis
networks: files nis
passwd: files nis systemd
protocols: files nis
publickey: files nis
rpc: files nis
services: files nis
shadow: files nis
...output omitted...

Note las diferencias entre ambos perfiles en el archivo de configuración /etc/


nsswitch.conf.

RH354-RHEL8.0-es-1-20190319 85
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

3. Cree un perfil de Authselect personalizado.

3.1. Cree un perfil de Authselect personalizado basado en el perfil sssd en servera.


Crea vínculos simbólicos para los archivos meta.

[root@servera ~]# authselect create-profile my-custom-profile \


> -b sssd --symlink-meta
New profile was created at /etc/authselect/custom/my-custom-profile

3.2. Revise el contenido del perfil personalizado de Authselect en /etc/authselect/


custom/my-custom-profile/.

[root@servera ~]# cd /etc/authselect/custom/my-custom-profile/


[root@servera my-custom-profile]# ls -lah
total 32K
drwxr-xr-x. 2 root root 199 Feb 5 18:15 .
drwxr-xr-x. 3 root root 31 Feb 5 18:15 ..
-rw-r--r--. 1 root root 425 Feb 5 18:15 dconf-db
-rw-r--r--. 1 root root 224 Feb 5 18:15 dconf-locks
-rw-r--r--. 1 root root 2.1K Feb 5 18:15 fingerprint-auth
-rw-r--r--. 1 root root 393 Feb 5 18:15 nsswitch.conf
-rw-r--r--. 1 root root 2.9K Feb 5 18:15 password-auth
-rw-r--r--. 1 root root 588 Feb 5 18:15 postlogin
lrwxrwxrwx. 1 root root 41 Feb 5 18:15 README -> /usr/share/authselect/default/
sssd/README
lrwxrwxrwx. 1 root root 47 Feb 5 18:15 REQUIREMENTS -> /usr/share/authselect/
default/sssd/REQUIREMENTS
-rw-r--r--. 1 root root 1.9K Feb 5 18:15 smartcard-auth
-rw-r--r--. 1 root root 3.4K Feb 5 18:15 system-auth

Observe el PAM, dconf y las plantillas de nsswitch.conf, y los vínculos simbólicos


para los archivos meta README y REQUIREMENTS.

3.3. Revise el contenido de la plantilla de nsswitch.conf en el perfil personalizado de


Authselect.

[root@servera my-custom-profile]# cat nsswitch.conf


passwd: sss files systemd {exclude if "with-custom-passwd"}
group: sss files systemd {exclude if "with-custom-group"}
netgroup: sss files {exclude if "with-custom-netgroup"}
automount: sss files {exclude if "with-custom-automount"}
services: sss files {exclude if "with-custom-services"}
sudoers: files sss {include if "with-sudo"}

3.4. Modifique los parámetros services y sudoers en la plantilla personalizada


nsswitch.conf, como se muestra a continuación:

[root@servera my-custom-profile]# vim nsswitch.conf


...output omitted...
services: files sss {exclude if "with-custom-services"}

86 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

sudoers: sss files {exclude if "with-custom-sudoers"}

En este ejercicio, esta modificación no tiene otro propósito que permitirle revisar
esos cambios en el archivo /etc/nsswitch.conf resultante en un paso posterior.

3.5. Enumere los perfiles de Authselect disponibles.

[root@servera my-custom-profile]# authselect list


-nis Enable NIS for system authentication
- sssd Enable SSSD for system authentication (also for local
users only)
- winbind Enable winbind for system authentication
- custom/my-custom-profile Enable SSSD for system authentication (also for local
users only)

3.6. Seleccione el perfil de Authselect personalizado.

[root@servera my-custom-profile]# authselect select custom/my-custom-profile


Profile "custom/my-custom-profile" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services
- sudoers

Make sure that SSSD service is configured and enabled. See SSSD documentation for
more information.

3.7. Revise las opciones modificadas en el archivo de configuración /etc/


nsswitch.conf.

[root@servera my-custom-profile]# grep sss /etc/nsswitch.conf


...output omitted...
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
automount: sss files
services: files sss
sudoers: sss files
...output omitted...

Note los cambios en los parámetros passwd, group, netgroup, automount y los
parámetros personalizados services y sudoers.

4. Limpie la configuración de Authselect.

4.1. Enumere el perfil de Authselect actual en servera.

[root@servera my-custom-profile]# authselect current


Profile ID: custom/my-custom-profile

RH354-RHEL8.0-es-1-20190319 87
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

Enabled features: None

4.2. Seleccione el perfil de Authselect predeterminado sssd en servera.

[root@servera my-custom-profile]# authselect select sssd


Profile "sssd" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for
more information.

4.3. Elimine la carpeta personalizada del perfil de Authselect en /etc/authselect/


custom/.

[root@servera my-custom-profile]# cd
[root@servera ~]# rm -rf /etc/authselect/custom/my-custom-profile

4.4. Enumere los perfiles de Authselect disponibles.

[root@servera ~]# authselect list


-nis Enable NIS for system authentication
- sssd Enable SSSD for system authentication (also for local
users only)
- winbind Enable winbind for system authentication

4.5. Cierre sesión en servera.

[root@servera ~]# exit


[student@servera ~]$ exit
[student@workstation ~]$

Esto concluye el ejercicio guiado.

88 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

CONFIGURACIÓN DE NTP CON CHRONY

OBJETIVOS
Después de completar esta sección, los estudiantes deben ser capaces de mantener la
sincronización de tiempos con NTP usando Chrony y configure la zona horaria con timedatectl.

CHRONY REEMPLAZA A NTPD


El protocolo de tiempo en red (Network Time Protocol [NTP]) es el estándar para que las máquinas
proporcionen y sincronicen el tiempo entre los sistemas autorizados. Una máquina puede obtener
información de la hora correcta de los servicios NTP públicos en Internet, como el NTP Pool
Project. Otra opción es un reloj de hardware de alta calidad para proporcionar la hora precisa a los
clientes locales.

En Red Hat Enterprise Linux 8, Chrony es la única implementación disponible de un servidor NTP.
La implementación de ntpd, disponible junto con Chrony en Red Hat Enterprise Linux 7, ya no está
disponible.

Uso de Chrony como la implementación predeterminada de NTP

• Chrony reemplaza a ntpd, que ya no está disponible.


• Chrony usa un archivo de configuración diferente, con un formato diferente.
• El script /usr/share/doc/chrony/ntp2chrony.py convierte el archivo /etc/ntp.conf
en /etc/chrony.conf.
• timedatectl muestra una vista general de la configuración del sistema actual relacionada con
la hora.
• Use timedatectl set-timezone para definir la zona horaria del sistema.

Presentación de Chrony
El servicio chronyd mantiene el reloj de hardware local (RTC) según lo programado
sincronizándolo con los servidores NTP configurados. Si no hay conectividad de red disponible,
se sincroniza con la desviación del reloj RTC calculada, que se registra en la variable driftfile
especificada en el archivo de configuración /etc/chrony.conf.

De manera predeterminada, chronyd usa servidores del NTP Pool Project para la sincronización
del tiempo y no necesita otra configuración. Puede ser útil cambiar los servidores NTP cuando la
máquina en cuestión esté en una red aislada.

Las líneas server en el archivo de configuración /etc/chrony.conf proporcionan las


direcciones IP o los nombres DNS de los servidores NTP. Siguiendo el nombre o la dirección IP
del servidor, puede enumerar una serie de opciones para el servidor. Red Hat recomienda usar la
opción iburst porque, una vez que se inicie el servicio, Chrony realiza cuatro mediciones en un
período breve a fin de lograr una sincronización del reloj inicial más precisa.

[user@demo ~]$ cat /etc/chrony.conf


# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rhel.pool.ntp.org iburst
server 192.168.122.14 iburst

RH354-RHEL8.0-es-1-20190319 89
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

server tick.example.com iburst


server tock.example.com iburst

# Record the rate at which the system clock gains/losses time.


driftfile /var/lib/chrony/drift
...output omitted...

La directiva pool es similar a la directiva server, pero en lugar de indicar un solo servidor NTP,
indica un nombre DNS que se resuelve en varias direcciones que pueden cambiar con el tiempo.

Después de actualizar el archivo de configuración /etc/chrony.conf, reinicie el servicio.

[root@demo ~]# systemctl restart chronyd

El comando chronyc actúa como cliente para el servicio chronyd. Después de configurar la
sincronización NTP, verifique el servidor NTP usado para sincronizar el reloj del sistema con el
comando chronyc sources o para obtener una salida más detallada, chronyc sources -v:

[user@demo ~]$ chronyc sources -v


210 Number of sources = 3

.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
^* tick.example.com 3 7 377 87 +70us[ +90us] +/- 63ms
^+ tock.example.com 1 6 37 23 +1384us[ +409us] +/- 58ms
^+ 192.168.122.14 3 6 37 23 -1514us[-2490us] +/- 84ms

El carácter del asterisco (*) en el campo S (estado Source) indica que el servidor
tick.example.com se usó como fuente de hora y el servidor NTP es la máquina que se toma
actualmente como referencia para la sincronización.

Conversión de la configuración NTPd a Chrony


El archivo de configuración de Chrony, /etc/chrony.conf, es similar al archivo de configuración
ntpd, /etc/ntp.conf. Algunas directivas de configuración son específicas de Chrony porque los
dos programas tienen características diferentes.

En particular, las siguientes funciones ntpd no están disponibles en Chrony.

• Chrony no implementa las características del cliente de difusión (broadcast) y multidifusión


(multicast). Por lo tanto, las directivas broadcastclient y multicastclient no existen
en chrony.conf. Estas funciones NTPd permiten la recepción de mensajes NTP enviados por
servidores NTP de difusión (broadcast) o multidifusión (multicast).

• La directiva autokey no está disponible en chrony.conf. En ntp.conf, esta directiva activa


los algoritmos de clave pública para la autenticación de paquetes entre clientes y servidores
NTP.

90 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

• Chrony no admite asociaciones efímeras cuando se usan directivas de pares simétricas. Por
ejemplo, la directiva peer permite que dos servidores del mismo nivel sincronicen sus relojes.
Cuando solo un servidor define la directiva peer, el otro servidor acepta la conexión y establece
una asociación efímera. Chrony no permite esta configuración implícita; ambos servidores deben
incluir la directiva peer.

Para convertir el archivo ntp.conf a chrony.conf, el paquete chrony proporciona el script


ntp2chrony.py en /usr/share/doc/chrony/. Use la opción --ntp-conf para especificar el
archivo ntp.conf para convertir. La opción --chrony-conf especifica el archivo chrony.conf
de salida. La opción --chrony-keys especifica la ruta al archivo de salida que contiene los
pares claves para los servidores que requieren autenticación. Revise el archivo de configuración
convertido antes de reiniciar el servicio chronyd.

[root@demo ~]# python3 /usr/share/doc/chrony/ntp2chrony.py \


> --ntp-conf ./ntp.conf \
> --chrony-conf ./chrony.conf \
> --chrony-keys ./chrony.key
[root@demo ~]# cat ./chrony.conf
...output omitted...
[root@demo ~]# cp ./chrony.conf ./chrony.key /etc
[root@demo ~]# systemctl restart chronyd

Configuración de la zona horaria


El comando timedatectl muestra una descripción general de los parámetros de configuración
relacionados con la hora, que incluyen la hora actual, la zona horaria y los parámetros de
configuración de sincronización de NTP del sistema.

[user@demo ~]$ timedatectl


Local time: Fri 2019-02-15 03:54:03 EST
Universal time: Fri 2019-02-15 08:54:03 UTC
RTC time: Fri 2019-02-15 08:54:02
Time zone: America/New_York (EST, -0500)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

El sistema proporciona una base de datos con las zonas horarias conocidas que puede enumerar
con el comando timedatectl list-timezones.

[user@demo ~]$ timedatectl list-timezones


Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
...output omitted...

El comando tzselect es práctico para identificar el nombre correcto de una zona horaria.
De manera interactiva, se le formulan preguntas al usuario sobre la ubicación del sistema y se
proporciona el nombre de la zona horaria correcta. No implementa cambios en la configuración de
la zona horaria del sistema.

RH354-RHEL8.0-es-1-20190319 91
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

Como root, puede ajustar la configuración del sistema para la zona horaria actual con el comando
timedatectl set-timezone.

[root@demo ~]# timedatectl set-timezone America/Phoenix


[root@demo ~]# timedatectl
Local time: Fri 2019-02-15 01:58:19 MST
Universal time: Fri 2019-02-15 08:58:19 UTC
RTC time: Fri 2019-02-15 08:58:18
Time zone: America/Phoenix (MST, -0700)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

REFERENCIAS
Páginas del manual: chrony.conf(5), chronyc(1), timedatectl(1) y
tzselect(8).

Para obtener más información sobre Chrony, consulte el capítulo Uso del conjunto
Chrony para configurar NTP en la guía Configuración de los ajustes de sistema básicos
en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_basic_system_settings/#using-chrony-to-configure-
ntp

92 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

EJERCICIO GUIADO

CONFIGURACIÓN DE NTP CON CHRONY


En este ejercicio, ajustará la zona horaria en un servidor y se asegurará de que el reloj de su
sistema esté sincronizado con una fuente de tiempo NTP, usando Chrony.

RESULTADOS
Los estudiantes deben ser capaces de configurar el sistema servera para usar la zona
horaria correspondiente a Haití y configurar chronyd en servera para usar el servidor NTP
que se está ejecutando en classroom.example.com como fuente de hora.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab core-chrony start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab core-chrony start

1. Su máquina servera ha sido reubicada en Haití. Establezca la zona horaria apropiada y


verifique su trabajo.

1.1. Inicie sesión en servera y conviértase en usuario root.

[student@workstation ~]$ ssh servera


[student@servera ~]$ sudo -i
[root@servera ~]#

1.2. Identifique la zona horaria correcta para Haití.

[root@servera ~]# tzselect


Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
...output omitted...
#? 2
Please select a country whose clocks agree with yours.
...output omitted...
10) Canada 28) Haiti 46) Suriname
11) Caribbean NL 29) Honduras 47) Trinidad & Tobago
...output omitted...
#? 28

The following information has been given:

Haiti

RH354-RHEL8.0-es-1-20190319 93
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

Therefore TZ='America/Port-au-Prince' will be used.


Selected time is now: Fri Feb 15 01:24:44 EST 2019.
Universal Time is now: Fri Feb 15 06:24:44 UTC 2019.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
TZ='America/Port-au-Prince'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Port-au-Prince

1.3. Cambie la zona horaria a Estados Unidos/Port-au-Prince.

[root@servera ~]# timedatectl set-timezone America/Port-au-Prince

1.4. Recupere la zona horaria establecida en servera para verificar su trabajo.

[root@servera ~]# timedatectl


Local time: Fri 2019-02-15 01:45:31 EST
Universal time: Fri 2019-02-15 06:45:31 UTC
RTC time: Fri 2019-02-15 06:47:25
Time zone: America/Port-au-Prince (EST, -0500)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no

2. Habilite la sincronización de NTP en el sistema servera y use classroom.example.com


como fuente de hora.

2.1. Configure chronyd para sincronizar la hora en servera con


classroom.example.com. Edite /etc/chrony.conf para incluir el siguiente
extracto del archivo de configuración:

# Use public servers from the pool.ntp.org project.


# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rhel.pool.ntp.org iburst
server classroom.example.com iburst
...output omitted...

2.2. Reinicie y habilite el servicio chronyd.

[root@servera ~]# systemctl restart chronyd

94 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

[root@servera ~]# systemctl enable chronyd

2.3. Active la sincronización de NTP en servera.

[root@servera ~]# timedatectl set-ntp true

3. Confirme que el reloj en servera esté sincronizado con classroom.example.com.

3.1. Verifique el estado de sincronización del reloj.

[root@servera ~]# timedatectl


...output omitted...
System clock synchronized: yes
...output omitted...

3.2. Confirme que classroom.example.com sea la fuente de hora para sincronizar el


reloj en servera.

[root@servera ~]# chronyc sources -v


210 Number of sources = 1

.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 8 6 37 51 -25ns[-703us] +/- 128us

3.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@servera ~]$ exit
[student@workstation ~]$

Finalizar
En workstation, ejecute lab core-chrony finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab core-chrony finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 95
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

ADMINISTRACIÓN DE LAS
VERSIONES DE PYTHON EN RED HAT
ENTERPRISE LINUX 8

OBJETIVOS
Después de completar esta sección, los estudiantes deben ser capaces de identificar, instalar y
controlar las versiones específicas de Python disponibles para un servidor.

TRANSICIÓN DE PYTHON 2 A PYTHON 3


La instalación mínima predeterminada de RHEL 8 no instala los binarios de Python al nivel del
usuario, solo la versión para herramientas del sistema operativo. Los binarios de las aplicaciones
Python 2.7 y Python 3.6 están disponibles en el repositorio del flujo de aplicaciones (AppStream)
para Red Hat Enterprise Linux 8.

Instalación de Python en RHEL 8

• RHEL 8 incluye módulos Yum tanto para Python 2.7 como para Python 3.6.
• Python 3.6 es la opción predeterminada. Python 2.7 es una versión de corta duración para
ayudar a los usuarios a migrar a RHEL 8 mientras sus aplicaciones se trasladan a python3.
• Los futuros lanzamientos de Python 3.x estarán disponibles desde el repositorio de AppStream
como módulos Yum llamados python3x.

Trabajar con Python en Red Hat Enterprise Linux 8

• De manera predeterminada, Red Hat Enterprise Linux 8 no proporciona un comando /usr/


bin/python. Use el comando alternatives para crear un vínculo a la versión deseada con el
fin de buscar la simplicidad de la línea de comandos.
• No use /usr/bin/python en scripts. Escriba siempre scripts usando /usr/bin/python3 o /
usr/bin/python2, porque su comportamiento dependerá siempre de la versión.
• Las herramientas del sistema escritas en Python usan una instalación separada de python3
llamada /usr/libexec/platform-python. No use esta versión en sus scripts, ya que solo
incluye los módulos de Python necesarios para las herramientas del sistema operativo.

Configuración de versiones alternativas de Python


El módulo Python 2.7 instala el binario /usr/bin/python2. Python 3.6 instala el binario /usr/
bin/python3. Use el comando alternatives para vincular /usr/bin/python a /usr/bin/
python2 o /usr/bin/python3; recomendado solo para uso interactivo.

REFERENCIAS
Para obtener más información, consulte el capítulo Uso de Python en Red Hat
Enterprise Linux 8 en la Guía de configuración básica de sistemas de Red Hat
Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_basic_system_settings/#using-python3

96 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

EJERCICIO GUIADO

ADMINISTRACIÓN DE VERSIONES
PYTHON EN RHEL 8
En este ejercicio, se asegurará de que tanto Python 3 como Python 2 estén instalados en un
servidor, y usen el comando alternatives para controlar si un ejecutable de Python sin
versión está disponible y qué versión de Python usa.

RESULTADOS
Debe ser capaz de instalar Python 2.7 y Python 3.6, y configurar el comando python para
vincularlo a uno de sus binarios.

1. En servera, verifique que el comando python no exista de manera predeterminada en


Red Hat Enterprise Linux 8.

1.1. Inicie sesión en servera y conviértase en usuario root.

[student@workstation ~]$ ssh servera


[student@servera ~]$ sudo -i
[root@servera ~]#

1.2. Verifique que el comando python no exista de manera predeterminada.

[root@servera ~]# which python


/usr/bin/which: no python in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
root/bin)

2. Instale Python 2.7 y verifique que esté disponible.

2.1. Use Yum para instalar Python 2.7 usando el módulo python27.

[root@servera ~]# yum module install python27


...output omitted...
Is this ok [y/N]: y
...output omitted...

2.2. Verifique que Python 2.7 esté disponible.

[root@servera ~]# python2 -V


Python 2.7.15

RH354-RHEL8.0-es-1-20190319 97
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

3. Instale Python 3.6 y verifique que esté disponible.

3.1. Use Yum para instalar Python 3.6 usando el módulo python36.

[root@servera ~]# yum module install python36


...output omitted...
Is this ok [y/N]: y
...output omitted...

3.2. Verifique que Python 3.6 esté disponible.

[root@servera ~]# python3 -V


Python 3.6.8

4. Usar el alternatives comando para habilitar /usr/bin/python3. Cuando finalice,


cierre sesión en servera.

4.1. Use el comando alternatives para apuntar /usr/bin/python a /usr/bin/


python3.

[root@servera ~]# alternatives --config python


There are 3 programs which provide 'python'.

Selection Command
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python2
3 /usr/bin/python3

Enter to keep the current selection[+], or type selection number: 3

4.2. Verifique que el comando python use Python 3.6.

[root@servera ~]# python -V


Python 3.6.8

4.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@servera ~]$ exit
[student@workstation ~]$

Esto concluye el ejercicio guiado.

98 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

TRABAJO DE LABORATORIO

ADAPTACIÓN A LOS CAMBIOS DEL


SISTEMA PRINCIPAL (CORE)

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, realizará cambios en la autenticación del usuario, configurará
la sincronización de la hora NTP y ajustará la configuración de Python en un servidor.

RESULTADOS
Debe ser capaz de configurar los parámetros de identidad y autorización con la nueva
herramienta Authselect, que incluye la configuración del sistema serverb para usar la
zona horaria apropiada para Surinam, la configuración de Chronyd en serverb para usar
el servidor NTP que se ejecuta en classroom.example.com como fuente de tiempo, y
asegurarse de que tanto Python 3 como Python 2 estén instalados en un servidor.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab core-review start.

[student@workstation ~]$ lab core-review start

1. En serverb, cree un nuevo perfil lab-profile Authselect basado en el perfil sssd


existente.
2. Su máquina serverb ha sido reubicada en Surinam, Sudamérica. Establezca la zona horaria
apropiada.
3. Habilite la sincronización de NTP en el sistema serverb y use classroom.example.com
como fuente de hora.
4. Confirme que el reloj en serverb esté sincronizado con classroom.example.com.
5. En serverb, instale Python 2.7 y Python 3.6, y configure el comando python para apuntar a
los binarios de Python 3.6. Apunte /usr/bin/python al comando /usr/bin/python3.
6. Ejecute el comando lab core-review grade en workstation para calificar su trabajo.

Limpieza
En workstation, ejecute lab core-review finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab core-review finish

Esto concluye el trabajo de laboratorio.

RH354-RHEL8.0-es-1-20190319 99
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

SOLUCIÓN

ADAPTACIÓN A LOS CAMBIOS DEL


SISTEMA PRINCIPAL (CORE)

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, realizará cambios en la autenticación del usuario, configurará
la sincronización de la hora NTP y ajustará la configuración de Python en un servidor.

RESULTADOS
Debe ser capaz de configurar los parámetros de identidad y autorización con la nueva
herramienta Authselect, que incluye la configuración del sistema serverb para usar la
zona horaria apropiada para Surinam, la configuración de Chronyd en serverb para usar
el servidor NTP que se ejecuta en classroom.example.com como fuente de tiempo, y
asegurarse de que tanto Python 3 como Python 2 estén instalados en un servidor.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student.

En workstation, ejecute el comando lab core-review start.

[student@workstation ~]$ lab core-review start

1. En serverb, cree un nuevo perfil lab-profile Authselect basado en el perfil sssd


existente.

1.1. Inicie sesión en serverb y conviértase en usuario root.

[student@workstation ~]$ ssh root@serverb


[student@serverb ~]$ sudo -i
[root@serverb ~]#

1.2. Cree un nuevo perfil lab-profile Authselect basado en el perfil sssd existente.

[root@serverb ~]# authselect create-profile lab-profile \


> -b sssd --symlink-meta
New profile was created at /etc/authselect/custom/lab-profile

2. Su máquina serverb ha sido reubicada en Surinam, Sudamérica. Establezca la zona horaria


apropiada.

2.1. Identifique la zona horaria correcta para Surinam/Sudamérica.

[root@serverb ~]# tzselect


Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".

100 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

1) Africa
2) Americas
...output omitted...
#? 2
Please select a country whose clocks agree with yours.
...output omitted...
9) Brazil 27) Guyana 45) St Vincent
10) Canada 28) Haiti 46) Suriname
11) Caribbean NL 29) Honduras 47) Trinidad & Tobago
...output omitted...
#? 46

The following information has been given:

Suriname

Therefore TZ='America/Paramaribo' will be used.


Selected time is now: Tue Feb 19 18:51:03 -03 2019.
Universal Time is now: Tue Feb 19 21:51:03 UTC 2019.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
TZ='America/Paramaribo'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Paramaribo

2.2. Cambie la zona horaria a Estados Unidos/Paramaribo.

[root@serverb ~]# timedatectl set-timezone America/Paramaribo

3. Habilite la sincronización de NTP en el sistema serverb y use classroom.example.com


como fuente de hora.

3.1. Configure chronyd para sincronizar la hora en serverb con


classroom.example.com. Edite /etc/chrony.conf para incluir el siguiente
extracto del archivo de configuración:

# Use public servers from the pool.ntp.org project.


# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rhel.pool.ntp.org iburst
server classroom.example.com iburst
...output omitted...

3.2. Reinicie y habilite el servicio chronyd.

[root@serverb ~]# systemctl restart chronyd

RH354-RHEL8.0-es-1-20190319 101
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

[root@serverb ~]# systemctl enable chronyd

3.3. Habilite la sincronización de NTP en serverb.

[root@serverb ~]# timedatectl set-ntp true

4. Confirme que el reloj en serverb esté sincronizado con classroom.example.com.

4.1. Verifique el estado de sincronización del reloj.

[root@serverb ~]# timedatectl


...output omitted...
System clock synchronized: yes
...output omitted...

4.2. Confirme que classroom.example.com sea la fuente de hora para sincronizar el


reloj en serverb.

[root@serverb ~]# chronyc sources -v


210 Number of sources = 1

.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 8 6 37 51 -25ns[-703us] +/- 128us

5. En serverb, instale Python 2.7 y Python 3.6, y configure el comando python para apuntar a
los binarios de Python 3.6. Apunte /usr/bin/python al comando /usr/bin/python3.

5.1. Use Yum para instalar Python 2.7 usando el módulo python27.

[root@serverb ~]# yum module install python27


...output omitted...
Is this ok [y/N]: y
...output omitted...

5.2. Verifique que Python 2.7 esté disponible.

[root@serverb ~]# python2 -V


Python 2.7.15

5.3. Use Yum para instalar Python 3.6 usando el módulo python36.

[root@serverb ~]# yum module install python36

102 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

...output omitted...
Is this ok [y/N]: y
...output omitted...

5.4. Verifique que Python 3.6 esté disponible.

[root@serverb ~]# python3 -V


Python 3.6.8

5.5. Use el comando alternatives para apuntar /usr/bin/python a /usr/bin/


python3.

[root@serverb ~]# alternatives --config python


There are 3 programs which provide 'python'.

Selection Command
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python2
3 /usr/bin/python3

Enter to keep the current selection[+], or type selection number: 3

5.6. Verifique que el comando python use Python 3.6.

[root@serverb ~]# python -V


Python 3.6.8

5.7. Cierre sesión en serverb.

[root@serverb ~]# exit


[student@serverb ~]$ exit
[student@workstation ~]$

6. Ejecute el comando lab core-review grade en workstation para calificar su trabajo.

Limpieza
En workstation, ejecute lab core-review finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab core-review finish

Esto concluye el trabajo de laboratorio.

RH354-RHEL8.0-es-1-20190319 103
CAPÍTULO 4 | Adaptación a los cambios del sistema principal (core)

RESUMEN

En este capítulo, aprendió lo siguiente:

• Wayland es el nuevo sistema de ventanas diseñado para reemplazar a X11 en Red Hat
Enterprise Linux 8.

• RHEL 8 presenta la nueva utilidad Authselect, que simplifica la configuración de la autenticación


del usuario y reemplaza la utilidad Authconfig.

• En RHEL 8, Chrony es la implementación del protocolo de tiempo en red (NTP).

• La instalación predeterminada de RHEL 8 no incluye Python. Tanto Python 2.7 como Python 3.6
están disponibles en el repositorio de AppStream.

104 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5

IMPLEMENTACIÓN DE
ALMACENAMIENTO CON LAS
NUEVAS FUNCIONES
META Describir las principales mejoras en los
componentes de administración de volúmenes y
sistemas de archivos locales y remotos.

OBJETIVOS • Describa los modernos diseños de sistemas


de archivos que incluyen funciones de
administración de volúmenes y grupos.
• Describa las nuevas mejoras del controlador de
almacenamiento que incluyen la compresión de
tiempo de ejecución y la deduplicación.
• Configure el servicio NFS con nuevas
herramientas y un conocimiento de las mejoras
y los cambios en NFS de RHEL 8.

SECCIONES • Gestión de almacenamiento en capas con


Stratis (y ejercicio guiado)
• Compresión y deduplicación de
almacenamiento con VDO (y ejercicio guiado)
• Administración de mejoras de NFS (y ejercicio
guiado)

TRABAJO DE Implementación de almacenamiento con las nuevas


funciones
LABORATORIO

RH354-RHEL8.0-es-1-20190319 105
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

GESTIÓN DE ALMACENAMIENTO EN
CAPAS CON STRATIS

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de describir los modernos diseños de
sistemas de archivos que incluyen funciones de administración de volúmenes y grupos.

ADMINISTRADOR DE ALMACENAMIENTO STRATIS


Red Hat Enterprise Linux 8 incluye el administrador de almacenamiento Stratis, que hace posible
la administración de colecciones de dispositivos de bloque para crear sistemas de archivos
flexibles. La función combinada de sistema de archivos y administración de volúmenes que se
aprendió por primera vez en ZFS o Btrfs ahora está disponible en Stratis. Los sistemas de archivos
Btrfs y ZFS no son compatibles y ya no están disponibles en Red Hat Enterprise Linux 8. Stratis
también proporciona funciones avanzadas de almacenamiento, como aprovisionamiento ligero,
snapshots y monitoreo.

Figura 5.1: Elementos del administrador de almacenamiento Stratis

Implementación de un sistema de archivos con administración de volúmenes con Stratis

• Stratis es un sistema de archivos con administración de volúmenes (VMF).


• Los sistemas de archivos con administración de volúmenes integran el sistema de archivos
del mismo volumen, en contraste con LVM, donde el volumen también requiere un sistema de
archivos.
• El diseño de Stratis supone que SSD es el tipo de almacenamiento predeterminado, o al menos
como un nivel de caché, por lo que el enfoque del diseño está en mejorar la flexibilidad y
confiabilidad.
• BtrFS y ZFS ya no son compatibles ni están disponibles en Red Hat Enterprise Linux 8.
• Stratis proporciona funciones avanzadas como aprovisionamiento ligero (thin provisioning),
snapshots y supervisión.

106 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

Figura 5.2: Stratis en la pila de gestión de almacenamiento de Linux

Descripción de capas de Stratis

• Stratis gestiona grupos, que son una colección de dispositivos de bloque. Los sistemas de
archivos Stratis se crean dentro de esos grupos. Esos sistemas de archivos incorporan tanto el
volumen como el sistema de archivos, XFS de forma predeterminada.
• Internamente, Stratis usa el subsistema Backstore para administrar los dispositivos de bloque y
el subsistema Thinpool para administrar los grupos con aprovisionamiento ligero.
• Backstore tiene un nivel de datos que mantiene los metadatos del disco en dispositivos de
bloque, y detecta y corrige los datos dañados.
• El nivel de memoria caché usa dispositivos de bloque de alto rendimiento para que actúen como
memoria caché por encima del nivel de datos.
• El subsistema Thinpool gestiona los volúmenes con aprovisionamiento ligero asociados a los
sistemas de archivos Stratis. Este subsistema usa el controlador de asignación de dispositivos
dm-thin para reemplazar LVM en el dimensionamiento y la gestión de volúmenes virtuales.
Estos volúmenes se crean con un gran tamaño virtual y se formatean con XFS. Si se está por
alcanzar el tamaño virtual del sistema de archivos Stratis, el sistema de archivos se amplía
automáticamente.

RH354-RHEL8.0-es-1-20190319 107
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

Figura 5.3: Capas de Stratis

Administración de sistemas de archivos con volúmenes administrados con el administrador


de almacenamiento Stratis

• Cree grupos de uno o varios dispositivos de bloque con el comando stratis pool create.
• Agregue dispositivos de bloque adicionales a un grupo con el comando stratis pool add-
data.
• Cree sistemas de archivos dinámicos y flexibles encima de los grupos con el comando stratis
filesystem create.
• Stratis permite la captura de instantáneas del sistema de archivos con el comando stratis
fs snapshot. Las capturas de instantáneas son independientes de los sistemas de archivos de
origen.
• Puede usar la API D-Bus para comunicarse con el daemon stratisd.

Stratis simplifica la pila de almacenamiento


Stratis simplifica muchos aspectos del aprovisionamiento y la configuración del almacenamiento
local. Por ejemplo, la instalación del SO en un grupo de Stratis con Anaconda. Después
de seleccionar los discos que se utilizarán para el grupo, se omite el flujo de trabajo de
dimensionamiento del sistema de archivos. Anaconda podría usar la API de Stratis directamente,
en lugar de tener que trabajar en Blivet para desarrollar una API además de las herramientas de
línea de comandos. Otras herramientas y productos, como Cockpit, RHEV y Atomic, serían más
simples y tendrían menos errores con Stratis para almacenamiento e instantáneas, porque no se
tendrían que preocupar por el dimensionamiento por sistema de archivos, sino solo por que el
grupo tenga suficiente "almacenamiento de respaldo". La API permite una mejor integración de
herramienta a herramienta que el uso programático de cualquier CLI.

108 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

REFERENCIAS
Para obtener más información, consulte el capítulo Gestión de almacenamiento
local en capas con Stratis de la Guía de configuración y administración de sistemas de
archivos con Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_and_managing_file_systems/

Almacenamiento de Stratis
https://stratis-storage.github.io/

Lecciones que Stratis aprendió de ZFS, Btrfs y Linux Volume Manager


https://opensource.com/article/18/4/stratis-lessons-learned

RH354-RHEL8.0-es-1-20190319 109
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

EJERCICIO GUIADO

GESTIÓN DE ALMACENAMIENTO EN
CAPAS CON STRATIS
En este ejercicio, usará el administrador de almacenamiento Stratis para crear grupos,
volúmenes y sistemas de archivos que funcionan en cooperación.

RESULTADOS
Debe ser capaz de usar el administrador de almacenamiento Stratis para combinar discos en
grupos, y crear volúmenes y sistemas de archivos, así como para mostrar cómo los sistemas
de archivos y los volúmenes comparten grupos de manera cooperativa.

1. Instale el administrador de almacenamiento Stratis en servera.

1.1. Inicie sesión en servera como el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Instale los paquetes stratisd y stratis-cli en servera.

[root@servera ~]# yum install stratisd stratis-cli


...output omitted...
Is this ok [y/N]: y
...output omitted...

1.3. Habilite el servicio stratisd en servera para que se inicie durante el proceso de
arranque.

[root@servera ~]# systemctl enable --now stratisd


Created symlink /etc/systemd/system/sysinit.target.wants/stratisd.service → /usr/
lib/systemd/system/stratisd.service.

2. Use el administrador de almacenamiento Stratis para crear un nuevo grupo con el


dispositivo /dev/vdb.

2.1. Cree el grupo stratispool con el dispositivo /dev/vdb.

[root@servera ~]# stratis pool create stratispool /dev/vdb

2.2. Verifique que el grupo stratispool ya esté disponible.

[root@servera ~]# stratis pool list


Name Total Physical Size Total Physical Used
stratispool 1 GiB 52 MiB

110 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

3. Añada /dev/vdc como dispositivo adicional del grupo stratispool.

3.1. Añada /dev/vdc como dispositivo adicional del grupo stratispool.

[root@servera ~]# stratis pool add-data stratispool /dev/vdc

3.2. Verifique que /dev/vdc sea parte del grupo stratispool.

[root@servera ~]# stratis blockdev


Pool Name Device Node Physical Size State Tier
stratispool /dev/vdb 1 GiB In-use Data
stratispool /dev/vdc 1 GiB In-use Data

4. Cree el sistema de archivos filesystem1 en el grupo stratispool.

4.1. Cree el sistema de archivos filesystem1 en el grupo stratispool.

[root@servera ~]# stratis fs create stratispool filesystem1

4.2. Verifique que el sistema de archivos filesystem1 ahora esté disponible.

[root@servera ~]# stratis fs list stratispool


Pool Name Name Used Created Device
stratispool filesystem1 546 MiB Jan 23 2019 08:44 /stratis/stratispool/
filesystem1

5. Monte el sistema de archivos filesystem1 y cree un nuevo archivo en él.

5.1. Cree un nuevo punto de montaje denominado /stratisvol.

[root@servera ~]# mkdir /stratisvol

5.2. Monte el sistema de archivos filesystem1 en el directorio /stratisvol.

[root@servera ~]# mount /stratis/stratispool/filesystem1 /stratisvol

5.3. Verifique que el sistema de archivos filesystem1 ahora esté accesible.

[root@servera ~]# mount


... output omitted ...
/dev/mapper/stratis-1-b5ceb83a7c57488a9c02b501d1419ce4-thin-
fs-333a2d9922c04ee6abebcc71bdb047b5 on /stratisvol type xfs
(rw,relatime,seclabel,attr2,inode64,sunit=2048,swidth=2048,noquota)

5.4. Cree un archivo nuevo vacío llamado file.txt.

[root@servera ~]# touch /stratisvol/file.txt

RH354-RHEL8.0-es-1-20190319 111
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

6. Cree una instantánea del sistema de archivos filesystem1. Cuando haya terminado,
elimine el archivo que creó anteriormente.

6.1. Cree una instantánea denominada filesystem1-snapshot del sistema de


archivos filesystem1.

[root@servera ~]# stratis fs snapshot stratispool filesystem1 filesystem1-snapshot

6.2. Elimine el archivo file.txt.

[root@servera ~]# rm -f /stratisvol/file.txt

7. Inspeccione la instantánea filesystem1-snapshot que acaba de crear y verifique que el


archivo esté disponible.

7.1. Cree un punto de montaje denominado /stratisvolsnap para la instantánea.

[root@servera ~]# mkdir /stratisvolsnap

7.2. Monte la instantánea filesystem1-snapshot en el directorio /


stratisvolsnap.

[root@servera ~]# mount /stratis/stratispool/filesystem1-snapshot /stratisvolsnap/

7.3. Verifique que el archivo file.txt esté disponible.

[root@servera ~]# ls /stratisvolsnap


file.txt

8. Destruya la instantánea filesystem1-snapshot.

8.1. Desmonte la instantánea filesystem1-snapshot.

[root@servera ~]# umount /stratis/stratispool/filesystem1-snapshot

8.2. Destruya la instantánea filesystem1-snapshot.

[root@servera ~]# stratis filesystem destroy stratispool filesystem1-snapshot

9. Destruya el sistema de archivos filesystem1.

9.1. Desmonte el sistema de archivos filesystem1.

[root@servera ~]# umount /stratis/stratispool/filesystem1

9.2. Destruya el sistema de archivos filesystem1.

[root@servera ~]# stratis filesystem destroy stratispool filesystem1

112 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

10. Destruya el grupo stratispool. Cuando finalice, cierre sesión en servera.

10.1. Destruya el grupo stratispool.

[root@servera ~]# stratis pool destroy stratispool

10.2. Verifique que el grupo stratispool no esté disponible.

[root@servera ~]# stratis pool list


Name Total Physical Size Total Physical Used

10.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 113
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

COMPRESIÓN Y DEDUPLICACIÓN DE
ALMACENAMIENTO CON VDO

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de describir las nuevas mejoras
del controlador de almacenamiento que incluyen la compresión en tiempo de ejecución y la
deduplicación.

OPTIMIZADOR DE DATOS VIRTUAL


RHEL 8 incluye el optimizador de datos virtual (VDO), que optimiza la huella de datos en
dispositivos de bloque. VDO incluye dos utilidades, vdo para gestionar y configurar volúmenes de
VDO, y vdostats para mostrar el uso y las E/S en bloque para un volumen de VDO.

Reducción de la huella de datos con VDO

• El optimizador de datos virtual (VDO) es un controlador de asignación de dispositivos Linux que


reduce el uso de espacio en disco en dispositivos en bloque, y minimiza el ancho de banda de
replicación.
• VDO incluye dos módulos de kernel, el módulo kvdo para controlar la compresión de datos y el
módulo uds para la deduplicación.
• VDO admite la deduplicación y la compresión de datos en línea.

Figura 5.4: Máquinas virtuales basadas en VDO

Fases de optimización de datos virtuales

• VDO reduce la huella de datos de almacenamiento en tres fases: eliminación de bloque cero,
deduplicación de bloques redundantes y compresión de datos.
• VDO elimina los bloques que solo incluyen ceros y preserva sus metadatos.
• El módulo de kernel del servicio de deduplicación universal (UDS) revisa los metadatos de VDO
disponibles para detectar bloques duplicados. Si se encuentra un bloque duplicado, este bloque
apunta a los metadatos del bloque ya disponible.
• Cuando termine con la eliminación de bloque cero y la deduplicación, el módulo de kernel kvdo
comprime los bloques con la compresión LZ4 y los agrupa en bloques de 4 KB.

114 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

Estructura de un volumen de VDO

• Un volumen de VDO contiene dos partes: UDS y VDO


• La parte de UDS incluye el nombre y la ubicación de cada bloque para admitir la deduplicación
de bloques
• La parte de VDO incluye los datos de volumen y los metadatos de VDO

Figura 5.5: Estructura de un volumen de VDO

REFERENCIAS
Para obtener más información, consulte el capítulo Cómo empezar con VDO de la
Guía de deduplicación y compresión de almacenamiento de Red Hat Enterprise
Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html/deduplicating_and_compressing_storage/

Introducción al optimizador de datos virtual


https://rhelblog.redhat.com/2018/04/11/introducing-virtual-data-optimizer-to-
reduce-cloud-and-on-premise-storage-costs/

RH354-RHEL8.0-es-1-20190319 115
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

EJERCICIO GUIADO

COMPRESIÓN Y DEDUPLICACIÓN DE
ALMACENAMIENTO CON VDO
En este ejercicio, realizará actividades con archivos que demuestran las funciones integradas
de compresión y deduplicación.

RESULTADOS
Debe ser capaz de ver los efectos de la deduplicación en un volumen de optimizador de datos
virtual (VDO).

1. En servera, cree un volumen de VDO llamado vdo1, con el dispositivo /dev/vdd.


Establezca su tamaño lógico en 30 GB.

1.1. Inicie sesión en servera como el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Cree el volumen vdo1 con /dev/vdd como el dispositivo. Use 30 GB como tamaño
lógico.

[root@servera ~]# vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=30G


Creating VDO vdo1
Starting VDO vdo1
Starting compression on VDO vdo1
VDO instance 0 volume is ready at /dev/mapper/vdo1

1.3. Verifique que el volumen vdo1 esté disponible.

[root@servera ~]# vdo list


vdo1

2. Verifique que las funciones de compresión y deduplicación estén habilitadas en el volumen


vdo1.

2.1. Verifique que la deduplicación esté habilitada en el volumen vdo1.

[root@servera ~]# vdo status -n vdo1 | grep Deduplication


Deduplication: enabled

2.2. Verifique que la compresión esté habilitada en el volumen vdo1.

[root@servera ~]# vdo status -n vdo1 | grep Compression


Compression: enabled

116 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

3. Cree un sistema de archivos XFS en el volumen vdo1 y móntelo en /mnt/vdo1.

3.1. Cree un sistema de archivos XFS en el volumen vdo1. Espere hasta que el sistema
registre el nodo del dispositivo.

[root@servera ~]# mkfs.xfs -K /dev/mapper/vdo1


...output omitted...
[root@servera ~]# udevadm settle

3.2. Cree el directorio /mnt/vdo1.

[root@servera ~]# mkdir -m 1777 /mnt/vdo1

3.3. Monte el volumen vdo1 en /mnt/vdo1.

[root@servera ~]# mount /dev/mapper/vdo1 /mnt/vdo1/

4. Cree varias copias de un archivo en el volumen vdo1 para verificar cómo se lleva a cabo la
deduplicación.

4.1. Verifique el estado del volumen vdo1. Cuando se lo crea, el volumen de VDO se
reserva alrededor de 3 o 4 GB para sí mismo.

[root@servera ~]# vdostats --human-readable


Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 4.0G 16.0G 20% 98%

4.2. Descargue el archivo http://content.example.com/rhel8.0/x86_64/dvd/


images/install.img y cópielo al directorio /mnt/vdo1. Puede tardar hasta un
minuto en descargarlo.

[root@servera ~]# wget \


> http://content.example.com/rhel8.0/x86_64/dvd/images/install.img
[root@servera ~]# cp install.img /mnt/vdo1

4.3. Verifique el estado del volumen vdo1 para ver los cambios en % de uso y % de
ahorro de espacio.

[root@servera ~]# vdostats --human-readable


Device Size Used Available Use% Space saving%

RH354-RHEL8.0-es-1-20190319 117
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

/dev/mapper/vdo1 20.0G 4.4G 15.6G 22% 3%

4.4. Cree otra copia del archivo install.img en el directorio /mnt/vdo1.

[root@servera ~]# cp install.img /mnt/vdo1/install.img.2

4.5. Verifique el estado del volumen vdo1 y el aumento de tamaño de % de ahorro de


espacio.

[root@servera ~]# vdostats --human-readable


Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 4.5G 15.5G 22% 50%

4.6. Cree una copia más del archivo install.img en el directorio /mnt/vdo1.

[root@servera ~]# cp install.img /mnt/vdo1/install.img.3

4.7. Verifique el estado del volumen vdo1 y el aumento de tamaño de % de ahorro de


espacio.

[root@servera ~]# vdostats --human-readable


Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 4.5G 15.5G 22% 67%

5. Elimine el volumen vdo1. Cuando finalice, cierre sesión en servera.

5.1. Desmonte el volumen vdo1.

[root@servera ~]# umount /mnt/vdo1

5.2. Elimine el volumen vdo1.

[root@servera ~]# vdo remove --name=vdo1


Removing VDO vdo1
Stopping VDO vdo1

5.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

Esto concluye el ejercicio guiado.

118 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

ADMINISTRACIÓN DE MEJORAS DE NFS

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de configurar el servicio NFS con
nuevas herramientas y un conocimiento de las mejoras y los cambios en NFS de RHEL 8.

USO DE NFS EN RED HAT ENTERPRISE LINUX 8


Red Hat Enterprise Linux 8 es compatible con el uso del sistema de archivos de red (NFS) 4.2.

Mejoras de NFS en Red Hat Enterprise Linux 8

• La versión predeterminada de NFS en Red Hat Enterprise Linux 8 es 4.2; son compatibles las
versiones principales de NFSv4 y NFSv3; ya no se admite NFSv2.
• El archivo de configuración de NFS es /etc/nfs.conf. El archivo de configuración /etc/
sysconfig/nfs quedó obsoleto.
• Presentación de la nueva herramienta nfsconf para gestionar archivos de configuración de
NFS.
• El servicio autofs usa /etc/auto.master (mapa maestro) como archivo de configuración
predeterminado. El formato amd también se reconoce.
• Red Hat Enterprise Linux 8 elimina el usuario nfsnobody y cambia el UID y GID del usuario y
grupo nobody a 65534. Los UID o GID no existentes se asignan al usuario y grupo nobody.
• NFSv4 ya no requiere el servicio rpcbind para operar, lo que elimina la necesidad de
conexiones UDP.

Características de NFS 4.2

• La copia en servidor permite que el cliente NFS copie datos de manera eficiente dentro de los
sistemas de archivos NFS sin desperdiciar recursos de red.
• Los archivos dispersos (sparse) permiten que los archivos tengan varios orificios, que son
bloques de datos compuestos solo de ceros. Estos se transfieren como ceros para mejorar la
velocidad total.
• La reserva de espacio permite reservar espacio libre en los servidores NFS, lo que evita que se
queden sin espacio.
• El etiquetado de NFS hace cumplir los derechos de acceso a los datos y habilita SELinux en los
sistemas de archivos NFS.

La herramienta nfsconf

• Red Hat Enterprise Linux 8 introduce la herramienta nfsconf para gestionar los archivos de
configuración del cliente y servidor de NFS.
• Use la herramienta nfsconf para obtener, configurar o probar archivos de configuración de
NFS.
• La herramienta nfsconf maneja las configuraciones de NFSv4 y NFSv3.
• El archivo de configuración predeterminado de nfsconf es /etc/nfs.conf.
• Use el nfsconf --file para cargar la ubicación alternativa del archivo de configuración.

RH354-RHEL8.0-es-1-20190319 119
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

REFERENCIAS
Páginas del manual nfsconf(8), nfs.conf(5).

Para obtener más información, consulte el capítulo Montaje de recursos compartidos


de NFS de la Guía de configuración y administración de sistemas de archivos con
Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html/configuring_and_managing_file_systems

Protocolo Sistema de Archivos de Red (NFS) versión 4 menor versión 2


https://tools.ietf.org/html/rfc7862

120 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

EJERCICIO GUIADO

ADMINISTRACIÓN DE MEJORAS DE NFS


En este ejercicio, configurará NFS usando la utilidad nfsconf e investigará los cambios en el
servicio NFS en Red Hat Enterprise Linux 8.

RESULTADOS
Debe poder instalar y configurar un servidor solo con NFSv4, para proporcionar
almacenamiento compartido, y usar autofs en el lado del cliente para consumirlo.

1. Instale todos los paquetes necesarios para exportar recursos compartidos de NFS en
servera.

1.1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Instale el paquete nfs-utils en servera, si aún no se ha instalado.

[root@servera ~]# yum install nfs-utils


...output omitted...
Is this ok [y/N]: y
...output omitted...

1.3. Habilite el servicio nfs-server en servera para que se inicie durante el proceso
de arranque.

[root@servera ~]# systemctl enable --now nfs-server


Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /
usr/lib/systemd/system/nfs-server.service.

2. Use el comando nfsconf para configurar /etc/nfs.conf; habilite el servidor NFS para
que funcione solo en la versión 4.X y también asegúrese de que el modo TCP esté habilitado
y el modo UDP esté deshabilitado.

2.1. Revise las etiquetas y secciones disponibles en el archivo /etc/nfs.conf.

[root@servera ~]# cat /etc/nfs.conf


#
# This is a general configuration for the
# NFS daemons and tools
...output omitted...
[nfsd]
# debug=0
# threads=8
# host=

RH354-RHEL8.0-es-1-20190319 121
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

# port=0
# grace-time=90
# lease-time=90
# tcp=y
# vers2=n
# vers3=y
# vers4=y
# vers4.0=y
# vers4.1=y
# vers4.2=y
# rdma=n
#
...output omitted...

2.2. Deshabilite las etiquetas udp , vers2, vers3; configúrelas con la herramienta
nfsconf.

[root@servera ~]# nfsconf --set nfsd udp n


[root@servera ~]# nfsconf --set nfsd vers2 n
[root@servera ~]# nfsconf --set nfsd vers3 n

2.3. Habilite las etiquetas vers4, vers4.0, vers4.1, vers4.2; configúrelas con la
herramienta nfsconf.

[root@servera ~]# nfsconf --set nfsd tcp y


[root@servera ~]# nfsconf --set nfsd vers4 y
[root@servera ~]# nfsconf --set nfsd vers4.0 y
[root@servera ~]# nfsconf --set nfsd vers4.1 y
[root@servera ~]# nfsconf --set nfsd vers4.2 y

2.4. Deshabilite la escucha de llamadas de protocolo RPCBIND, MOUNT y NSM, que no son
necesarias en el caso solo de NFSv4. Deshabilite los servicios relacionados:

[root@servera ~]# systemctl mask --now rpc-statd.service \


> rpcbind.service rpcbind.socket
Created symlink /etc/systemd/system/rpc-statd.service → /dev/null.
Created symlink /etc/systemd/system/rpcbind.service → /dev/null.
Created symlink /etc/systemd/system/rpcbind.socket → /dev/null.

2.5. Reinicie el servicio nfs-server para aplicar los cambios.

[root@servera ~]# systemctl restart nfs-server

3. Configure firewalld en servera para permitir las conexiones entrantes para el servidor
NFSv4.

3.1. Inspeccione qué puertos están escuchando, en servera como root con el comando
ss.

[root@servera ~]$ ss --listening --tcp --udp


Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

122 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:*


udp UNCONN 0 0 [::1]:323 [::]:*
tcp LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
tcp LISTEN 0 64 0.0.0.0:nfs 0.0.0.0:*
tcp LISTEN 0 128 [::]:ssh [::]:*
tcp LISTEN 0 64 [::]:nfs [::]:*
tcp LISTEN 0 128 *:websm *:*

3.2. Configure firewalld en servera para permitir el servicio NFSv4.

[root@servera ~]# firewall-cmd --add-service=nfs


success

3.3. Haga que los cambios de firewalld sean persistentes con firewall-cmd.

[root@servera ~]# firewall-cmd --runtime-to-permanent


success

3.4. Enumere los servicios habilitados en firewalld.

[root@servera ~]# firewall-cmd --list-services


cockpit dhcpv6-client nfs ssh

4. Configure servera para exportar contenido con el servidor NFSv4.

4.1. Cree una carpeta en servera para exportar contenido.

[root@servera ~]# mkdir /exports

4.2. Cambie el propietario de la carpeta /exports al usuario nobody y el grupo nobody.

[root@servera ~]# chown nobody:nobody /exports

4.3. Configure y restaure contextos de SELinux en la carpeta /exports.

[root@servera ~]# semanage fcontext -a -t nfsd_fs_t "/exports(/.*)?"


[root@servera ~]# restorecon -vvFR /exports/

4.4. Exporte la carpeta /exports creando un nuevo archivo de configuración en /etc/


exports.d/

[root@servera ~]# cat << EOF > /etc/exports.d/example.exports


> /exports *(rw,root_squash)

RH354-RHEL8.0-es-1-20190319 123
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

> EOF

4.5. Vuelva a cargar las exportaciones de NFSv4:

[root@servera ~]# exportfs -r

4.6. Cierre sesión en servera.

[root@servera ~]# exit


Connection to servera closed.

5. Configure serverb como sistema cliente de exportaciones de servera NFSv4 y use


autofs.

5.1. Inicie sesión en serverb con el usuario root.

[student@workstation ~]$ ssh root@serverb

5.2. Instale el paquete autofs en serverb.

[root@serverb ~]# yum install autofs


...output omitted...
Is this ok [y/N]: y
...output omitted...

5.3. Habilite el servicio autofs en serverb para que se inicie durante el proceso de
arranque.

[root@serverb ~]# systemctl enable --now autofs


Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/
lib/systemd/system/autofs.service.

5.4. Cree una carpeta de punto de montaje en serverb.

[root@serverb ~]# mkdir -p /mnt/exports

5.5. Configure el archivo /etc/auto.master en serverb

[root@serverb ~]# echo "/mnt/exports /etc/auto.exports" >> /etc/auto.master

5.6. Configure /etc/auto.exports con un map-file en serverb

[root@serverb ~]# cat << EOF > /etc/auto.exports


> example -fstype=nfs4 servera.lab.example.com:/exports/example

124 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

> EOF

5.7. Reinicie el servicio autofs para aplicar los cambios.

[root@serverb ~]# systemctl restart autofs

6. Pruebe el servidor autofs y NFSv4, cree un pequeño archivo de contenido de texto en


servera y revíselo en serverb. Cuando finalice, cierre sesión en serverb.

6.1. Cambie a servera para crear un subdirectorio /exports/example y cree un


archivo de texto dentro de la carpeta.

[root@servera ~]# mkdir -p /exports/example


[root@servera ~]# echo "Test from $(hostname)" > /exports/example/TEST

6.2. En serverb , use autofs para explorar el punto de montaje a pedido exportado en
servera

[root@serverb ~]# cd /mnt/exports/example


[root@serverb example]# ls
TEST
[root@serverb example]# cat TEST
Test from servera.lab.example.com

6.3. Explore las opciones de mount para el recurso compartido de NFSv4 montado
automáticamente.

[root@serverb example]# mount | grep nfs


servera.lab.example.com:/exports/example on /mnt/exports/example type nfs4
(rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,
retrans=2,sec=sys,clientaddr=172.25.250.11,local_lock=none,addr=172.25.250.10)

6.4. Cierre sesión en serverb.

[root@serverb example]# exit


[student@workstation ~]$

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 125
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

TRABAJO DE LABORATORIO

IMPLEMENTACIÓN DE
ALMACENAMIENTO CON LAS NUEVAS
FUNCIONES

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En esta práctica de laboratorio, utilizará el administrador de almacenamiento Stratis para
crear un sistema de archivos y configurar un volumen de VDO.

RESULTADOS
Debe ser capaz de crear un sistema de archivos con el administrador de almacenamiento
Stratis y un volumen de VDO.

1. En servera, configure un grupo con el administrador de almacenamiento Stratis con los


dispositivos /dev/vdb y /dev/vdc.
2. Cree un sistema de archivos en el grupo anterior y cree una instantánea.
3. Elimine el sistema de archivos, su instantánea y el grupo.
4. En servera, cree un volumen de VDO con /dev/vdd con un tamaño de 30 GB. Cuando haya
terminado, cree un sistema de archivos XFS en él y móntelo.
5. Elimine el volumen VDO. Cuando finalice, cierre sesión en servera.

Esto concluye el trabajo de laboratorio.

126 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

SOLUCIÓN

IMPLEMENTACIÓN DE
ALMACENAMIENTO CON LAS NUEVAS
FUNCIONES

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En esta práctica de laboratorio, utilizará el administrador de almacenamiento Stratis para
crear un sistema de archivos y configurar un volumen de VDO.

RESULTADOS
Debe ser capaz de crear un sistema de archivos con el administrador de almacenamiento
Stratis y un volumen de VDO.

1. En servera, configure un grupo con el administrador de almacenamiento Stratis con los


dispositivos /dev/vdb y /dev/vdc.

1.1. Inicie sesión en servera como el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Verifique que el servicio stratisd esté disponible.

[root@servera ~]# systemctl status stratisd

1.3. Cree el grupo labpool con los dispositivos /dev/vdb y /dev/vdc.

[root@servera ~]# stratis pool create labpool /dev/vdb /dev/vdc

1.4. Verifique que el grupo labpool ya esté disponible.

[root@servera ~]# stratis pool list


Name Total Physical Size Total Physical Used
labpool 2 GiB 104 MiB

2. Cree un sistema de archivos en el grupo anterior y cree una instantánea.

2.1. Cree el sistema de archivos labfs en el grupo labpool.

[root@servera ~]# stratis fs create labpool labfs

2.2. Verifique que el sistema de archivos labfs ya esté disponible.

[root@servera ~]# stratis fs list labpool

RH354-RHEL8.0-es-1-20190319 127
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

Pool Name Name Used Created Device


labpool labfs 546 MiB Jan 23 2019 08:44 /stratis/labpool/labfs

2.3. Cree un nuevo punto de montaje denominado /stratislab.

[root@servera ~]# mkdir /stratislab

2.4. Monte el sistema de archivos labfs en el directorio /stratislab.

[root@servera ~]# mount /stratis/labpool/labfs /stratislab

2.5. Verifique que el sistema de archivos labfs ya esté accesible.

[root@servera ~]# mount


... output omitted ...
/dev/mapper/stratis-1-b5ceb83a7c57488a9c02b501d1419ce4-thin-
fs-333a2d9922c04ee6abebcc71bdb047b5 on /stratislab type xfs
(rw,relatime,seclabel,attr2,inode64,sunit=2048,swidth=2048,noquota)

2.6. Cree una instantánea del sistema de archivos labfs. Asígnele a la instantánea el
nombre labfs-snapshot.

[root@servera ~]# stratis fs snapshot labpool labfs labfs-snapshot

3. Elimine el sistema de archivos, su instantánea y el grupo.

3.1. Destruya la instantánea labfs-snapshot.

[root@servera ~]# stratis filesystem destroy labpool labfs-snapshot

3.2. Desmonte el sistema de archivos labfs.

[root@servera ~]# umount /stratis/labpool/labfs

3.3. Destruya el sistema de archivos labfs.

[root@servera ~]# stratis filesystem destroy labpool labfs

3.4. Destruya el grupo labpool.

[root@servera ~]# stratis pool destroy labpool

3.5. Verifique que el grupo labpool no esté disponible.

[root@servera ~]# stratis pool list


Name Total Physical Size Total Physical Used

128 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

4. En servera, cree un volumen de VDO con /dev/vdd con un tamaño de 30 GB. Cuando haya
terminado, cree un sistema de archivos XFS en él y móntelo.

4.1. Cree el volumen vdolab con el dispositivo /dev/vdd. Use 30 GB como tamaño
lógico.

[root@servera ~]# vdo create --name=vdolab --device=/dev/vdd --vdoLogicalSize=30G


Creating VDO vdolab
Starting VDO vdolab
Starting compression on VDO vdolab
VDO instance 0 volume is ready at /dev/mapper/vdolab

4.2. Verifique que el volumen vdolab esté disponible.

[root@servera ~]# vdo list


vdolab

4.3. Cree un sistema de archivos XFS en el volumen vdolab. Espere hasta que el sistema
registre el nodo del dispositivo.

[root@servera ~]# mkfs.xfs -K /dev/mapper/vdolab


...output omitted...
[root@servera ~]# udevadm settle

4.4. Cree el directorio /mnt/vdolab.

[root@servera ~]# mkdir -m 1777 /mnt/vdolab

4.5. Monte el volumen vdolab en /mnt/vdolab.

[root@servera ~]# mount /dev/mapper/vdolab /mnt/vdolab/

5. Elimine el volumen VDO. Cuando finalice, cierre sesión en servera.

5.1. Desmonte el volumen vdolab.

[root@servera ~]# umount /mnt/vdolab

5.2. Elimine el volumen vdolab.

[root@servera ~]# vdo remove --name=vdolab


Removing VDO vdolab
Stopping VDO vdolab

5.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

Esto concluye el trabajo de laboratorio.

RH354-RHEL8.0-es-1-20190319 129
CAPÍTULO 5 | Implementación de almacenamiento con las nuevas funciones

RESUMEN

En este capítulo, aprendió lo siguiente:

• Red Hat Enterprise Linux 8 incluye el administrador de almacenamiento Stratis, que hace posible
la administración de colecciones de dispositivos de bloque para crear sistemas de archivos
flexibles.

• Stratis también proporciona funciones avanzadas de almacenamiento, como aprovisionamiento


ligero, snapshots y monitoreo.

• El optimizador de datos virtual (VDO) es un módulo de kernel que usa la eliminación de bloque
cero, la deduplicación de bloques redundantes y la compresión de datos para reducir el uso de
espacio en disco y minimizar el ancho de banda de replicación.

• Red Hat Enterprise Linux 8 admite NFS 4.2, que incluye el nuevo archivo de configuración /
etc/nfs.conf, elimina el usuario nfsnobody, y cambia el UID y GID del usuario y grupo
nobody a 65534.

• La herramienta nfsconf permite la gestión de los archivos de configuración de servidor y


cliente de NFS 4.2.

130 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6

GESTIÓN DE CONTENEDORES
EN EL ENTORNO DE
EJECUCIÓN
META Explicar el nuevo motor de tiempo de ejecución de
contenedores y las herramientas que reemplazan
el motor del contenedor docker.

OBJETIVOS • Describir el nuevo motor de contenedores y las


utilidades y observar la similitud planificada
en la sintaxis y la función, y el aumento en el
rendimiento y las funciones.

SECCIONES • Implementación de contenedores con el nuevo


tiempo de ejecución de contenedor (y ejercicio
guiado)

TRABAJO DE Gestión de contenedores con el nuevo tiempo de


ejecución
LABORATORIO

RH354-RHEL8.0-es-1-20190319 131
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

IMPLEMENTACIÓN DE CONTENEDORES
CON EL NUEVO TIEMPO DE EJECUCIÓN
DE CONTENEDOR

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de describir el nuevo motor de
contenedores y las utilidades y observar la similitud planificada en la sintaxis y la función, y el
aumento en el rendimiento y las funciones.

EL MOTOR DE CONTENEDOR PODMAN


Red Hat Enterprise Linux 8 incluye el módulo de paquete container-tools, que proporciona un
nuevo motor de contenedor llamado Podman que reemplaza a Docker y a Moby. El módulo de
paquete container-tools también contiene otras herramientas, como Buildah, para crear imágenes
de contenedor, Skopeo para administrar imágenes de contenedor en registros, y runc. A diferencia
de Docker, que depende de daemons para crear y ejecutar contenedores, este nuevo conjunto de
herramientas y el motor de contenedor permiten crear y ejecutar contenedores sin daemons.

El nuevo conjunto de herramientas de entorno de ejecución del contenedor

• RHEL 8 reemplaza a Docker con un nuevo tiempo de ejecución de contenedor que admite la
mayor parte de la funcionalidad de Docker.
• El conjunto de herramientas de tiempo de ejecución de contenedor de RHEL 8 admite
estándares Open Container Initiative (OCI), que por ejemplo permite reusar imágenes de
contenedores de terceros.
• El tiempo de ejecución de contenedor proporciona un motor de contenedor sin daemon. Esta
arquitectura no requiere un daemon con privilegios de root activos para ejecutar contenedores.
Los usuarios ejecutan contenedores sin privilegios de root.
• Esta arquitectura usa un modelo fork-exec, que se integra con audit del modelo cliente/
servidor de Docker, que se basa en la UID de audit no establecida.
• El módulo de paquete container-tools proporciona el nuevo conjunto de herramientas y motor de
tiempo de ejecución de contenedor.

Figura 6.1: De Docker al tiempo de ejecución de contenedor de RHEL 8

Descripción del nuevo conjunto de herramientas de tiempo de ejecución del contenedor

• El motor de contenedor podman no tiene daemons y admite la ejecución de contenedores.


• La sintaxis de podman es similar al comando docker, y también admite el uso de Dockerfile.
• Buildah crea imágenes de contenedores, ya sea desde cero o desde un Dockerfile.
• Copie e inspeccione imágenes de contenedores en registros con Skopeo.

132 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

• Skopeo es compatible con Docker y los registros privados, el registro Atomic y los directorios
locales, incluidos aquellos que usan OCI.

Figura 6.2: Nuevo tiempo de ejecución de contenedor

CONJUNTOS DE RECURSOS DE PACEMAKER

Descripción de los conjuntos de recursos de Pacemaker

• RHEL 8 incluye los conjuntos de contenedor de Pacemaker con podman como vista previa de la
tecnología.
• Un conjunto de Pacemaker admite la ejecución del mismo contenedor en todos los hosts
relacionados con un tipo de nodo específico, por ejemplo, un nodo de controlador de OpenStack.
• Un conjunto también asigna el almacenamiento requerido dentro de los directorios del
contenedor y personaliza atributos específicos en el contenedor.
• Actualmente, Red Hat OpenStack Platform admite conjuntos de Pacemaker.

REFERENCIAS
Para obtener más información, consulte los capítulos Trabajo con contenedores y
Creación de imágenes de contenedor con Buildah en la Guía de creación, ejecución y
administración de contenedores de Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html/building_running_and_managing_containers
.

Contenedores sin daemon: Podman y Buildah


https://developers.redhat.com/blog/2018/11/20/buildah-podman-containers-
without-daemons/

Base de conocimiento: Actualización de Pacemaker 2.0 en Red Hat Enterprise


Linux 8
https://access.redhat.com/articles/3681151/

RH354-RHEL8.0-es-1-20190319 133
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

EJERCICIO GUIADO

IMPLEMENTACIÓN DE CONTENEDORES
CON EL NUEVO TIEMPO DE EJECUCIÓN
DE CONTENEDOR
En este ejercicio, creará una imagen y la implementará como una aplicación en contenedores
usando las nuevas utilidades de contenedor.

RESULTADOS
Debe ser capaz de crear una imagen de contenedor e implementar un contenedor usando las
nuevas herramientas del contenedor.

1. Instale los paquetes de software de contenedor.

1.1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Instala el módulo container-tools.

[root@servera ~]# yum module install container-tools


...output omitted...
Is this ok [y/N]: y
...output omitted...

2. Cree un contenedor desde cero y configúrelo para que ejecute bash. Etiquete este
contenedor como rhel-base.

2.1. Cree un nuevo contenedor desde cero.

[root@servera ~]# buildah from scratch


working-container

2.2. Monte el sistema de archivos raíz del contenedor working-container.

[root@servera ~]# buildah mount working-container


/var/lib/containers/storage/overlay/240a...b6ce/merged

2.3. Instale los paquetes bash y coreutils en el contenedor working-container.

[root@servera ~]# yum install \


> --installroot /var/lib/containers/storage/overlay/240a...b6ce/merged \
> bash coreutils \
> --releasever 8 \

134 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

> --setopt install_weak_deps=false


...output omitted...
Is this ok [y/N]: y
...output omitted...

2.4. Limpie la memoria caché de yum en el contenedor working-container.

[root@servera ~]# yum clean all \


> --installroot /var/lib/containers/storage/overlay/240a...b6ce/merged \
> --releasever 8
...output omitted...
12 files removed

2.5. Configure bash como el primer comando para ejecutar.

[root@servera ~]# buildah config --cmd /bin/bash working-container

2.6. Etiquete el contenedor working-container como rhel-base.

[root@servera ~]# buildah config --label name=rhel-base working-container

3. Cree una imagen de contenedor llamada rhel-base basada en el contenedor working-


container.

3.1. Desmonte el contenedor working-container.

[root@servera ~]# buildah unmount working-container


e6d1...2850

3.2. Cree la imagen de contenedor rhel-base basada en el contenedor working-


container.

[root@servera ~]# buildah commit working-container rhel-base


...output omitted...
Writing manifest to image destination
Storing signatures
b6d8...0a6a

3.3. Verifique que la imagen de contenedor rhel-base esté disponible.

[root@servera ~]# buildah images


IMAGE NAME IMAGE TAG IMAGE ID CREATED AT SIZE
localhost/rhel-base latest b6d88a1866eb Feb 4, 2019 07:20 291 MB

4. Cree un nuevo contenedor con la imagen de contenedor rhel-base.

4.1. Revise las especificaciones de la imagen de contenedor rhel-base.

[root@servera ~]# podman inspect localhost/rhel-base

RH354-RHEL8.0-es-1-20190319 135
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

...output omitted...
"Config": {
"Cmd": [
"/bin/bash"
],
"Labels": {
"name": "rhel-base"
}
},
...output omitted...

4.2. Cree un contenedor usando la imagen de contenedor rhel-base. Use la opción --


rm para eliminar el contenedor al salir. Cuando finalice, salga del contenedor.

[root@servera ~]# podman run --rm -it localhost/rhel-base /bin/bash


bash-4.4# exit
exit
[root@servera ~]#

5. Elimine el contenedor working-container y la imagen de contenedor rhel-base.


Cuando finalice, cierre sesión en servera.

5.1. Elimine el contenedor working-container.

[root@servera ~]# buildah rm working-container


e724...797f

5.2. Elimine la imagen de contenedor rhel-base.

[root@servera ~]# buildah rmi rhel-base


...output omitted...

5.3. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

Esto concluye el ejercicio guiado.

136 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

TRABAJO DE LABORATORIO

GESTIÓN DE CONTENEDORES CON EL


NUEVO TIEMPO DE EJECUCIÓN

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, usará el nuevo tiempo de ejecución de contenedor para crear y
ejecutar un contenedor personalizado.

RESULTADOS
Debe ser capaz de crear e implementar un contenedor personalizado usando el nuevo tiempo
de ejecución de contenedor.

1. Instale los nuevos paquetes de software de tiempo de ejecución de contenedor en servera.


2. Construya un nuevo contenedor desde cero servera y etiquételo como custom-
container.
3. Prepare el nuevo contenedor para instalar el software en servera.
4. Personalice el nuevo contenedor para ejecutar un servidor web apache, con contenido de
texto y escucha en el puerto TCP 80, en servera.
5. Cree una nueva imagen de contenedor basada en su contenedor personalizado y asígnele el
nombre custom-image, en servera.
6. Implemente y pruebe un contenedor basado en la nueva imagen de contenedor
personalizado, en servera.
7. Intente acceder al servidor web que se ejecuta dentro del contenedor desde serverb.
Cuando finalice, cierre sesión en serverb.
8. Limpie los datos del ejercicio en servera. Cuando finalice, cierre sesión en servera.

Esto concluye el trabajo de laboratorio.

RH354-RHEL8.0-es-1-20190319 137
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

SOLUCIÓN

GESTIÓN DE CONTENEDORES CON EL


NUEVO TIEMPO DE EJECUCIÓN

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, usará el nuevo tiempo de ejecución de contenedor para crear y
ejecutar un contenedor personalizado.

RESULTADOS
Debe ser capaz de crear e implementar un contenedor personalizado usando el nuevo tiempo
de ejecución de contenedor.

1. Instale los nuevos paquetes de software de tiempo de ejecución de contenedor en servera.

1.1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Instale el módulo container-tools si no está instalado.

[root@servera ~]# yum module install container-tools


...output omitted...
Is this ok [y/N]: y
...output omitted...

2. Construya un nuevo contenedor desde cero servera y etiquételo como custom-


container.

2.1. Use buildah para crear un nuevo contenedor desde cero.

[root@servera ~]# buildah from scratch


working-container

2.2. Enumere los contenedores disponibles.

[root@servera ~]# buildah containers


CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME

138 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

bc4c2a71c4c9 * scratch working-container

2.3. Etiquete el contenedor recién creado como custom-container.

[root@servera ~]# buildah config --label name=custom-container working-container

2.4. Inspeccione el contenedor.

[root@servera ~]# buildah inspect working-container


...output omitted...
"Container": "working-container",
"ContainerID":
"bc4c2a71c4c9fbb11b7b88127a67173b82d0e4f95e7935c4a36b8d3010b8de16",
"MountPoint": "",
"ProcessLabel": "",
"MountLabel": "",
"ImageAnnotations": null,
"ImageCreatedBy": "",
"OCIv1": {
"created": "2019-02-07T05:24:20.845648888Z",
"architecture": "amd64",
"os": "linux",
"config": {
"Labels": {
"name": "custom-container"
...output omitted...

3. Prepare el nuevo contenedor para instalar el software en servera.

3.1. Monte el sistema de archivos raíz de working-container.

NOTA
Verifique el punto de montaje correcto para su caso.

[root@servera ~]# buildah mount working-container


/var/lib/containers/storage/overlay/14e1...fbed/merged

3.2. Inicialice la base de datos RPM dentro del contenedor.

[root@servera ~]# rpm --root \


> /var/lib/containers/storage/overlay/14e1...fbed/merged \
> --initdb

3.3. Descargue el RPM redhat-release-server en servera.

[root@servera ~]# yum install yum-utils


...output omitted...
Is this ok [y/N]: y

RH354-RHEL8.0-es-1-20190319 139
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

...output omitted...

[root@servera ~]# yumdownloader --destdir=/tmp redhat-release-server


...output omitted...
redhat-release-8.0-0.39.el8.x86_64.rpm 3.4 MB/s | 45 kB 00:00

3.4. Instala el RPM redhat-release-server en working-container.

[root@servera ~]# rpm -ivh \


> --root /var/lib/containers/storage/overlay/14e1...fbed/merged \
> /tmp/redhat-release*.rpm
...output omitted...
Updating / installing...
1:redhat-release-8.0-0.39.el8 ################################# [100%]

3.5. Copie el archivo del repositorio local en el punto de montaje working-container.

[root@servera ~]# cp \
> /etc/yum.repos.d/rhel_dvd.repo \
> /var/lib/containers/storage/overlay/14e1...fbed/merged/etc/yum.repos.d/

4. Personalice el nuevo contenedor para ejecutar un servidor web apache, con contenido de
texto y escucha en el puerto TCP 80, en servera.

4.1. Instale el paquete httpd en el contenedor.

[root@servera ~]# yum install \


> --installroot /var/lib/containers/storage/overlay/14e1...fbed/merged \
> httpd
...output omitted...
Is this ok [y/N]: y
...output omitted...

4.2. Cree contenido de texto y expóngalo como un index.html en el directorio de


montaje working-container.

[root@servera ~]# echo "custom-container Working OK" > \


> /var/lib/containers/storage/overlay/14e1...fbed/merged/var/www/html/index.html

4.3. Configure /usr/sbin/httpd como el primer comando para ejecutar en working-


container.

[root@servera ~]# buildah config --cmd "/usr/sbin/httpd -DFOREGROUND" \

140 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

> working-container

4.4. Configure el puerto de escucha interno para el daemon httpd en working-


container.

[root@servera ~]# buildah config --port 80/tcp working-container

4.5. Limpie la memoria caché Yum en el contenedor working-container.

[root@servera ~]# yum clean all \


> --installroot /var/lib/containers/storage/overlay/14e1...fbed/merged \
...output omitted...

4.6. Desmonte el sistema de archivos raíz de working-container.

[root@servera ~]# buildah unmount working-container


14e1392a5a7d06da689e26c1438b9092008f9c012affbae943ee25720ecbfbed

5. Cree una nueva imagen de contenedor basada en su contenedor personalizado y asígnele el


nombre custom-image, en servera.

5.1. Cree la imagen de contenedor custom-image basada en el contenedor working-


container.

[root@servera ~]# buildah commit working-container custom-image


Getting image source signatures
Copying blob
sha256:02f83791177ef46b84dfbf49d491971a9a83f793af08a507c1a744f842366010
144.82 MiB / 144.82 MiB [==================================================] 9s
Copying config
sha256:09901c90da2a4ea033e8083316983605e09dd34860729f1047f2d78ecea06558
332 B / 332 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
09901c90da2a4ea033e8083316983605e09dd34860729f1047f2d78ecea06558

5.2. Enumere las imágenes disponibles en servera.

[root@servera ~]# buildah images


IMAGE NAME IMAGE TAG IMAGE ID CREATED AT SIZE
localhost/custom-image latest 09901c90da2a Feb 6, 2019 22:22 483 MB

6. Implemente y pruebe un contenedor basado en la nueva imagen de contenedor


personalizado, en servera.

6.1. Ejecute un contenedor basado en la imagen localhost/custom-image.

[root@servera ~]# podman run -d -p 80:80 localhost/custom-image

RH354-RHEL8.0-es-1-20190319 141
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

1aedf5420e73b71105b02bc7fdbea406b3313ec29bde7fa3f661c1ccf4fc1a7a

6.2. Pruebe el daemon httpd del contenedor.

[root@servera ~]# curl localhost


custom-container Working OK

6.3. Use firewalld para abrir el puerto de servicio HTTP en servera.

[root@servera ~]# firewall-cmd --add-service=http


success

7. Intente acceder al servidor web que se ejecuta dentro del contenedor desde serverb.
Cuando finalice, cierre sesión en serverb.

7.1. Abra un nuevo terminal e inicie sesión en serverb con el usuario root.

[student@workstation ~]$ ssh root@serverb

7.2. Pruebe el daemon httpd del contenedor dentro de servera.

[root@serverb ~]# curl http://servera


custom-container Working OK

7.3. Cierre sesión en serverb.

[root@serverb ~]# exit


[student@workstation ~]$

8. Limpie los datos del ejercicio en servera. Cuando finalice, cierre sesión en servera.

8.1. Cambie al terminal servera y detenga el contenedor que se está ejecutando.

[root@servera ~]# podman stop \


> 1aedf5420e73b71105b02bc7fdbea406b3313ec29bde7fa3f661c1ccf4fc1a7a
1aedf5420e73b71105b02bc7fdbea406b3313ec29bde7fa3f661c1ccf4fc1a7a

8.2. Elimine el contenedor en servera.

[root@servera ~]# podman rm \


> 1aedf5420e73b71105b02bc7fdbea406b3313ec29bde7fa3f661c1ccf4fc1a7a
1aedf5420e73b71105b02bc7fdbea406b3313ec29bde7fa3f661c1ccf4fc1a7a

8.3. Elimine la imagen de contenedor en servera.

[root@servera ~]# podman rmi localhost/custom-image

142 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

a8fe25c677f2878d73ace848d7fd2f2bf06f1470c94e33fee9a444eecd8e49d9

8.4. Elimine el contenedor working-container en servera.

[root@servera ~]# buildah delete working-container


bc4c2a71c4c9fbb11b7b88127a67173b82d0e4f95e7935c4a36b8d3010b8de16

8.5. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

RH354-RHEL8.0-es-1-20190319 143
CAPÍTULO 6 | Gestión de contenedores en el entorno de ejecución

RESUMEN

En este capítulo, aprendió lo siguiente:

• Red Hat Enterprise Linux 8 incluye el módulo de paquete container-tools, que proporciona un
nuevo motor de contenedor llamado Podman que reemplaza a docker y a moby.

• El módulo de paquete container-tools también contiene otras herramientas, como buildah,


para crear imágenes de contenedor y skopeo para administrar imágenes de contenedor en
registros.

• Tanto podman como buildah admiten el uso de Dockerfiles.

• Skopeo es compatible con registros públicos y privados, el registro Atomic y los directorios
locales, que pueden usar el diseño OCI o no.

• RHEL 8 incluye el uso de conjuntos de contenedor de Pacemaker con podman como vista previa
de la tecnología.

144 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7

IMPLEMENTACIÓN DE
FUNCIONES DE RED
MEJORADAS
META Describir las principales mejoras en el
procesamiento de paquetes de red y la
administración de dispositivos de red.

OBJETIVOS • Explicar el nuevo diseño, las ventajas y la


configuración de back-end de firewall de
nftables.
• Explicar cómo el servicio NetworkManager
se ha convertido en un componente integral
y obligatorio en la administración de redes
moderna, capaz de configurar interfaces y
componentes de red complejos y en capas.

SECCIONES • Administración de firewalls de servidor en


RHEL 8 (y ejercicio guiado)
• Configuración de redes de servidores con
NetworkManager (y ejercicio guiado)

TRABAJO DE Implementación de funciones de red mejoradas


LABORATORIO

RH354-RHEL8.0-es-1-20190319 145
CAPÍTULO 7 | Implementación de funciones de red mejoradas

ADMINISTRACIÓN DE FIREWALLS DE
SERVIDOR EN RHEL 8

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de explicar el nuevo diseño, las
ventajas y la configuración de back-end de firewall de nftables.

PRESENTACIÓN DE NFTABLES
Firewalld, la herramienta de gestión de firewall de Red Hat Enterprise Linux, usa nftables como su
nuevo back-end de firewall predeterminado. En Red Hat Enterprise Linux 8, nftables reemplaza a
iptables, que ya cayó en desuso.

El comando nft reemplaza los comandos de iptables iptables, ip6tables, arptables


y ebtables, como un comando unificado, coherente y más simple. Además, nftables es más
eficiente y puede realizar varias acciones con una sola regla.

Presentación de Nftables como el nuevo back-end para Firewalld

• Firewalld usa nftables como back-end.


• El comando nft reemplaza a los comandos iptables, ip6tables, arptables y ebtables.
• Firewalld es el método recomendado para administrar el firewall, a través del comando de bajo
nivel nft.
• Los comandos de iptables son vínculos al comando xtables-nft-multi, que acepta la
sintaxis de iptables pero crea reglas de nftables en su lugar.

Red Hat recomienda usar firewalld a la hora de gestionar el firewall. Aunque firewalld ahora
usa el back-end de nftables, se comporta igual que en las versiones anteriores. Su sintaxis es la
misma, incluso para las reglas directas y enriquecidas. Además de los comandos firewall-cmd y
firewall-config, también puede administrar firewalld con la interfaz web de Cockpit.

Comparación entre Nftables e Iptables

• Nftables resuelve los problemas de iptables relacionados con el rendimiento, el mantenimiento


del código, la facilidad de uso y la escalabilidad.
• Aunque debería usar firewalld para inspeccionar las reglas del firewall, puede ver toda la
información del firewall con una única herramienta subyacente: nft.
• Solo necesita una única regla para IPv4 e IPv6 en lugar de duplicar reglas con iptables y
ip6tables.
• Puede agregar varias acciones por regla. Por ejemplo, puede registrar y negar en la misma regla.

CREE TABLAS, CADENAS Y REGLAS DE NFTABLES


CON LA HERRAMIENTA DE LÍNEA DE COMANDOS NFT.
Red Hat recomienda usar Firewalld para gestionar el firewall. Como alternativa, para casos de uso
complejos, también puede trabajar directamente con la herramienta de línea de comandos nft
para crear tablas, cadenas y reglas de nftables.

146 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

Objetos de Nftables

• En nftables, las tablas son los objetos de alto nivel que organizan la lógica de la configuración del
firewall.
• Dentro de las tablas, las cadenas agrupan las reglas del firewall.
• Las reglas pueden tener varias condiciones y acciones.
• Use el comando nft para crear y revisar todos esos objetos de nftables.
• Para obtener persistencia, defina los objetos en /etc/sysconfig/nftables.conf y habilitar
el servicio nftables de systemd.

Figura 7.1: Adjuntar cadenas de nftables en la etapa


de procesamiento de paquetes de entrada en el kernel

Presentación del objeto tabla


En nftables, las tablas son objetos de alto nivel que sirven para agrupar las reglas del firewall. Para
enumerar las tablas, debe usar el comando nft list tables.

[root@demo ~]# nft list tables


table ip filter
table ip6 filter
...output omitted...
table inet firewalld
table ip firewalld
table ip6 firewalld

RH354-RHEL8.0-es-1-20190319 147
CAPÍTULO 7 | Implementación de funciones de red mejoradas

Cuando se inicia el servicio firewalld, crea tablas a partir de la salida anterior. Observe que
firewalld crea sus propias tablas, llamadas firewalld, para agrupar sus reglas. También crea
las otras tablas, como filter, para que pueda agregar sus propias tablas con el comando nft.

Cada tabla tiene una familia de direcciones, como ip, ip6 o inet, que indica el tipo de paquetes
que está procesando. inet es una familia especial de direcciones que combina IPv4 e IPv6. Esto es
útil para las reglas que se aplican a ambas familias. De esta manera, no tiene que escribir la misma
regla para IPv4 y nuevamente para IPV6.

Cree nuevas tablas con el comando nft add table family name y borre tablas con nft
delete table family name.

[root@demo ~]# nft add table inet mytable

Con nftables, los administradores pueden crear tantas tablas como sea necesario para organizar
la configuración del firewall. Por otro lado, iptables tiene tablas predefinidas que no se pueden
cambiar.

Presentación de cadenas de nftables


Dentro de las tablas, las cadenas agrupan las reglas del firewall. Use nft list table family
name para enumerar el contenido de una tabla.

[root@demo ~]# nft list table inet filter


table inet filter {
chain input {
type filter hook input priority 0; policy drop;
}

chain forward {
type filter hook forward priority 0; policy accept;
}

chain output {
type filter hook output priority 0; policy accept;
}
}

En la salida anterior, se muestran tres cadenas dentro de la tabla filter. Las cadenas tienen
atributos especiales:

name (nombre)
Cuando crea una cadena, le da un nombre a elección. Los nombres de la salida anterior, input,
forward y output, se eligieron para ayudarle a hacer la transición de iptables. No tienen otro
significado.

type (tipo)
El tipo indica el propósito de la cadena. El tipo puede ser filter para filtrar el tráfico, nat
para realizar la traducción de direcciones de red o route para marcar los paquetes.

hook (enlace)
El enlace une la cadena a una etapa de procesamiento de paquetes en el kernel. El valor del
enlace puede ser prerouting, input, output, forward o postrouting.

148 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

priority (prioridad)
Cuando dos o más cadenas tienen el mismo valor de enlace, la prioridad indica qué cadena se
debe procesar primero. La cadena con el valor de prioridad más bajo se procesa primero.

La prioridad se evalúa globalmente, entre todas las tablas. En el siguiente ejemplo, el sistema
evalúa las reglas de la cadena myinput1; luego, de la cadena Input_ch y, finalmente, de la
cadena myinput2.

[root@demo ~]# nft list table inet mytable1


table inet mytable1 {
chain myinput1 {
type filter hook input priority -10; policy accept;
}
chain myinput2 {
type filter hook input priority 100; policy accept;
}
}
[root@demo ~]# nft list table inet mytable2
table inet mytable2 {
chain Input_ch {
type filter hook input priority 50; policy accept;
}
}

policy (política)
La política establece el comportamiento predeterminado de la cadena cuando ninguna regla
coincide. La política es opcional y el valor predeterminado es accept.

Se crea una nueva cadena con el comando nft add chain family table_name
chain_name { attributes } y se eliminan cadenas con nft delete chain family
table_name chain_name.

[root@demo ~]# nft add chain inet mytable go_in \


> { type filter hook input priority 10 \; policy drop \;}

Recuerde proteger el carácter ; de Bash con \.

Redacción de reglas de nftables


Las cadenas agrupan las reglas del firewall. Cada regla tiene dos partes: la parte de las
coincidencias que establece las condiciones que debe cumplir el paquete y la parte de las
declaraciones que indica las acciones que se deben realizar cuando las condiciones coinciden. Use
el comando nft add rule family table_name chain_name match... statement...
para agregar una regla a una cadena.

[root@demo ~]# nft add rule inet mytable go_in ct state established,related accept
[root@demo ~]# nft add rule inet mytable go_in iifname lo accept
[root@demo ~]# nft add rule inet mytable go_in icmp type echo-request accept
[root@demo ~]# nft add rule inet mytable go_in tcp dport {ssh, http, https} accept
[root@demo ~]# nft list table inet mytable
table inet mytable {
chain go_in {
type filter hook input priority 10; policy accept;

RH354-RHEL8.0-es-1-20190319 149
CAPÍTULO 7 | Implementación de funciones de red mejoradas

ct state established,related accept


iifname "lo" accept
icmp type echo-request accept
tcp dport { ssh, http, https } accept
}
}

Consulte la página del manual nft(8) para conocer la sintaxis completa de la regla. Puede usar el
comando iptables-translate para traducir la sintaxis de iptables a nft.

[root@demo ~]# iptables-translate -A INPUT -p tcp --dport 22 \


> -m conntrack --ctstate NEW -j ACCEPT
nft add rule ip filter INPUT tcp dport 22 ct state new counter accept

El comando iptables-translate muestra el comando nft correspondiente, pero no lo ejecuta.

Cuando un paquete coincide con las condiciones de una regla y la declaración es accept, nftables
no evalúa más las siguientes reglas de la cadena. Sin embargo, si hay otra cadena con el mismo
enlace, nftables continúa evaluando el paquete con las reglas de esa segunda cadena. Esto puede
hacer que el paquete se descarte si la segunda cadena no lo acepta. El siguiente ejemplo ilustra esa
situación.

[root@demo ~]# nft list table inet mytable


table inet mytable {
chain go_in {
type filter hook input priority 10; policy accept;
tcp dport 8181 accept
}
[root@demo ~]# nft list table inet mytable2
table inet mytable2 {
chain go_in2 {
type filter hook input priority 20; policy drop;
}
}

En este ejemplo, un paquete de TCP con un puerto de destino de 8181 primero pasa por la cadena
go_in (prioridad 10) cuando una regla lo acepta. Luego, el paquete pasa por la cadena go_in2
(prioridad 20) donde nftables lo descarta debido a su política predeterminada. En última instancia,
el paquete se elimina aunque haya una regla explícita que lo acepta en la primera cadena.

El comando nft add rule agrega la nueva regla al final de la cadena. El comando nft insert
rule toma los mismos parámetros, pero inserta la regla al principio de la cadena. Al agregar la
opción handle, también puede insertar una regla en una posición específica. Un identificador
identifica a un objeto único. Cuando se crea un objeto, como una regla, el sistema automáticamente
le asigna un identificador.

Primero, recupere el identificador de las reglas existentes agregando la opción --handle (-a) al
comando nft list table.

[root@demo ~]# nft list table inet mytable --handle


table inet mytable { # handle 21
chain go_in { # handle 1
type filter hook input priority 10; policy accept;

150 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

ct state established,related accept # handle 2


iifname "lo" accept # handle 3
icmp type echo-request accept # handle 4
tcp dport { ssh, http, https } accept # handle 6
}
}

Para insertar una regla después de la regla con el identificador 4, use el comando nft add rule
de la siguiente manera:

[root@demo ~]# nft add rule inet mytable go_in handle 4 tcp dport ftp log reject
[root@demo ~]# nft list table inet mytable --handle
table inet mytable { # handle 21
chain go_in { # handle 1
type filter hook input priority 10; policy accept;
ct state established,related accept # handle 2
iifname "lo" accept # handle 3
icmp type echo-request accept # handle 4
tcp dport ftp log reject # handle 8
tcp dport { ssh, http, https } accept # handle 6
}
}

También puede usar el identificador para eliminar una regla con el comando nft delete rule.

[root@demo ~]# nft delete rule inet mytable go_in handle 8


[root@demo ~]# nft list table inet mytable --handle
table inet mytable { # handle 21
chain go_in { # handle 1
type filter hook input priority 10; policy accept;
ct state established,related accept # handle 2
iifname "lo" accept # handle 3
icmp type echo-request accept # handle 4
tcp dport { ssh, http, https } accept # handle 6
}
}

DESCRIPCIÓN DE LA CONFIGURACIÓN PERSISTENTE


DE NFTABLES E IPTABLES
Red Hat recomienda usar Firewalld para gestionar el firewall del sistema. Como alternativa, y con
reglas complejas, puede deshabilitar firewalld y usar directamente nftables con el comando
nft. Además, para obtener compatibilidad con versiones anteriores, los comandos de iptables y el
servicio Systemd todavía están disponibles, pero están en desuso.

Sustitución de Firewalld con Nftables o Iptables

• Red Hat recomienda usar firewalld para gestionar el firewall del sistema.
• Para las configuraciones complejas, puede deshabilitar firewalld y usar directamente
nftables.
• Use el comando iptables-restore-translate para migrar las reglas de iptables a nftables.
• Como alternativa, use la capa de compatibilidad de iptables para reusar las reglas heredadas de
iptables.

RH354-RHEL8.0-es-1-20190319 151
CAPÍTULO 7 | Implementación de funciones de red mejoradas

Sustitución de Firewalld con reglas de Nftables


Las reglas directas y completas de Firewalld permiten configuraciones complejas de firewall. A
veces, sin embargo, es posible que prefiera deshabilitar firewalld y usar directamente nftables
desde la línea de comandos.

En preparación para esa configuración, detenga, deshabilite y enmascare firewalld.

[root@demo ~]# systemctl stop firewalld


[root@demo ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@demo ~]# systemctl mask firewalld
Created symlink /etc/systemd/system/firewalld.service -> /dev/null.
[root@demo ~]# nft flush ruleset

Cuando se detiene el servicio firewalld, no se borra su configuración. El comando nft flush


ruleset elimina todas las cadenas y tablas de nftables.

Habilite e inicie el servicio nftables.

[root@demo ~]# systemctl enable --now nftables


Created symlink /etc/systemd/system/multi-user.target.wants/nftables.service -> /
usr/lib/systemd/system/nftables.service.

Cuando se inicia el servicio, usa el comando nft -f /etc/sysconfig/nftables.conf para


cargar las reglas del archivo /etc/sysconfig/nftables.conf. De forma predeterminada,
el archivo solo contiene comentarios que puede usar como punto de partida para desarrollar sus
reglas. También puede generar el archivo desde su configuración actual de nftables mediante el
uso del comando nft list ruleset.

[root@demo ~]# nft list ruleset > /etc/sysconfig/nftables.conf

Como alternativa, también puede usar un script. Para eso, asegúrese de iniciar su archivo con #!/
usr/sbin/nft-f para el comando nft -f a fin de identificarlo como script y no como una lista
de reglas en el pseudoformato JSON. El comando nft -f acepta ambos formatos.

[root@demo ~]# cat /etc/sysconfig/nftables.conf


#!/usr/sbin/nft -f

flush ruleset

add table inet mytable

add chain inet mytable go_in { type filter hook input priority 10;policy drop;}

add rule inet mytable go_in ct state established,related accept


add rule inet mytable go_in iifname lo accept
add rule inet mytable go_in icmp type echo-request accept
add rule inet mytable go_in tcp dport {ssh, http, https} accept

152 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

Traducción de reglas de Iptables a Nftables


Desde una copia de seguridad de las reglas de iptables, use el comando iptables-restore-
translate. El comando genera comandos nftables en su salida.

[root@demo6 ~]# iptables-save > save.txt


[root@demo6 ~]# cat save.txt
# Generated by iptables-save v1.4.7 on Mon Feb 18 16:25:28 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [85:14053]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Feb 18 16:25:28 2019
[root@demo6 ~]# scp save.txt root@demo:/root

[root@demo ~]# iptables-restore-translate -f save.txt


# Translated by iptables-restore-translate v1.8.2 on Tue Feb 19 02:57:51 2019
add table ip filter
add chain ip filter INPUT { type filter hook input priority 0; policy accept; }
add chain ip filter FORWARD { type filter hook forward priority 0; policy
accept; }
add chain ip filter OUTPUT { type filter hook output priority 0; policy accept; }
add rule ip filter INPUT ct state related,established counter accept
add rule ip filter INPUT ip protocol icmp counter accept
add rule ip filter INPUT iifname "lo" counter accept
add rule ip filter INPUT ct state new tcp dport 22 counter accept
add rule ip filter INPUT counter reject with icmp type host-prohibited
add rule ip filter FORWARD counter reject with icmp type host-prohibited
# Completed on Tue Feb 19 02:57:51 2019

Revise las reglas y redirija la salida del comando iptables-restore-translate -f a /etc/


sysconfig/nftables.conf para el servicio nftables. No olvide agregar la línea #!/usr/
sbin/nft-f en la parte superior del archivo.

Sustitución de Nftables con Iptables


nftables proporciona una capa de compatibilidad para iptables. Los comandos iptables y
ip6tables todavía están disponibles, pero son vínculos al comando xtables-nft-multi de
nftables. Ese comando acepta la sintaxis de iptables, pero en su lugar crea objetos de nftables.

Además, el paquete iptables-services proporciona el servicio iptables de Systemd y los archivos


de configuración /etc/sysconfig/iptables y /etc/sysconfig/iptables-config
asociados. Por este motivo, puede reusar la configuración de versiones anteriores de Red Hat
Enterprise Linux.

En el siguiente ejemplo, se muestra cómo cambiar la configuración a la infraestructura de iptables


ahora en desuso.

RH354-RHEL8.0-es-1-20190319 153
CAPÍTULO 7 | Implementación de funciones de red mejoradas

[root@demo ~]# yum install iptables-services


...output omitted...
Is this ok [y/N]: y
...output omitted...
Complete!
[root@demo ~]# systemctl disable --now firewalld nftables
[root@demo ~]# systemctl mask firewalld nftables
Created symlink /etc/systemd/system/firewalld.service -> /dev/null.
Created symlink /etc/systemd/system/nftables.service -> /dev/null.
[root@demo ~]# systemctl enable --now iptables
Created symlink /etc/systemd/system/basic.target.wants/iptables.service -> /usr/
lib/systemd/system/iptables.service.
[root@demo ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)


target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)


target prot opt source destination
[root@demo ~]# nft list ruleset
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
ct state related,established counter packets 104 bytes 6984 accept
meta l4proto icmp counter packets 0 bytes 0 accept
iifname "lo" counter packets 0 bytes 0 accept
meta l4proto tcp ct state new tcp dport 22 counter packets 0 bytes 0 accept
counter packets 18 bytes 5634 reject with icmp type host-prohibited
}

chain FORWARD {
type filter hook forward priority 0; policy accept;
counter packets 0 bytes 0 reject with icmp type host-prohibited
}

chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}

Observe en la salida anterior que el comando iptables -nL reformatea las reglas de nftables.
Si inserta una regla con nft, el comando iptables -nL refleja esa nueva regla. De la misma
manera, si inserta una regla con el comando iptables, nft también informa esa regla.

154 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

REFERENCIAS
La página del manual nft(8).

Para obtener más información sobre la administración de firewall, consulte el


capítulo Uso y configuración de firewalls en la guía Configuración y administración de
redes en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_and_managing_networking/#assembly_using-
firewalls_Configuring-Networking-with-GNOME-GUI

Para obtener más información sobre nftables, consulte el artículo Firewalld: el futuro
es nftables en
https://developers.redhat.com/blog/2018/08/10/firewalld-the-future-is-nftables/

RH354-RHEL8.0-es-1-20190319 155
CAPÍTULO 7 | Implementación de funciones de red mejoradas

EJERCICIO GUIADO

ADMINISTRACIÓN DE FIREWALLS DE
SERVIDOR EN RHEL 8
En este ejercicio, configurará y probará reglas de firewall que usan el back-end de nftables.

RESULTADOS
En este ejercicio, configurará y probará reglas de firewall que usan el back-end de nftables.

1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

2. Uso y configuración básicos de Nftables.

2.1. Enumere todas las tablas actualmente activas.

[root@servera ~]# nft list tables


table ip filter
table ip6 filter
...output omitted...

2.2. Enumere todas las cadenas actualmente activas.

[root@servera ~]# nft list chains


table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
table ip6 filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}

156 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

}
...output omitted...

2.3. Agregue una regla de firewall que permita HTTP entrante.

[root@servera ~]# nft insert rule ip filter INPUT tcp dport http accept

2.4. Enumere todas las cadenas para la tabla ip filter con el fin de localizar el
identificador de la regla que acaba de agregar.

[root@servera ~]# nft list table ip filter -n -a


table ip filter { # handle 1
chain INPUT { # handle 1
type filter hook input priority 0; policy accept;
tcp dport http accept # handle 4
}
...output omitted...

2.5. Elimine la regla que actualmente permite el acceso HTTP con el identificador.

[root@servera ~]# nft delete rule filter INPUT handle 4

2.6. Cree una regla que permita el acceso a varios puertos al mismo tiempo.

[root@servera ~]# nft insert rule ip filter INPUT \


> tcp dport { ssh, http, https, 8181 } accept

2.7. Configure la política predeterminada de cadenas INPUT en drop para todo el tráfico
que no se acepta específicamente.

[root@servera ~]# nft add chain ip filter INPUT \


> { type filter hook input priority 0\; policy drop\; }

3. Elimine las reglas agregadas durante este ejercicio.

3.1. Configure la política predeterminada de cadenas INPUT en accept para todo el


tráfico de manera predeterminada.

[root@servera ~]# nft add chain ip filter INPUT \


> { type filter hook input priority 0\; policy accept\; }

3.2. Encuentre el identificador y elimine la regla que actualmente permite el acceso para
SSH, HTTP, HTTPS y 8181.

[root@servera ~]# nft list table ip filter -n -a


table ip filter { # handle 1
chain INPUT { # handle 1
type filter hook input priority 0; policy accept;
tcp dport { ssh, http, https, 8181 } accept # handle 6
}

RH354-RHEL8.0-es-1-20190319 157
CAPÍTULO 7 | Implementación de funciones de red mejoradas

...output omitted...
[root@servera ~]# nft delete rule filter INPUT handle 6

4. Cierre sesión en servera.

[root@servera ~]# exit


Connection to servera closed.

Esto concluye el ejercicio guiado.

158 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

CONFIGURACIÓN DE REDES DE
SERVIDORES CON NETWORKMANAGER

OBJETIVOS
Tras finalizar esta sección, los estudiantes deben ser capaces de explicar cómo el servicio
NetworkManager se ha convertido en un componente integral y obligatorio en la administración de
redes moderna, y configurar interfaces y componentes de red complejos y en capas.

PRESENTACIÓN DE NETWORKMANAGER
NetworkManager es la herramienta de configuración de red preferida en Red Hat Enterprise
Linux 8. Puede manejar configuraciones complejas, y productos en capas como OpenStack,
OpenShift y Red Hat Virtualization ahora confían en esta herramienta.

Configuración de redes con NetworkManager

• Red Hat recomienda usar NetworkManager para la configuración de la red.


• NetworkManager ahora puede manejar configuraciones complejas, como Open vSwitch o SR-
IOV.
• Los productos en capas, como OpenStack, usan NetworkManager.
• Hay varios front-end disponibles: Cockpit, nmcli, nmtui y el rol de sistema RHEL de la red.
• El servicio network de Systemd y los scripts de red ya no están disponibles.
• ifup y ifdown son vínculos a scripts de NetworkManager.

Configuración de redes de sistema con NetworkManager


NetworkManager proporciona una manera uniforme de configurar la red del sistema con varias
versiones diferentes de Red Hat Enterprise Linux. Como el rol de sistema de Red Hat Enterprise
Linux de la red se basa en NetworkManager, a menudo se puede usar una sola guía para varias
versiones de RHEL.

En RHEL 8, el sistema no instala el servicio heredado network de Systemd. Sin embargo,


NetworkManager todavía se basa en los archivos de configuración del directorio /etc/
sysconfig/network-scripts/. Aún puede editar esos archivos y usar el comando ifup para
que NetworkManager vuelva a leer la configuración de la interfaz.

[user@demo ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens3


[user@demo ~]# ifup ens3

Los comandos ifup y ifdown ahora son vínculos a scripts que invocan al comando nmcli para
volver a cargar la configuración del archivo ifcfg-* e iniciar o detener la conexión.

REFERENCIAS
NetworkManager(8), nmcli(1), y páginas man de nmtui(1)

Para obtener más información, consulte la guía Configuración y administración de


redes en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_and_managing_networking/

RH354-RHEL8.0-es-1-20190319 159
CAPÍTULO 7 | Implementación de funciones de red mejoradas

EJERCICIO GUIADO

CONFIGURACIÓN DE REDES DE
SERVIDORES CON NETWORKMANAGER
En este ejercicio, administrará las interfaces y los dispositivos de red con NetworkManager.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Revisar las configuraciones de red de un sistema con nmcli.

• Configurar las interfaces de red Ethernet con nmcli.

• Configurar las interfaces de red unidas con nmcli.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab net-manager start para verificar que el
entorno esté listo y para preparar el sistema para el ejercicio.

[student@workstation ~]$ lab net-manager start

1. Inicie sesión en serverb con el usuario root.

[student@workstation ~]$ ssh root@serverb

2. Explore la herramienta nmcli.

2.1. La herramienta nmcli se incluye en el paquete NetworkManager y se instala de


forma predeterminada en Red Hat Enterprise Linux 8.

[root@serverb ~]# nmcli --help


...output omitted...
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes

2.2. Explore el estado general de la red en serverb.

[root@serverb ~]# nmcli general status

160 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN


connected full enabled enabled enabled enabled

2.3. Verifique la conectividad de red en serverb.

[root@serverb ~]# nmcli networking connectivity check


full

2.4. Explore las opciones inalámbricas con nmcli radio.

[root@serverb ~]# nmcli radio help


Usage: nmcli radio { COMMAND | help }

COMMAND := { all | wifi | wwan }

all | wifi | wwan [ on | off ]

2.5. Muestre el estado de los dispositivos de red en serverb.

[root@serverb ~]# nmcli device status


ens3 ethernet connected Wired connection 1
ens4 ethernet disconnected --
ens5 ethernet disconnected --
ens6 ethernet disconnected --
lo loopback unmanaged --

2.6. Muestre el estado de conexión de red en serverb.

[root@serverb ~]# nmcli connection


NAME UUID TYPE DEVICE
Wired connection 1 d27327cd-9e6e-45dd-b71f-4c0b99e62742 ethernet ens3

2.7. Cambie el nombre de una conexión de red en serverb.

[root@serverb ~]# nmcli connection modify "Wired connection 1" \


> connection.id ens3
[root@serverb ~]# nmcli connection
NAME UUID TYPE DEVICE
ens3 d27327cd-9e6e-45dd-b71f-4c0b99e62742 ethernet ens3

3. Configure una interfaz de red con la herramienta nmcli en serverb.

PARÁMETRO VALOR

Interfaz ens4

RH354-RHEL8.0-es-1-20190319 161
CAPÍTULO 7 | Implementación de funciones de red mejoradas

PARÁMETRO VALOR

Dirección IPv4 172.25.250.20/24

3.1. Cree una conexión de red Ethernet en serverb mediante la interfaz de ens4 y
asígnele el nombre ens4.

[root@serverb ~]# nmcli connection add type ethernet ifname ens4 \


> connection.id ens4
Connection 'ens4' (99671499-dacd-4f87-8c09-25d9e0b7301e) successfully added.

3.2. Asigne una dirección IPv4 a la conexión de red ens4 en serverb.

[root@serverb ~]# nmcli connection modify ens4 ipv4.addresses 172.25.250.20/24

3.3. Habilite la asignación manual de direcciones IPv4 en la interfaz ens4 en serverb.

[root@serverb ~]# nmcli connection modify ens4 ipv4.method manual

3.4. Active la conexión de red ens4 en serverb.

[root@serverb ~]# nmcli connection up ens4


Connection successfully activated (D-Bus active path: /org/freedesktop/
NetworkManager/ActiveConnection/124)

3.5. Verifique el estado de la interfaz del sistema en serverb.

[root@serverb ~]# ip address


...output omitted...
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group
default qlen 1000
link/ether 2c:c2:60:23:34:b3 brd ff:ff:ff:ff:ff:ff
inet 172.25.250.20/24 brd 172.25.250.255 scope global noprefixroute ens4
...output omitted...

3.6. Muestre el estado de los dispositivos de red en serverb.

[root@serverb ~]# nmcli device status


DEVICE TYPE STATE CONNECTION
ens3 ethernet connected ens3
ens4 ethernet connected ens4
ens5 ethernet disconnected --
ens6 ethernet disconnected --
lo loopback unmanaged --

162 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

4. Configure una interfaz vinculada con la herramienta nmcli en serverb.

PARÁMETRO VALOR

Nombre de la interfaz bond0

Miembros de la interfaz ens5 y ens6

Modo Active Backup (resguardo activo)

Dirección IPv4 172.25.250.21/24

4.1. Cree una interfaz vinculada de Active-Backup (resguardo activo), asígnele el


nombre bond0 con ens5 y ens6 como miembros en serverb.

[root@serverb ~]# nmcli connection add type bond \


> ifname bond0 connection.id bond0 \
> ipv4.method disabled ipv6.method ignore \
> mode active-backup
Connection 'bond0' (bf741496-bd5f-4573-a453-16dae9743bdb) successfully added.

4.2. Asigne las interfaces de red ens5 y ens6 como miembros de la interfaz vinculada
bond0 en serverb.

[root@serverb ~]# nmcli connection add type ethernet \


> ifname ens5 connection.id ens5 \
> ipv4.method disabled ipv6.method ignore \
> master bond0
Connection 'ens5' (17b957ca-a691-433d-b632-5048944e3646) successfully added.
[root@serverb ~]# nmcli connection add type ethernet \
> ifname ens6 connection.id ens6 \
> ipv4.method disabled ipv6.method ignore \
> master bond0
Connection 'ens6' (c06fc02d-3cc0-4b45-babd-b4e1895f631f) successfully added.

4.3. Habilite la asignación manual de direcciones IPv4 y configure una dirección IPv4
para la interfaz vinculada bond0 en serverb.

[root@serverb ~]# nmcli connection modify bond0 \


> ipv4.method manual ipv4.addresses 172.25.250.21/24

4.4. Active las interfaces miembro ens5 y ens6 y las conexiones de red de la interfaz
vinculada bond0 en serverb.

[root@serverb ~]# nmcli connection up ens5


Connection successfully activated (D-Bus active path: /org/freedesktop/
NetworkManager/ActiveConnection/128)
[root@serverb ~]# nmcli connection up ens6
Connection successfully activated (D-Bus active path: /org/freedesktop/
NetworkManager/ActiveConnection/129)
[root@serverb ~]# nmcli connection up bond0

RH354-RHEL8.0-es-1-20190319 163
CAPÍTULO 7 | Implementación de funciones de red mejoradas

Connection successfully activated (master waiting for slaves) (D-Bus active


path: /org/freedesktop/NetworkManager/ActiveConnection/130)

4.5. Muestre el estado de los dispositivos de red en serverb.

[root@serverb ~]# nmcli device status


DEVICE TYPE STATE CONNECTION
ens3 ethernet connected ens3
bond0 bond connected bond0
ens4 ethernet connected ens4
ens5 ethernet connected ens5
ens6 ethernet connected ens6
lo loopback unmanaged --

4.6. Verifique el estado de las interfaces del sistema en serverb.

[root@serverb ~]# ip address


...output omitted...
3: ens5: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master
bond0 state UP group default qlen 1000
link/ether 2c:c2:60:33:e6:79 brd ff:ff:ff:ff:ff:ff
4: ens6: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master
bond0 state UP group default qlen 1000
link/ether 2c:c2:60:33:e6:79 brd ff:ff:ff:ff:ff:ff
8: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
group default qlen 1000
link/ether 2c:c2:60:33:e6:79 brd ff:ff:ff:ff:ff:ff
inet 172.25.250.21/24 brd 172.25.250.255 scope global noprefixroute bond0
...output omitted...

5. Verifique las configuraciones de red en serverb.

5.1. Explore las propiedades de la nueva interfaz vinculada bond0 en serverb.

[root@serverb ~]# nmcli device show bond0


GENERAL.DEVICE: bond0
GENERAL.TYPE: bond
GENERAL.HWADDR: 2C:C2:60:33:E6:79
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: bond0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/
ActiveConnection/459
IP4.ADDRESS[1]: 172.25.250.21/24
...output omitted...

5.2. Explore las propiedades de la nueva interfaz de Ethernet ens4 en serverb.

[root@serverb ~]# nmcli device show ens4


GENERAL.DEVICE: ens4
GENERAL.TYPE: ethernet

164 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

GENERAL.HWADDR: 2C:C2:60:23:34:B3
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens4
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/
ActiveConnection/124
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 172.25.250.20/24
...output omitted...

5.3. Cierre sesión en serverb.

[root@serverb ~]# exit


Connection to serverb closed.

Finalizar
En workstation, ejecute lab net-manager finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab net-manager finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 165
CAPÍTULO 7 | Implementación de funciones de red mejoradas

TRABAJO DE LABORATORIO

IMPLEMENTACIÓN DE FUNCIONES DE
RED MEJORADAS
En este trabajo de laboratorio, configurará las interfaces de red y los dispositivos con Cockpit.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Revisar las configuraciones de red de un sistema con Cockpit y nmcli.

• Configurar las interfaces de red Ethernet con Cockpit.

• Configurar las interfaces de red vinculadas con Cockpit.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab net-review start para verificar que el entorno
esté listo y para preparar el sistema para el trabajo de laboratorio.

[student@workstation ~]$ lab net-review start

1. Cockpit ya está instalado en el sistema, pero no está activado. Habilite e inicie el servicio
Cockpit en serverb.
2. En workstation, abra Firefox e inicie sesión en la interfaz de Cockpit que e ejecuta en el
sistema serverb con el usuario student y la contraseña student.
3. Configure y habilite una interfaz Ethernet en serverb con Cockpit.

PARÁMETRO VALOR

Interfaz ens4

Dirección 172.25.250.20/24

4. Configure una interfaz vinculada en serverb con Cockpit.

PARÁMETRO VALOR

Nombre de la interfaz bond0

Miembros de la interfaz ens5 y ens6

Modo Active Backup (resguardo activo)

Dirección 172.25.250.21/24

166 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

IMPORTANTE
Al crear interfaces vinculadas o en equipo a través de la interfaz web de Cockpit,
potencialmente puede obtener esas interfaces en un estado no administrado. Esto
se debe a que dhclient agotó el tiempo de espera si no hay un servidor DHCP
disponible, y esas interfaces se activan de forma predeterminada con DHCP como
método de direccionamiento. Puede volver la interfaz a un estado administrado con
la herramienta nmcli, y volver a intentar configurar los ajustes de IP. Por ejemplo,
para una interfaz vinculada llamada bond0:

nmcli device set bond0 managed yes

5. Revise los cambios con la herramienta nmcli y con herramientas del sistema como ip en
serverb.

Finalizar
En workstation, ejecute lab net-review finish para limpiar los recursos creados para este
ejercicio.

[student@workstation ~]$ lab net-review finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 167
CAPÍTULO 7 | Implementación de funciones de red mejoradas

SOLUCIÓN

IMPLEMENTACIÓN DE FUNCIONES DE
RED MEJORADAS
En este trabajo de laboratorio, configurará las interfaces de red y los dispositivos con Cockpit.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Revisar las configuraciones de red de un sistema con Cockpit y nmcli.

• Configurar las interfaces de red Ethernet con Cockpit.

• Configurar las interfaces de red vinculadas con Cockpit.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab net-review start para verificar que el entorno
esté listo y para preparar el sistema para el trabajo de laboratorio.

[student@workstation ~]$ lab net-review start

1. Cockpit ya está instalado en el sistema, pero no está activado. Habilite e inicie el servicio
Cockpit en serverb.

1.1. Inicie sesión en serverb con el usuario root.

[student@workstation ~]$ ssh root@serverb

1.2. Use el comando systemctl enable cockpit.socket para habilitar el servicio


Cockpit.

[root@serverb ~]# systemctl enable cockpit.socket


Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/
lib/systemd/system/cockpit.socket.

1.3. Use el comando systemctl start cockpit para iniciar el servicio Cockpit.

[root@serverb ~]# systemctl start cockpit

1.4. Cierre sesión en serverb.

[root@serverb ~]# exit


Connection to serverb closed.

168 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

2. En workstation, abra Firefox e inicie sesión en la interfaz de Cockpit que e ejecuta en el


sistema serverb con el usuario student y la contraseña student.

2.1. Abra Firefox y vaya a la dirección https://serverb.lab.example.com:9090.

2.2. Acepte el certificado autofirmado agregándolo como una excepción.

2.3. Inicie sesión con el usuario student y la contraseña student y marque la casilla
de verificación Reuse my password for privileged tasks (Reusar mi contraseña para
tareas privilegiadas).
Ahora está conectado como el usuario student, con acceso Privileged (Privilegiado).
3. Configure y habilite una interfaz Ethernet en serverb con Cockpit.

PARÁMETRO VALOR

Interfaz ens4

Dirección 172.25.250.20/24

3.1. Haga clic en Networking (Redes) en la barra de navegación izquierda.

3.2. Haga clic en la interfaz ens4 para editar los detalles de IPv4.

3.3. Haga clic en el vínculo Automatic (DHCP) (Automático [DHCP]).

3.4. En la nueva ventana IPv4 Settings (Configuración de IPv4), elija Manual para las
direcciones.

3.5. En el cuadro de texto Address (Dirección), ingrese 172.25.250.20 como dirección IP.

3.6. En el cuadro de texto Prefix length or Netmask (Longitud del prefijo o máscara de red),
ingrese 255.255.255.0 como el valor de la máscara de red.

3.7. Haga clic en el botón Apply (Aplicar) para guardar la nueva configuración de red.
Observe que la nueva configuración se aplica inmediatamente y que la nueva dirección
IP está visible en la línea IPv4.

3.8. Habilite la interfaz de red al configurar ON/OFF (Activado/Desactivado) en ON


(Activado).
4. Configure una interfaz vinculada en serverb con Cockpit.

PARÁMETRO VALOR

Nombre de la interfaz bond0

Miembros de la interfaz ens5 y ens6

Modo Active Backup (resguardo activo)

RH354-RHEL8.0-es-1-20190319 169
CAPÍTULO 7 | Implementación de funciones de red mejoradas

PARÁMETRO VALOR

Dirección 172.25.250.21/24

IMPORTANTE
Al crear interfaces vinculadas o en equipo a través de la interfaz web de Cockpit,
potencialmente puede obtener esas interfaces en un estado no administrado. Esto
se debe a que dhclient agotó el tiempo de espera si no hay un servidor DHCP
disponible, y esas interfaces se activan de forma predeterminada con DHCP como
método de direccionamiento. Puede volver la interfaz a un estado administrado con
la herramienta nmcli, y volver a intentar configurar los ajustes de IP. Por ejemplo,
para una interfaz vinculada llamada bond0:

nmcli device set bond0 managed yes

4.1. Haga clic en Networking (Redes) en la barra de navegación izquierda.

4.2. Haga clic en el botón Add Bond (Agregar vinculación).

4.3. En la nueva ventana Bond Settings (Configuración de vinculación), use bond0 como
nombre, marque las interfaces ens5 y ens6 como miembros, y asegúrese de que el
modo seleccionado sea Active-Backup (Copia de seguridad activa). Deje las otras
opciones con sus ajustes predeterminados.

4.4. Haga clic en el botón Apply (Aplicar) para guardar la nueva interfaz vinculada.

4.5. Haga clic en la interfaz bond0 para editar los detalles de IPv4.

4.6. Haga clic en el vínculo Automatic (DHCP) (Automático [DHCP]).

4.7. En la nueva ventana IPv4 Settings (Configuración de IPv4), elija Manual para las
direcciones.

4.8. En el cuadro de texto Address (Dirección), ingrese 172.25.250.21 como dirección IP.

4.9. En el cuadro de texto Prefix length or Netmask (Longitud del prefijo o máscara de red),
ingrese 255.255.255.0 como el valor de la máscara de red.

4.10. Haga clic en el botón Apply (Aplicar) para guardar la nueva configuración de red.
Observe que la nueva configuración se aplica inmediatamente y que la nueva dirección
IP está visible en la línea IPv4.
5. Revise los cambios con la herramienta nmcli y con herramientas del sistema como ip en
serverb.

5.1. En la interfaz web de Cockpit, haga clic en Terminal en la barra de navegación


izquierda para acceder al terminal.
Se abre una sesión de terminal con la sesión del usuario student ya iniciada.

5.2. Muestre el estado de las conexiones de red en serverb.

[student@serverb ~]$ nmcli connection

170 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 7 | Implementación de funciones de red mejoradas

NAME UUID TYPE DEVICE


bond0 491a07c3-37c4-4079-98cb-bc1931a0b1b8 bond bond0
ens3 d27327cd-9e6e-45dd-b71f-4c0b99e62742 ethernet ens3
ens4 7b941fb1-3f77-4a5c-9c73-bbbf9f26b8fb ethernet ens4
ens5 554a2f71-db4b-44db-b70a-a23e70dbba69 ethernet ens5
ens6 3650e4c9-799c-4243-b0ad-c6006f74f453 ethernet ens6

5.3. Muestre el estado de los dispositivos de red en serverb.

[student@serverb ~]$ nmcli device status


DEVICE TYPE STATE CONNECTION
ens3 ethernet connected ens3
bond0 bond connected bond0
ens4 ethernet connected ens4
ens5 ethernet connected ens5
ens6 ethernet connected ens6
lo loopback unmanaged --

5.4. Verifique el estado de las interfaces del sistema en serverb.

[student@serverb ~]$ ip address


...output omitted...
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group
default qlen 1000
link/ether 2c:c2:60:27:fb:cf brd ff:ff:ff:ff:ff:ff
inet 172.25.250.20/24 brd 172.25.250.255 scope global noprefixroute ens4
...output omitted...
4: ens5: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master
bond0 state UP group default qlen 1000
link/ether 2c:c2:60:22:6b:41 brd ff:ff:ff:ff:ff:ff
5: ens6: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master
bond0 state UP group default qlen 1000
link/ether 2c:c2:60:22:6b:41 brd ff:ff:ff:ff:ff:ff
15: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
link/ether 2c:c2:60:22:6b:41 brd ff:ff:ff:ff:ff:ff
inet 172.25.250.21/24 brd 172.25.250.255 scope global noprefixroute bond0
...output omitted...

5.5. Cierre sesión en la interfaz de Cockpit en serverb.

Finalizar
En workstation, ejecute lab net-review finish para limpiar los recursos creados para este
ejercicio.

[student@workstation ~]$ lab net-review finish

Esto concluye el ejercicio guiado.

RH354-RHEL8.0-es-1-20190319 171
CAPÍTULO 7 | Implementación de funciones de red mejoradas

RESUMEN

En este capítulo, aprendió lo siguiente:

• Firewalld usa nftables como back-end, en vez de iptables.

• El comando nft reemplaza a iptables, ip6tables, arptables y ebtables.

• El comando iptables-restore-translate traduce las reglas de iptables en reglas de


nftables.

• Red Hat recomienda usar NetworkManager para la configuración de la red.

• NetworkManager ahora puede manejar configuraciones complejas.

• OpenStack y otros productos en capas usan NetworkManager.

172 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8

ADAPTACIÓN A MEJORAS DE
VIRTUALIZACIÓN
META Describir las nuevas características y herramientas
de gestión para la administración de la
virtualización.

OBJETIVO • Describir las nuevas capacidades presentadas


en la nueva emulación Q35.

SECCIONES Configuración de máquinas virtuales (y ejercicio


guiado)

TRABAJO DE Adaptación a mejoras de virtualización


LABORATORIO

RH354-RHEL8.0-es-1-20190319 173
CAPÍTULO 8 | Adaptación a mejoras de virtualización

CONFIGURACIÓN DE MÁQUINAS
VIRTUALES

OBJETIVOS
Tras completar esta sección, los estudiantes deben ser capaces de describir las nuevas
capacidades presentadas en la nueva emulación Q35.

EMULACIÓN QEMU ACTUALIZADA


El módulo del kernel de la máquina virtual basada en kernel (KVM) y el emulador QEMU son la base
de la virtualización en Red Hat Enterprise Linux 8. En esta versión, QEMU ahora puede emular el
chipset de la placa base Intel Q35, que ofrece una mejor plataforma de hardware para los sistemas
operativos virtualizados modernos.

Nuevo tipo de máquina virtual Q35

• Además del tipo de máquina Intel 440FX anterior, QEMU ahora emula el chipset y las
características de Intel Q35.
• La emulación de chipset Q35 proporciona más dispositivos de hardware actuales que los
disponibles anteriormente.
• Q35 proporciona un bus PCI Express y admite arranque seguro.
• Q35 admite acceso directo de PCI Express y simplifica las migraciones de sistema físico a virtual
(p2v).

QEMU ahora emula el chipset Intel Q35 y su chipset Intel ICH9 asociado (hub de controlador de E/
S).

El chipset anterior solo proporcionaba puertos PCI (que son difíciles de asignar a puertos PCI-E
físicos), pero el chipset ICH9 proporciona un bus PCI Express (PCI-E). Esto admite acceso directo de
PCI-E mediante la asignación directa de un puerto PCI-E dentro de la máquina virtual a un puerto
PCI-E en el sistema host.

Seleccione el chipset para emular al crear la máquina virtual. Si está usando Cockpit, virt-
install o virt-manager, la herramienta elige automáticamente el chipset Q35 cuando se
selecciona un sistema operativo reciente y compatible.

NOTA
Cockpit reemplaza a virt-manager, que es obsoleto. Red Hat recomienda Cockpit
para la administración de máquinas virtuales. En una versión posterior, virt-
manager se eliminará.

Para máquinas virtuales RHEL 7, RHEL 8, Microsoft Windows 2016 y Microsoft Windows 10, QEMU
emula el chipset Q35. Para máquinas virtuales RHEL 6, QEMU emula el chipset Intel 440FX. En la
siguiente captura de pantalla, se muestra la selección del sistema operativo en Cockpit.

174 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Figura 8.1: Selección del sistema operativo en Cockpit

Cuando importa una máquina virtual desde un sistema con una versión anterior de QEMU, es
posible que deba forzar la emulación anterior del chipset Intel 440FX. Esto se debe a que el
sistema operativo virtualizado ya usa controladores para ese chipset. Si elige la emulación del
chipset Q35, que presenta un nuevo modelo de hardware, es posible que el sistema operativo
virtualizado no tenga instalados los controladores correctos para usar el hardware emulado.

Obtiene la emulación de chipset que usa una máquina virtual en su definición de archivo XML, en la
sección os. En el siguiente ejemplo, se muestra una máquina virtual que usa la nueva emulación de
chipset Q35.

[user@demo ~]$ virsh dumpxml webserver1


<domain type='kvm' id='5'>
<name>webserver1</name>
<uuid>f6fbe32f-ef6c-4d8a-8db0-96551c82444b</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/
domain/1.0">
<libosinfo:os id="http://redhat.com/rhel/8.0"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>

RH354-RHEL8.0-es-1-20190319 175
CAPÍTULO 8 | Adaptación a mejoras de virtualización

<type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type>


<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
...output omitted...

En el siguiente ejemplo, se muestra una máquina virtual que usa la emulación de chipset 440FX
anterior.

[user@demo ~]$ virsh dumpxml myrhel6


<domain type='kvm' id='7'>
<name>myrhel6</name>
<uuid>51ffc808-d3d0-4220-adc9-32adea33d218</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/
domain/1.0">
<libosinfo:os id="http://redhat.com/rhel/5.0"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
...output omitted...

Enumere las emulaciones de chipset admitidas con el comando virsh capabilities.

[user@demo ~]# virsh capabilities


<guest>
<os_type>hvm</os_type>
<arch name='x86_64'>
<wordsize>64</wordsize>
<emulator>/usr/libexec/qemu-kvm</emulator>
<machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine>
<machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
<machine maxCpus='384'>pc-q35-rhel7.6.0</machine>
<machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine>
...output omitted...

En la salida anterior de un sistema RHEL 8, se muestra que QEMU admite la emulación de chipset
Q35 e Intel 440FX. El tipo de máquina pc es un alias para la emulación de i440FX, y el tipo de
máquina q35 es un alias para la emulación de Q35.

176 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Figura 8.2: Visión general de la virtualización

Administración de máquinas virtuales en Cockpit

• Cockpit en RHEL 8 ofrece funcionalidad básica para administrar máquinas virtuales. Instale
el paquete cockpit-machines para habilitar el componente Cockpit para administrar máquinas
virtuales.
• Para configuraciones más avanzadas, use las herramientas libvirt, como virsh o virt-
install.
• La interfaz gráfica virt-manager aún está disponible pero es obsoleta, y se eliminará en una
versión posterior.

Virtualización de RHEL disponible como módulo

• Para su comodidad, puede instalar el software de virtualización con el nuevo comando yum
module.
• El módulo de Yum virt tiene un flujo llamado rhel y un único perfil predeterminado.
• Se enviará un flujo virt separado a otro repositorio para productos en capas, como Red Hat
Virtualization (RHV), que pueden recibir actualizaciones importantes a un ritmo diferente al que
generalmente permiten las versiones principales de RHEL.
• También puede instalar los paquetes de virtualización individualmente con los comandos yum
tradicionales.

El módulo de Yum virt tiene un flujo llamado rhel y un único perfil predeterminado.

[user@demo ~]$ yum module list


Name Stream Profiles Summary
virt rhel [d][e] common [d] Virtualization module
...output omitted...

RH354-RHEL8.0-es-1-20190319 177
CAPÍTULO 8 | Adaptación a mejoras de virtualización

RESERVAS PERSISTENTES DE SCSI-3 CON VIRTIO-


SCSI

Compatibilidad de reservas persistentes de SCSI-3 con Virtio-SCSI

• En Red Hat Enterprise Linux 8, tanto QEMU como libvirt admiten reservas persistentes de
SCSI-3 en dispositivos de almacenamiento presentados a las máquinas virtuales a través de
Virtio-SCSI respaldadas por LUN conectados directamente.
• Las máquinas virtuales pueden compartir dispositivos de almacenamiento Virtio-SCSI y usar PR
SCSI-3 para controlar el acceso.
• Los dispositivos de almacenamiento administrados con device-mapper-multipath pueden
acceder directamente a las máquinas virtuales para usar PR SCSI-3, y el host administra las
acciones de PR en todas las rutas.

REFERENCIAS
Para obtener más información sobre la virtualización, consulte la guía Configuración
y administración de la virtualización en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-
beta/html-single/configuring_and_managing_virtualization/

Para obtener más información sobre reservas persistentes SCSI-3, consulte el


artículo ¿Cómo puedo ver, crear y eliminar claves y reservas persistentes SCSI? en
https://access.redhat.com/solutions/43402

178 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

EJERCICIO GUIADO

CONFIGURACIÓN DE MÁQUINAS
VIRTUALES
En este ejercicio, implementará una máquina virtual con la utilidad de Cockpit y configurará
las características que estarán disponibles a través de la nueva emulación Q35.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Instalar los paquetes necesarios para habilitar la virtualización.

• Configurar Cockpit para la administración de máquinas virtuales.

• Crear nuevas máquinas virtuales con Cockpit.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab virt-config start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab virt-config start

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. Prepare servera para alojar máquinas virtuales.

1.1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Use yum para instalar el módulo virt.

[root@servera ~]# yum module install virt


...output omitted...
Is this ok [y/N]: y
...output omitted...
Complete!

1.3. Confirme que el sistema servera admita la virtualización.

RH354-RHEL8.0-es-1-20190319 179
CAPÍTULO 8 | Adaptación a mejoras de virtualización

[root@servera ~]# virt-host-validate


QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'memory' controller mount-point : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'devices' controller mount-point : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller mount-point : PASS
QEMU: Checking for device assignment IOMMU support : WARN (No ACPI
DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware
platform)

Puede ignorar el mensaje de advertencia de forma segura dado que servera es en


sí misma una máquina virtual y su emulación de hardware no proporciona soporte de
IOMMU.
El acceso directo de PCI, que le permite conectar un dispositivo de hardware desde el
sistema host a su máquina virtual, requiere IOMMU.

2. Configure Cockpit en servera para administrar máquinas virtuales.

2.1. Confirme que Cockpit se esté ejecutando y esté habilitado en servera.

[root@servera ~]# systemctl is-active cockpit.socket


active
[root@servera ~]# systemctl is-enabled cockpit.socket

180 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

enabled

Si ese no es el caso, inicie y habilite Cockpit.

[root@servera ~]# systemctl enable --now cockpit.socket

2.2. En workstation, abra Firefox y diríjase a https://servera.lab.example.com:9090/.


Si aparece un error de certificado, acepte el certificado autofirmado.
Seleccione Reuse my password for privileged tasks (Reusar mi contraseña para
tareas privilegiadas) e inicie sesión con el nombre de usuario student y la
contraseña student.
Haga clic en servera.lab.example.com en la barra de navegación izquierda
y observe que el menú de la izquierda no incluye una entrada para administrar
máquinas virtuales.

2.3. En servera, instale el paquete cockpit-machines.

[root@servera ~]# yum install cockpit-machines


...output omitted...
Is this ok [y/N]: y
...output omitted...
Complete!

2.4. En Firefox, actualice la página web de Cockpit. Observe la nueva entrada del menú
Virtual Machines (Máquinas virtuales) a la izquierda.

3. Use Cockpit para implementar una máquina virtual RHEL 8 en servera de acuerdo con los
siguientes requisitos.

PARÁMETRO VALOR

Nombre de la máquina virtual myrhel8

Archivo ISO del DVD de RHEL 8 /var/tmp/boot.iso en servera

Sistema operativo Red Hat Enterprise Linux 8.0

Memoria 1 GiB

Tamaño de almacenamiento 10 GiB

URL del kickstart http://172.25.250.254/min.ks

3.1. En Firefox, haga clic en la entrada del menú Virtual Machines (Máquinas virtuales)
a la izquierda de la interfaz web de Cockpit. Si no ha iniciado el servicio de Systemd
libvirtd desde la línea de comandos, Cockpit ofrece realizar este paso por usted

RH354-RHEL8.0-es-1-20190319 181
CAPÍTULO 8 | Adaptación a mejoras de virtualización

después de que se haya instalado el módulo virt de Yum. Haga clic en Start libvirt
(Iniciar libvirt) para iniciar y habilitar el servicio de Systemd libvirtd.

3.2. Haga clic en Create VM (Crear máquina virtual) y complete el formulario de acuerdo
con la siguiente tabla.

PARÁMETRO VALOR

Nombre myrhel8

Tipo de fuente de instalación Filesystem (Sistema de archivos)

Fuente de instalación /var/tmp/boot.iso

Proveedor de SO Red Hat, Inc

Sistema operativo Red Hat Enterprise Linux 8.0

Memoria 1 GiB

Tamaño de almacenamiento 10 GiB

Haga clic en Create (Crear). Si el estado de la nueva máquina virtual es in transition


(en transición), actualice la página web de Cockpit. Haga clic en la máquina virtual
myrhel8 y en Install (Instalar) para iniciar la instalación.

3.3. Use el kickstart en http://172.25.250.254/min.ks para realizar una


instalación desatendida.
En la consola, use la tecla de flecha up (arriba) para resaltar Install Red Hat
Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0). Presione la tecla
Tab (Tabulador). Al final de la línea, en la parte inferior de la consola, agregue
ks=http://172.25.250.254/min.ks y presione Enter (Intro).
Espere a que se complete la instalación. Dado que la máquina virtual se apaga
después de la instalación, haga clic en Run (Ejecutar) para iniciarla.

4. Inspeccione los detalles de la nueva máquina virtual.

4.1. Con Cockpit, en la consola de la nueva máquina virtual, inicie sesión como root, con
la contraseña redhat.
Ejecute el comando dmidecode para confirmar que QEMU usa la nueva emulación
de chipset Q35.

[root@localhost ~]# dmidecode


...output omitted...
Handle 0x0100, DMI type 1, 27 bytes
System Information
Manufacturer: Red Hat
Product Name: KVM
Version: RHEL-7.6.0 PC (Q35 + ICH9, 2009)
Serial Number: Not Specified
UUID: c0dad148-a985-4f74-a894-fc4cf2468661
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Red Hat Enterprise Linux

182 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

...output omitted...

4.2. Ejecute el comando lspci para inspeccionar más el hardware emulado.

[root@localhost ~]# lspci


00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
00:01.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev
04)
00:02.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.4 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.5 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.6 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller
(rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev
02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA
Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Red Hat, Inc. Virtio network device (rev 01)
02:00.0 USB controller: Red Hat, Inc. QEMU XHCI Host Controller (rev 01)
03:00.0 Communication controller: Red Hat, Inc. Virtio console (rev 01)
04:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device (rev 01)
05:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon (rev 01)
06:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG (rev 01)

Observe que la emulación de chipset Q35 proporciona puertos PCI Express y un


controlador SATA, pero no un bus ISA.

4.3. Ejecute el comando systemctl status qemu-guest-agent para confirmar


que el proceso de instalación implementa automáticamente el paquete qemu-guest-
agent e inicia el servicio.

[root@localhost ~]# systemctl status qemu-guest-agent


* qemu-guest-agent.service - QEMU Guest Agent
Loaded: loaded (/usr/lib/systemd/system/qemu-guest-agent.service; disabled;
vendor preset: enabled)
Active: active (running) since Thu 2019-02-07 03:41:41 EST; 1h 8min ago
Main PID:624 (qemu-ga)
Tasks:1 (limit: 6104)
Memory:908.0K
CGroup:/system.slice/qemu-guest-agent.service
└─624 /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio-ports/
org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-f>

Feb 07 03:41:41 localhost.localdomain systemd[1]: Started QEMU Guest Agent.

El agente huésped (guest agent) QEMU permite que el sistema host emita comandos
al sistema operativo que se ejecuta dentro de la máquina virtual. Por ejemplo, las

RH354-RHEL8.0-es-1-20190319 183
CAPÍTULO 8 | Adaptación a mejoras de virtualización

plataformas de virtualización usan esta característica para congelar los sistemas de


archivos dentro de la máquina virtual al tomar una snapshot.

4.4. En Cockpit, explore las pestañas Overview (Visión general), Disks (Discos) y
Networks (Redes) para la nueva máquina virtual.
En la pestaña Networks (Redes), observe que solo puede conectar o desconectar
dispositivos de red existentes, pero no puede crear nuevos dispositivos. En esas
situaciones, use el comando virsh o la herramienta gráfica virt-manager
obsoleta.

4.5. En servera, use el comando virsh para confirmar que QEMU usa la emulación de
chipset Q35 para su nueva máquina virtual.

[root@servera ~]# virsh dumpxml myrhel8


<domain type='kvm' id='2'>
<name>myrhel8</name>
<uuid>c0dad148-a985-4f74-a894-fc4cf2468661</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/
domain/1.0">
<libosinfo:os id="http://redhat.com/rhel/8.0"/>
</libosinfo:libosinfo>
<cockpit_machines:data xmlns:cockpit_machines="https://github.com/cockpit-
project/cockpit/tree/master/pkg/machines">
<cockpit_machines:has_install_phase>false</
cockpit_machines:has_install_phase>
<cockpit_machines:install_source>/var/tmp/boot.iso</
cockpit_machines:install_source>
<cockpit_machines:os_variant>rhel8.0</cockpit_machines:os_variant>
</cockpit_machines:data>
</metadata>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type>
<boot dev='hd'/>
</os>
...output omitted...

4.6. Cuando haya terminado de explorar, elimine la máquina virtual de la interfaz web
de Cockpit. Seleccione la máquina virtual y haga clic en Delete (Eliminar). Además,
elimine el archivo de almacenamiento asociado.

4.7. Cierre sesión en servera.

[root@servera ~]# exit


[student@workstation ~]$

184 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

5. libvirt selecciona el chipset de la máquina para emular desde el sistema operativo que elija
a través del campo Operating System (Sistema operativo) en Cockpit o la opción --os-
variant del comando virt-install.
Con Cockpit, cree una nueva máquina virtual, pero esta vez, seleccione Red Hat
Enterprise Linux 6.10 (Santiago) como el sistema operativo. Si bien sigue usando
la ISO de RHEL 8 para instalar el sistema, la plataforma de virtualización emula el chipset
Intel 440FX anterior.

5.1. En Firefox, haga clic en la entrada del menú Virtual Machines (Máquinas virtuales)
a la izquierda de la interfaz web de Cockpit. Haga clic en Create VM (Crear máquina
virtual) y complete el formulario de acuerdo con la siguiente tabla.

PARÁMETRO VALOR

Nombre testi440fx

Tipo de fuente de instalación Filesystem (Sistema de archivos)

Fuente de instalación /var/tmp/boot.iso

Proveedor de SO Red Hat, Inc

Sistema operativo Red Hat Enterprise Linux 6.10


(Santiago)

Memoria 1 GiB

Tamaño de almacenamiento 10 GiB

Haga clic en Create (Crear). Si el estado de la nueva máquina virtual es in transition


(en transición), actualice la página web de Cockpit. Haga clic en la máquina virtual
testi440fx y en Install (Instalar) para iniciar la instalación.

5.2. Use el kickstart en http://172.25.250.254/min.ks para realizar una


instalación desatendida.
En la consola, use la tecla de flecha up (arriba) para resaltar Install Red Hat
Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0). Presione la tecla
Tab (Tabulador). Al final de la línea, en la parte inferior de la consola, agregue
ks=http://172.25.250.254/min.ks y presione Enter (Intro).
Espere a que se complete la instalación. Dado que la máquina virtual se apaga
después de la instalación, haga clic en Run (Ejecutar) para iniciarla.

5.3. En la consola de la nueva máquina virtual, inicie sesión como root, con la contraseña
redhat.
Ejecute el comando dmidecode para confirmar que QEMU usa la emulación de
chipset 440FX anterior.

[root@localhost ~]# dmidecode


...output omitted...
Handle 0x0100, DMI type 1, 27 bytes
System Information
Manufacturer: Red Hat
Product Name: KVM
Version: RHEL 7.6.0 PC (i440FX + PIIX, 1996)

RH354-RHEL8.0-es-1-20190319 185
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Serial Number: Not Specified


UUID: 6d944c55-5045-4d7a-88bc-10c5ecca03dd
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Red Hat Enterprise Linux
...output omitted...

5.4. Ejecute el comando lspci para inspeccionar más el hardware emulado.

[root@localhost ~]# lspci


00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev
04)
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High
Definition Audio Controller (rev 01)
00:05.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller
#1 (rev 03)
00:05.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller
#2 (rev 03)
00:05.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller
#3 (rev 03)
00:05.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #1 (rev 03)
00:06.0 Communication controller: Red Hat, Inc. Virtio console
00:07.0 SCSI storage controller: Red Hat, Inc. Virtio block device
00:08.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon

Observe esta vez que la emulación de chipset Intel 440FX proporciona un bus ISA,
pero no puertos PCI Express (PCI-E).

5.5. Cuando haya terminado de explorar, elimine la máquina virtual de la interfaz web
de Cockpit. Seleccione la máquina virtual y haga clic en Delete (Eliminar). Además,
elimine el archivo de almacenamiento asociado.

Finalizar
En workstation, ejecute lab virt-config finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab virt-config finish

Esto concluye el ejercicio guiado.

186 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

TRABAJO DE LABORATORIO

ADAPTACIÓN A MEJORAS DE
VIRTUALIZACIÓN

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, configurará un sistema para alojar máquinas virtuales,
implementar una máquina virtual con Cockpit e importar un archivo de definición de máquina
virtual.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Instalar los paquetes necesarios para habilitar la virtualización.

• Crear nuevas máquinas virtuales con Cockpit.

• Importar una máquina virtual desde su archivo de definición XML y su imagen de disco.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab virt-review start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab virt-review start

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. En servera, instale los paquetes necesarios para la virtualización y configure Cockpit


para administrar máquinas virtuales. La contraseña de root en servera es redhat y al
contraseña de student es student.
2. Use Cockpit para implementar una máquina virtual RHEL 8 en servera de acuerdo con los
siguientes requisitos.

PARÁMETRO VALOR

Nombre de la máquina virtual server8

Archivo ISO del DVD de RHEL 8 /var/tmp/boot.iso en servera

Sistema operativo Red Hat Enterprise Linux 8.0

Memoria 1 GiB

RH354-RHEL8.0-es-1-20190319 187
CAPÍTULO 8 | Adaptación a mejoras de virtualización

PARÁMETRO VALOR

Primer disco vda: 10 GiB

Segundo disco vdb: 15 GiB

URL del kickstart http://172.25.250.254/min.ks

3. En servera, importe la máquina virtual desde el volcado XML de libvirt en /root/


myrhel6.xml.
En ese archivo, se describe un sistema Red Hat Enterprise Linux 6 que se ejecuta en un
host Red Hat Enterprise 6.7. La imagen de disco asociada ya se encuentra en /var/lib/
libvirt/images/myrhel6.img.
Es posible que deba actualizar la definición de la máquina virtual para que funcione en su
sistema RHEL 8.
Recuerde que puede usar el comando virsh para administrar las máquinas virtuales:

• virsh define file.xml crea una nueva máquina virtual desde un archivo XML.

• virsh start vm_name inicia la máquina virtual.

• virsh edit vm_name inicia un editor para actualizar la definición de la máquina virtual.

En este ejercicio, para las limitaciones de recursos, el archivo de disco asociado con la
máquina virtual no contiene la imagen de un sistema operativo de arranque. Si accede a la
consola de la máquina virtual, notará que el sistema está en un estado de error: esto es lo que
se espera.

Finalizar
En workstation, ejecute lab virt-review finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab virt-review finish

Esto concluye el trabajo de laboratorio.

188 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

SOLUCIÓN

ADAPTACIÓN A MEJORAS DE
VIRTUALIZACIÓN

LISTA DE VERIFICACIÓN DE RENDIMIENTO


En este trabajo de laboratorio, configurará un sistema para alojar máquinas virtuales,
implementar una máquina virtual con Cockpit e importar un archivo de definición de máquina
virtual.

RESULTADOS
Usted deberá ser capaz de realizar lo siguiente:

• Instalar los paquetes necesarios para habilitar la virtualización.

• Crear nuevas máquinas virtuales con Cockpit.

• Importar una máquina virtual desde su archivo de definición XML y su imagen de disco.

ANDES DE COMENZAR
Inicie sesión en workstation como student con la contraseña student. En
workstation, ejecute el comando lab virt-review start para verificar que el
entorno esté listo y para preparar los sistemas para este ejercicio.

[student@workstation ~]$ lab virt-review start

NOTA
Si workstation no responde al usar Cockpit, reinicie la máquina virtual e
inicie sesión en Cockpit con un nuevo explorador. Este software está en beta.

1. En servera, instale los paquetes necesarios para la virtualización y configure Cockpit


para administrar máquinas virtuales. La contraseña de root en servera es redhat y al
contraseña de student es student.

1.1. Inicie sesión en servera con el usuario root.

[student@workstation ~]$ ssh root@servera

1.2. Use yum para instalar el módulo virt.

[root@servera ~]# yum module install virt


...output omitted...
Is this ok [y/N]: y
...output omitted...

RH354-RHEL8.0-es-1-20190319 189
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Complete!

1.3. Confirme que el sistema servera admita la virtualización.

[root@servera ~]# virt-host-validate


QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'memory' controller mount-point : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'devices' controller mount-point : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller mount-point : PASS
QEMU: Checking for device assignment IOMMU support : WARN (No ACPI
DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware
platform)

Puede ignorar el mensaje de advertencia de forma segura dado que servera es en


sí misma una máquina virtual y su emulación de hardware no proporciona soporte de
IOMMU.

1.4. Instale el paquete cockpit-machines.

[root@servera ~]# yum install cockpit-machines


...output omitted...
Is this ok [y/N]: y
...output omitted...
Complete!

1.5. Confirme que Cockpit se esté ejecutando y esté habilitado en servera.

[root@servera ~]# systemctl is-active cockpit.socket


active
[root@servera ~]# systemctl is-enabled cockpit.socket

190 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

enabled

Si ese no es el caso, inicie y habilite Cockpit.

[root@servera ~]# systemctl enable --now cockpit.socket

1.6. En workstation, abra Firefox y diríjase a https://


servera.lab.example.com:9090. Si aparece un error de certificado, acepte el
certificado autofirmado.
Seleccione Reuse my password for privileged tasks (Reusar mi contraseña para tareas
privilegiadas) e inicie sesión con el nombre de usuario student y la contraseña
student.
Haga clic en servera.lab.example.com en la barra de navegación izquierda y
observe la entrada de menú Virtual Machines (Máquinas virtuales) a la izquierda.
2. Use Cockpit para implementar una máquina virtual RHEL 8 en servera de acuerdo con los
siguientes requisitos.

PARÁMETRO VALOR

Nombre de la máquina virtual server8

Archivo ISO del DVD de RHEL 8 /var/tmp/boot.iso en servera

Sistema operativo Red Hat Enterprise Linux 8.0

Memoria 1 GiB

Primer disco vda: 10 GiB

Segundo disco vdb: 15 GiB

URL del kickstart http://172.25.250.254/min.ks

2.1. En la interfaz web de Cockpit, en Firefox, haga clic en la entrada de menú Virtual
Machines (Máquinas virtuales) a la izquierda. Si no ha iniciado el servicio de Systemd
libvirtd desde la línea de comandos, Cockpit ofrece realizar este paso por usted
después de que se haya instalado el módulo virt de Yum. Haga clic en Start libvirt
(Iniciar libvirt) para iniciar y habilitar el servicio de Systemd libvirtd.

2.2. Haga clic en Create VM (Crear máquina virtual) y complete el formulario de acuerdo
con la siguiente tabla.

PARÁMETRO VALOR

Nombre server8

Tipo de fuente de instalación Filesystem (Sistema de archivos)

Fuente de instalación /var/tmp/boot.iso

Proveedor de SO Red Hat, Inc

Sistema operativo Red Hat Enterprise Linux 8.0

RH354-RHEL8.0-es-1-20190319 191
CAPÍTULO 8 | Adaptación a mejoras de virtualización

PARÁMETRO VALOR

Memoria 1 GiB

Tamaño de almacenamiento 10 GiB

No marque la casilla Immediately Start VM (Iniciar máquina virtual inmediatamente)


porque necesita agregar el segundo disco antes de iniciar la máquina virtual. Como
alternativa, también puede crear ese segundo disco después de la instalación de la
máquina virtual.
Haga clic en Create (Crear). Si el estado de la nueva máquina virtual es in transition
(en transición), actualice la página.

2.3. Para crear el segundo disco, haga clic en la máquina virtual server8 y diríjase a la
pestaña Disks (Discos). Haga clic en Add Disk (Agregar disco) y complete el formulario
de acuerdo con la siguiente tabla.

Origen Create New (Crear nuevo)

Conjunto default

Objetivo vdb

Nombre disk2

Tamaño 15 GiB

Formato qcow2

Haga clic en Add (Agregar).

2.4. Haga clic en Install (Instalar) para iniciar la instalación. Use el kickstart en
http://172.25.250.254/min.ks para realizar una instalación desatendida.
En la consola, use la tecla de flecha up (arriba) para resaltar Install Red Hat
Enterprise Linux 8.0 (Instalar Red Hat Enterprise Linux 8.0). Presione la tecla
Tab (Tabulador). Al final de la línea, en la parte inferior de la consola, agregue
ks=http://172.25.250.254/min.ks y presione Enter (Intro).
Espere a que se complete la instalación. Dado que la máquina virtual se apaga después
de la instalación, haga clic en Run (Ejecutar) para iniciarla.

192 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

3. En servera, importe la máquina virtual desde el volcado XML de libvirt en /root/


myrhel6.xml.
En ese archivo, se describe un sistema Red Hat Enterprise Linux 6 que se ejecuta en un
host Red Hat Enterprise 6.7. La imagen de disco asociada ya se encuentra en /var/lib/
libvirt/images/myrhel6.img.
Es posible que deba actualizar la definición de la máquina virtual para que funcione en su
sistema RHEL 8.
Recuerde que puede usar el comando virsh para administrar las máquinas virtuales:

• virsh define file.xml crea una nueva máquina virtual desde un archivo XML.

• virsh start vm_name inicia la máquina virtual.

• virsh edit vm_name inicia un editor para actualizar la definición de la máquina virtual.

En este ejercicio, para las limitaciones de recursos, el archivo de disco asociado con la
máquina virtual no contiene la imagen de un sistema operativo de arranque. Si accede a la
consola de la máquina virtual, notará que el sistema está en un estado de error: esto es lo que
se espera.

3.1. En servera, inspeccione el archivo /root/myrhel6.xml.

[root@servera ~]# cat /root/myrhel6.xml


<domain type='kvm'>
<name>myrhel6</name>
<uuid>194cae8e-3ce1-5b13-aba2-2c0d36d4cb38</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.6.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/libvirt/images/myrhel6.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>

RH354-RHEL8.0-es-1-20190319 193
CAPÍTULO 8 | Adaptación a mejoras de virtualización

...output omitted...

Observe que el atributo machine es rhel6.6.0. Ejecute el comando virsh


capabilities para confirmar que este tipo de máquina ya no está disponible en
RHEL8 para el tipo hvm y la arquitectura x86_64.

[root@servera ~]# virsh capabilities


<capabilities>
...output omitted...
<guest>
<os_type>hvm</os_type>
<arch name='x86_64'>
<wordsize>64</wordsize>
<emulator>/usr/libexec/qemu-kvm</emulator>
<machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine>
<machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
<machine maxCpus='384'>pc-q35-rhel7.6.0</machine>
<machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.5.0</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.1.0</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.2.0</machine>
<machine maxCpus='255'>pc-q35-rhel7.3.0</machine>
<machine maxCpus='384'>pc-q35-rhel7.4.0</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.3.0</machine>
<machine maxCpus='240'>pc-i440fx-rhel7.4.0</machine>
<machine maxCpus='384'>pc-q35-rhel7.5.0</machine>
<domain type='qemu'/>
<domain type='kvm'>
<emulator>/usr/libexec/qemu-kvm</emulator>
</domain>
</arch>
<features>
<cpuselection/>
<deviceboot/>
<disksnapshot default='on' toggle='no'/>
<acpi default='on' toggle='yes'/>
<apic default='on' toggle='no'/>
</features>
</guest>

</capabilities>

No actualice el archivo /root/myrhel6.xml aún.


Observe también que el archivo de imagen /var/lib/libvirt/images/
myrhel6.img es el disco de la máquina virtual. El script de configuración del ejercicio
ya ha implementado ese archivo por usted.

3.2. Cree la máquina virtual desde el archivo XML.

[root@servera ~]# virsh define /root/myrhel6.xml

194 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Domain myrhel6 defined from /root/myrhel6.xml

3.3. Inicie la máquina virtual myrhel6.

[root@servera ~]# virsh start myrhel6


error: Failed to start domain myrhel6
error: internal error: process exited while connecting to monitor:
2019-02-08T15:08:06.881725Z qemu-kvm: -machine rhel6.6.0,accel=kvm,usb=off,dump-
guest-core=off: unsupported machine type
Use -machine help to list supported machines

La máquina virtual no se puede iniciar. Esto confirma que el atributo machine no es


correcto.

3.4. Edite la definición de la máquina virtual. Dado que la máquina proviene de un host de
virtualización RHEL 6.7, seleccione una máquina que emule el chipset Intel 440FX, que
es el único disponible en RHEL 6.7.

[root@servera ~]# virsh edit myrhel6


<domain type='kvm'>
<name>myrhel6</name>
<uuid>194cae8e-3ce1-5b13-aba2-2c0d36d4cb38</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='hd'/>
</os>
...output omitted...

La máquina pc es un alias para la emulación del chipset Intel 440FX.

3.5. Pruebe iniciar la máquina virtual myrhel6 nuevamente.

[root@servera ~]# virsh start myrhel6


Domain myrhel6 started

[root@servera ~]# virsh list


Id Name State
----------------------------------------------------
8 server8 running
9 myrhel6 running

Esta vez, la máquina virtual se inicia sin errores.


En este ejercicio, para las limitaciones de recursos, el archivo de disco asociado con la
máquina virtual myrhel6 no contiene la imagen de un sistema operativo de arranque.
Si accede a la consola de la máquina virtual, verá que el sistema está en un estado de
error: esto es lo que se espera.

3.6. Si tiene tiempo, continúe explorando la interfaz web de Cockpit y las herramientas de
virtualización. Cuando finalice, cierre Firefox y cierre la sesión en servera.

RH354-RHEL8.0-es-1-20190319 195
CAPÍTULO 8 | Adaptación a mejoras de virtualización

Finalizar
En workstation, ejecute lab virt-review finish para limpiar los recursos creados para
este ejercicio.

[student@workstation ~]$ lab virt-review finish

Esto concluye el trabajo de laboratorio.

196 RH354-RHEL8.0-es-1-20190319
CAPÍTULO 8 | Adaptación a mejoras de virtualización

RESUMEN

En este capítulo, aprendió lo siguiente:

• QEMU ahora emula el chipset Intel Q35, y ofrece una mejor plataforma de hardware para los
sistemas operativos virtualizados modernos.

• El paquete cockpit-machines agrega una funcionalidad básica para administrar máquinas


virtuales en Cockpit.

• La interfaz gráfica virt-manager aún está disponible pero es obsoleta.

RH354-RHEL8.0-es-1-20190319 197
198 RH354-RHEL8.0-es-1-20190319

You might also like