sat15 - gpulido-redhat/workshopclaro GitHub Wiki
Meta:
Conocer las herramientas de automatización de Satellite
Objetivos:
- Automatizar operaciones con puppet
- Automatizar operaciones con ansible
Secciones:
- Gestión de operaciones
Laboratorios:
- Registrar un sistema RHEL a la plataforma Satellite
- 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
Desde la linea de comandos descargamos los requisitos para registrar el sistema cliente
# curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://satellite.opennova.pe/pub/katello-ca-consumer-latest.noarch.rpm
# yum localinstall katello-ca-consumer-latest.noarch.rpm
Registramos el sistema usando el Activation Key rhel8
que ya fue creador por el administrador
# subscription-manager register --org="OpenNova" --activationkey="rhel8"
# subscription-manager attach --auto
Debera validar que tenga al menos 3 repostorios: Base, AppStream y Tools de Satellite con el comando
# yum repolist
En caso de no tener los repositorios activados, hacerlo manualmente con:
# subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
# subscription-manager repos --enable=satellite-tools-6.7-for-rhel-8-x86_64-rpms
Instalamos los agentes de katello
# yum -y install katello-host-tools
# yum -y install katello-host-tools-tracer
# yum -y install katello-agent
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 modulos 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 aboe-chrony
Se importa las clases del modulo en el ambiente producción
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.7-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.opennova.pe
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
- El paquete tuned ya viene implementado en los RHEL8
- El comando para listar los perfiles disponibles es tuned-adm list y el comando para validar el perfil actual es tuned-adm active
- El instructor ya habilito la clase tuned para que pueda ejecutar la configuración
- Solucion
Con el cliente listo y la clase de puppet habilitada por el instructor podemos crear nuestro grupo de configuración personalizadoTESTX-TUNED para enviar parámetros de configuración del perfil de tuned, 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
Creamos el grupo TUNED y asignamos la clase de tunes
Regresamos a la secciond e HOSTS > Todos los Host y seleccionamos nuestro cliente de prueba
Editamos las propiedades del cliente de prueba
En clases de puppet, añadimos el grupo de configuracion nuevo con opciones de tunes
Ahora podemos editar el perfil del sistema cliente
Para verificar el perfil actual de tuned usamos
# tuned-adm active
Para verificar los perfiles de tuned disponible usamos
# tuned-adm list
Realice algunas modificaciones al perfil de tuned y ejecutelo inmediatamente con el comando
# puppet agent --test
- Cree un usuario personal en su sistema cliente
- Cree un nuevo grupo de configuración llamado Nro de Alumno-SSH
- Habilite la política de seguridad que bloquea el acceso ssh para el usuario root, validelo con un intento de conexión con root
- Loguese con su usuario personal y realice el cambio a root con el comando su - root
- Modifique la política para que vuelva a permitir el acceso remoto ssh para root y certifique la politica para responder al informe de auditoria
- El instructor ya habilito la clase sshd_config para que pueda modificar la configuración del archivo /etc/ssh/sshd_config
Solucion
Creamos el usuario remote
# useradd remote
Cambiamos la clave de remote
# passwd remote
Creamos un nuevo grupo de configuracion
Nombramos el grupo de configuracion y añadimos la clase de ssh
Volvemos a seleccionar nuestro cliente
Editamos el cliente
Agregamos el grupo de configuracion al cliente
Modificamos el parametro de acceso remoto como root de yes a no
Aplicamos los cambios en el sistema cliente
# puppet agent --test
Intentemos crear una nueva session SSH con el usuario root, en caso de no poder crearla el ejercicio es correcto, podemos regresar a la configuracion anterior con el usuario remote
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
Definimos las credenciales del usuario a ejecutar y sobre todo la opción de ejecutar ahora
El programa debe finalizar con exito
Ingresamos al cliente satellite y validamos si se ejecuto la tarea
Es importante respaldar la configuración de un sistema, por buena practica estas confifuraciones se realizan en /etc, ejecute una tarea remota via satellite que permita este respaldo bajo las siguiente condiciones:- El archivo de respaldo debe guardarse en la carpeta /tmp
- El archivo de respaldo debe tener el formato backup_config_DiaMesAño.tar.gz
- El respaldo debe realizarse de forma programada pero no inmediatamente sino 2 minutos después de la creación de la tarea
Tips de Linux
- el comando tar -czvf carpeta.tar.gz carpeta/ permite crear el archivo comprimido
- el comando date '+%d%m%Y%H%M%S' entrega la fecha en formato DiaMesAñoHoraMinutoSegundo
Solucion