Día 5 "Red Hat Satellite Administration III" - jalvearg/Workshop-satellite GitHub Wiki
Meta:
Realizar operaciones de mantenimiento sobre la plataforma RH Satellite
Objetivos:
- Respaldar la solucion
Secciones:
- Respaldo FULL e INCREMENTAL
Laboratorios:
- Respaldo de la plataforma
- Restauracion de la plataforma
- Ampliando discos
Requisitos:
- Satellite
Para respaldar el sistema, usamos el comando foreman-maintain backup, por temas de laboratorio usamos el comando de bakcup sin respaldar los datos de pulp, estos datos ocupan mucho espacio, por ello para temas de laboratorio usamos la directiva --skip-pupl-content
# foreman-maintain backup offline --skip-pulp-content /var/satellite-backup/
Starting backup: 2022-04-28 14:03:52 -0400
Running preparation steps required to run the next scenarios
================================================================================
Make sure Foreman DB is up:
/ Checking connection to the Foreman DB [OK]
--------------------------------------------------------------------------------
Running Backup
================================================================================
Confirm turning off services is allowed:
WARNING: This script will stop your services.
Do you want to proceed?, [y(yes), q(quit)] yes
[OK]
--------------------------------------------------------------------------------
Prepare backup Directory:
Creating backup folder /var/satellite-backup/satellite-backup-2022-04-28-14-03-52
[OK]
--------------------------------------------------------------------------------
Check if the directory exists and is writable: [OK]
--------------------------------------------------------------------------------
Generate metadata:
| Collecting list of plugins'ErbParser' ignorado
'RubyParser' ignorado
\ Saving metadata to metadata.yml [OK]
--------------------------------------------------------------------------------
Detect features available in the local proxy: [OK]
--------------------------------------------------------------------------------
disable active sync plans:
| Total 1 sync plans are now disabled. [OK]
--------------------------------------------------------------------------------
Add maintenance_mode chain to iptables: [OK]
--------------------------------------------------------------------------------
Stop applicable services:
Stopping the following service(s):
rh-redis5-redis, postgresql, pulpcore-api, pulpcore-content, pulpcore-api.socket, pulpcore-content.socket, [email protected], [email protected], [email protected], [email protected], tomcat, dynflow-sidekiq@orchestrator, foreman, httpd, puppetserver, foreman.socket, dynflow-sidekiq@worker-1, dynflow-sidekiq@worker-hosts-queue-1, foreman-proxy
- stopping pulpcore-content.socket
Warning: postgresql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
| All services stopped [OK]
--------------------------------------------------------------------------------
Backup config files:
/ Collecting config files to backup [OK]
--------------------------------------------------------------------------------
Backup Pulp data: [SKIPPED]
--------------------------------------------------------------------------------
Backup Candlepin DB offline:
| Collecting data from /var/opt/rh/rh-postgresql12/lib/pgsql/data/ [OK]
--------------------------------------------------------------------------------
Backup Foreman DB offline:
Already done [OK]
--------------------------------------------------------------------------------
Backup Pulpcore DB offline:
Already done [OK]
--------------------------------------------------------------------------------
Start applicable services:
Starting the following service(s):
rh-redis5-redis, postgresql, pulpcore-api, pulpcore-content, [email protected], [email protected], [email protected], [email protected], tomcat, dynflow-sidekiq@orchestrator, foreman, httpd, puppetserver, dynflow-sidekiq@worker-1, dynflow-sidekiq@worker-hosts-queue-1, foreman-proxy
\ starting pulpcore-content
Warning: postgresql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
- All services started [OK]
--------------------------------------------------------------------------------
re-enable sync plans:
| Total 1 sync plans are now enabled. [OK]
--------------------------------------------------------------------------------
Remove maintenance_mode chain from iptables: [OK]
--------------------------------------------------------------------------------
Compress backup data to save space:
/ Compressing backup of Postgres DB [OK]
--------------------------------------------------------------------------------
Done with backup: 2022-04-28 14:09:44 -0400
**** BACKUP Complete, contents can be found in: /var/satellite-backup/satellite-backup-2022-04-28-14-03-52 ****
En caso hagamos un backup full y luego deseamos crear respaldos incrementales sobre ese backup full usamos:
# satellite-maintain backup offline --incremental /var/backup_directory/full_backup /var/backup_directory
Podemos crear algunos usuarios o registros en la plataforma de Satellite y ejecutar un respaldo, luego borrar el registro o usuario y ejecutar un restore con:
# satellite-maintain restore -w restore-installer-reset,pulp-migrate /var/backup_directory/full_backup
En caso de alertas de error, pueden omitirse ya que los backup y restores son parciales por la directiva --skip-pulp-content, ignore esos errores y recuerde que en un ambiente de produccion el respaldo de pulp si esta presente.
Muchas veces, los discos del sistema se quedan sin espacio disponible, en estos casos podemos ampliarlos de forma dinamica en linea ya que usan el sistema LVM, para ellos necesitamos usar el comando fdisk con algun disco lire y particionarlo, en este ejemplo usamos el disco sdb
# fdisk /dev/sdb
Orden (m para obtener ayuda): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help): w
Una vez particionado el disco, lo mapeamos como pv
# pvcreate /dev/sdb1
Agregamos el PV al VG rhel
# vgextend rhel_satellite /dev/sdb1
Con el comando anterior extendemos la capacidad del VG y podemos agregar espacional a los volumenes, por ejemplo ampliamos en 10GB el volumen /var de 20GB a 30GB
# lvresize -L +5G /dev/rhel_satellite/root
Aplicamos el cambio en el filesystem con
# xfs_growfs /dev/rhel_satellite/root
Finalmente validamos el nuevo espacio con
# df -h
Validamos la cantidad de erratas descubiertas en el servidor, tome nota de estos datos
# yum list-security
Si queremos validar el detalle de esas actualizaciones usamos
# yum list-security info
Seleccionamos una actualizacion del tipo bugfix para corregirlas
# yum update --advisory=RHBA-2020:3009
Vuelva a validar la cantidad de erratas descubiertas en el servidor y compare con el dato anterior
# yum list-security
Este mismo procedimiento puede ser realizado con la interfaz gráfica, login en la plataforma y en Hosts de contenido busque su sistema cliente
En el TAB de Errata busque una actualización que considere critica para el sistema, tome nota del codigo
Seleccione la actualización y aplíquela
Espere que que termine de actualizarse, vuelva a examinar el servidor y busque si la actualizacion aun esta por aplicar
Meta:
Conocer el flujo de creación de un caso de soporte
Objetivos:
- Generar sosreport
- Utilizar el tool de soporte
Secciones:
- Gestión de incidentes
Laboratorios:
- Instalar sosreport
- Tool de soporte de Red Hat
Requisitos:
- RHEL client
El comando sosreport es una herramienta que recoge información sobre la configuración, información del sistema e información diagnóstica de un sistema Red Hat Enterprise Linux system. Por ejemplo: la versión de kernel que está corriendo, los módulos cargados y los archivos de configuración del sistema y de los servicios. El comando también corre programas externos para recoger más información y almacena el resultado en un archivo.
El resultado del comando sosreport es el punto de partida común para los ingenieros de soporte de Red Hat support cuando realizan el análisis inicial de un caso referido a un sistema Red Hat Enterprise Linux.
Para instalar el comando sosreport instalamos el paquete
# yum install sos
Cuando aperturamos un caso de soporte, el sistema de Red Hat nos genera un codigo de atencion, es recomendable ejecutar el comando sosreport referenciando ese numero de caso de soporte, por ejemplo si reportamos un incidente y el sistema nos genera el codigo 20091983 entonces usamos el siguiente procedimiento para empaquetar todos los archivos importantes via sosreport
# sosreport
Press ENTER to continue, or CTRL-C to quit.
Please enter the case id that you are generating this report for []: <strong>XXXXXXX</strong>
Your sosreport has been generated and saved in: <strong>/var/tmp/sosreport-prueba01-XXXXXXX-2022-04-28-ezrwzxn.tar.xz</strong>
En caso desee subir el archivo sosreport directamente desde el sistema suscrito, puede apoyarse en el tool de soporte, instalelo con
# yum install redhat-support-tool
Luego ejecute el comando donde se indica el nro de caso de soporte despues de -c y el archivo sosreport despues de -f
# redhat-support-tool addattachment -c 0000000 -f /var/tmp/sosreport-00000.tar.xz
Se debe ingresar credenciales de cuenta de Red Hat para subir el archivo.
Meta:
Conocer las herramientas de automatización de Satellite
Objetivos:
- Automatizar operaciones con puppet
- Automatizar operaciones con ansible
Secciones:
- Gestión de operaciones
Laboratorios:
- Instalar un paquete vía Satellite
- Registrar clases de puppet
- Registrar clientes de puppet
- Configuración de parámetros de CHRONY con puppet
Requisitos:
- Satellite
- RHEL client
La plataforma de satellite permite instalar un paquete a los clientes registrados, intentemos instalar el paquete CHRONY al cliente satellite, antes de iniciar la instalación ingrese al terminal del cliente satellite y valide que no tenga el rpm de chrony instalado
# rpm -q chrony
package chrony is not installed
Ingresamos al cliente en la sección de Hosts > Hosts de contenido y seleccionamos el cliente
En la sección de Paquetes le damos a Acciones
Ejecutamos la accion de instalar el paquete chrony
Esperamos que la tarea termine de ejecutar con exito
Volvemos a ejecutar el comando de verificación en el cliente
# rpm -q chrony
Ahora el paquete esta instalado sin embargo el servicio no esta activo
# systemctl status chronyd
Tampoco esta configurado con algun servidor que provea la hora
# cat /etc/chrony.conf | grep server
Satellite nos ayuda a instalar el paquete y para la configuracion de los sistema nos apoyaremos en puppet.
Las clases de puppet a través de los módulos de puppet facilitan la configuración de servicios a través del uso de parámetros, estos módulos pueden ser cargados por la linea de comandos o por entorno gráfico, a continuación el instructor cargara el modulo de puppet CHRONY para los siguientes laboratorios
Para buscar modulos relacionados con el servicio chrony
# puppet module search chrony
Una vez identificado el modulo lo instalamos con
# puppet module install puppet-chrony
Se importa las clases del modulo en el ambiente
Se habilita la customización de parámetros de la clase chrony y la infraestructura que lista para que pueda enviar la configuración en el siguiente laboratorio
Para la ejecución de las tareas de puppet primero se debe registrar el cliente de puppet en el servidor cliente de satellite, para ello primero validamos que el cliente tenga el repositorio de satellite-tools-6.10-for-rhel-8-x86_64-rpms
con
# yum repolist
Luego instalamos el cliente con
# yum install -y puppet
Ahora modificamos el archivo de configuración /etc/puppetlabs/puppet/puppet.conf
para que incluya la linea
server=satellite.local
Iniciamos el servicio y habilitamos puppet
systemctl start puppet
systemctl enable puppet
Validamos la configuración del cliente
# puppet agent --test --noop
Se creo una petición de certificado digital pero esta pendiente de aprobación, para ello vamos a la sección de Infraestructura > Capsulas inteligentes y seleccionamos el servidor satellite
En la sección de CA Puppet se vera una alerta de certificado, ingresamos
Buscamos nuestro cliente de satellite y le damos registrar
Validamos de nuevo el cliente y verificamos que no aparezcan errores (ejecutar 2 veces)
# puppet agent --test --noop
Notamos que el cliente esta registrado en el ambiente Produccion y no hay operaciones por validar, se encuentra listo para enviar la configuración deseada
Con el cliente listo y la clase de puppet habilitada por el instructor podemos crear nuestro grupo de configuración personalizado para enviar parámetros de configuración del servidor NTP/CHRONY, el objetivo de crear un grupo de configuración es segmentar la cantidad de servidores que requieren esa configuración especifica, el primer paso es ir a la sección Configurar > Grupos de configuración y creamos un grupo nuevo
Nombramos el grupo con un nombre que nos identifique e incluimos la clase CHRONY a nuestro grupo nuevo
En la sección de Hosts > Todos los hosts, seleccionamos nuestro cliente satellite
Editamos el cliente
Nos aseguramos que los parámetros de puppet del cliente estén configurados
En Clases de Puppet añadimos nuestro grupo de configuracion
Aceptamos la configuración y volvemos a ingresar a Editar, ahora vamos a la sección de Parámetros y sobrescribimos los parámetros
En el cliente satellite ejecutamos el comando del verificacion del agente y analizamos la salida
# puppet agent --test --noop
Como vera el comando puppet valida que no esta el servicio activo y que no tiene configuraciones de servidores de hora, para aplicar estas nuevas configuración usamos el comando
# puppet agent --test
Ahora validamos los servicios de chrony con
# systemctl status chronyd
# cat /etc/chrony.conf | grep server
Satellite ademas de puppet cuenta con diferentes opción de integración con otra herramientas de ejecución de tareas, entre ellas ansible o incluso lo mas simple como comandos SSH, en el siguiente ejemplo ejecutamos la tarea remota de copia de un log importante
En la sección de Todos los hosts, seleccionamos nuestro cliente de satellite
Programamos un trabajo remoto
Definimos el trabajo remoto
El programa debe finalizar con exito
Ingresamos al cliente satellite y validamos si se ejecuto la tarea.