Este tutorial le enseñará a utilizar el módulo ANSible SystemD para iniciar, detener y administrar servicios en cualquier host utilizando el servicio SystemD Init.
Configurar Ansible
El primer paso es instalar y configurar Ansible en su sistema. En este ejemplo, ejecutamos Ansible en el sistema Debian 11.
Comience actualizando los repositorios de software e instalando Ansible:
actualización de sudo apt-get
sudo apt -get install ansible -y
Una vez instalado, podemos configurar los hosts remotos para administrar utilizando el nodo de control Ansible.
Configurar el inventario Ansible
Abra el terminal y edite el archivo de inventario como se muestra en el comando a continuación:
sudo vim/etc/ansible/hosts
En el archivo de inventario de host, agregue la dirección IP de los hosts remotos que desea administrar usando Ansible.
Configuración de la tecla SSH
El siguiente paso es crear un par de claves SSH. Esto le permite iniciar sesión en el host remoto desde su nodo de control Ansible sin la necesidad de escribir una contraseña.
Comience por generar una tecla SSH usando el comando:
$ ssh-keygen
Siga las indicaciones del comando ssh-keygen para generar un par de claves públicas y privadas.
Una vez completado, use el comando SSH-Copy-ID para copiar su clave pública SSH al host remoto.
Un comando de ejemplo es como se muestra:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Reemplace el nombre de usuario y la contraseña con el usuario remoto y la dirección IP de su host remoto.
A continuación, ingrese la contraseña para iniciar sesión en el host remoto y cargar su par de teclas SSH.
Una vez completado, SSH en el host remoto, y se registrará sin un mensaje de contraseña.
Gestión de servicios con Systemd
Para administrar los servicios en un host remoto utilizando el módulo SYSTEMD, asegure el servicio SystemD y el administrador de sistemas administrar el host remoto.
El módulo SystemD es parte de Ansible Core y está disponible en todas las instalaciones de Ansible de forma predeterminada.
Veamos algunos ejemplos de uso del módulo SystemD para administrar los servicios en los hosts remotos.
Servicios iniciales
El módulo SystemD en Ansible es sencillo de usar. Por ejemplo, para comenzar un servicio, pase el nombre del servicio y el estado que desea que sea, en este caso, comenzó.
El siguiente libro de jugadas muestra cómo iniciar un servicio utilizando el módulo SystemD.
---
- Nombre: Servicio de inicio ansible
Anfitriones: todos
gather_facts: verdadero
tareas:
- Nombre: Inicie un servicio con Systemd
Systemd:
Nombre: Apache2
Estado: comenzó
El libro de jugadas de ejemplo anterior iniciará el servidor HTTP apache2 usando Systemd.
Asegurar que el servicio de destino sea instalado y administrado por Systemd en el host remoto es bueno para evitar errores.
Si el servicio no existe, Ansible lanzará un error como se muestra en la captura de pantalla de ejemplo a continuación:
Servicios de detención
Al detener los servicios, cambie el parámetro de estado a detenido como se muestra en el libro de jugadas de ejemplo a continuación:
---
- Nombre: Servicios de parada Ansible
Anfitriones: todos
gather_facts: verdadero
tareas:
- Nombre: Detente un servicio con Systemd
Systemd:
Nombre: Apache2
Estado: detenido
Una vez ejecutado con éxito, el servicio de destino en el host remoto se detendrá.
Servicios de recarga
Para recargar un servicio utilizando Systemd, configure el estado para recargar. Es bueno saber que puede usar el nombre completo o corto del servicio como lo hemos hecho en libros de jugadas anteriores.
Por ejemplo:
---
- Nombre: Ansible recargar un servicio
Anfitriones: todos
gather_facts: verdadero
tareas:
- Nombre: Servicios de recarga con Systemd
Systemd:
Nombre: Nginx.servicio
Estado: recargado
El ejemplo anterior recargará el servicio Nginx como se pasa en el libro de jugadas.
Habilitar servicios
En los casos en que necesita que se inicie un servicio a medida que el sistema se inicia, debe asegurarse de que el servicio esté habilitado.
El módulo SystemD de Ansible le proporciona el parámetro habilitado, que puede usar para permitir que un servicio comience al inicio del sistema.
Considere el ejemplo de libro de jugadas que se muestra a continuación:
---
- Nombre: Servicio de habilitación Ansible
Anfitriones: todos
gather_facts: verdadero
tareas:
- Nombre: Habilitar el servicio Nginx
Systemd:
Nombre: Nginx.servicio
habilitado: verdadero
Enmascarado: no
El libro de jugadas anterior habilita el servicio Nginx y garantiza que no esté enmascarado.
Administrar múltiples servicios
También puede usar el parámetro With_Items para administrar múltiples servicios. Por ejemplo, para comenzar varios servicios a la vez, podemos crear un libro de jugadas como:
---
- Nombre: Servicios de inicio ansible
Anfitriones: todos
gather_facts: verdadero
tareas:
- Nombre: Inicie estos servicios
Systemd:
Nombre: "item"
Estado: comenzó
with_items:
- apache2
- mysql
- servidor de redis
El libro de jugadas de ejemplo anterior debe reiniciar los servicios en el bloque with_items.
Clausura
Esta guía le muestra cómo administrar los servicios en hosts remotos utilizando el módulo SystemD en Ansible.
Gracias por leer!