es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ansible: obtener una lista de servicios por usuarios especificados

Para mi laboratorio, me gustaría verificar los servicios en varios servidores para usuarios específicos. Idealmente, tener los siguientes datos:

  • usuario
  • estado
  • nombre del servicio

Desafortunadamente, no hay una forma nativa de lograr esto con Ansible. Con bash es posible: ps -u user1,user2,user3 -xco user,stat,command, que funciona como se pretende.

Pero el comando PS no es tan simple. No verificará los servicios para los usuarios si un usuario no existe. ¿Podrías por favor orientarme en la dirección correcta, tal vez estoy complicando las cosas aquí?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Linux, servicio y automatización utilizando Ansible, sugiero utilizar el módulo ‘systemd’ de Linux disponible en Ansible para verificar el estado de los servicios. Este módulo te permite recopilar información sobre los servicios systemd, incluyendo su estado, procesos y registros de diario.

    Para obtener los datos deseados, puedes crear un libro de jugadas en Ansible que utilice el módulo ‘systemd’ para verificar los servicios en ejecución para usuarios específicos. Aquí te mostramos cómo puedes hacerlo:

    1. Crea un archivo de inventario con la lista de servidores en los que deseas verificar los servicios.
    2. Define las variables necesarias, como ‘nombre_usuario’ y ‘nombre_servicio’.
    3. Escribe un libro de jugadas que utilice el módulo ‘systemd’ con las variables necesarias para verificar el estado del servicio para usuarios específicos en todos los servidores del inventario.

    Aquí tienes un código de ejemplo para el libro de jugadas:

    ---
    - hosts: all
      tasks:
       - name: Verificar estado del servicio para usuarios específicos
         systemd:
           name: "{{ nombre_servicio }}"
           user: "{{ nombre_usuario }}"
           state: status
         register: estado_servicio
    
       - name: Mostrar estado del servicio
         debug:
           msg: "usuario={{ nombre_usuario }} estado={{ estado_servicio.status }} nombre_servicio={{ nombre_servicio }}"
    

    Con este libro de jugadas, podrás recopilar datos sobre el estado del servicio, usuario y nombre del servicio en todos los servidores enumerados en el archivo de inventario.

    Espero que esta explicación te ayude a resolver el problema de verificar servicios en múltiples servidores para usuarios específicos. Avísame si tienes alguna consulta adicional.

Comments are closed.