Red Hat Training

A Red Hat training course is available for RHEL 8

29.3. Garantizar la presencia de múltiples entradas de host IdM con contraseñas aleatorias utilizando los playbooks de Ansible

El módulo ipahost permite al administrador del sistema asegurar la presencia o ausencia de múltiples entradas de host en IdM utilizando una sola tarea Ansible. Esta sección describe cómo asegurar la presencia de múltiples entradas de host que sólo están definidas por su fully-qualified domain names (FQDNs). La ejecución del playbook de Ansible genera contraseñas aleatorias para los hosts.

Nota

Sin Ansible, las entradas de host se crean en IdM mediante el comando ipa host-add. El resultado de añadir un host a IdM es el estado del host presente en IdM. Debido a la dependencia de Ansible en la idempotencia, para añadir un host a IdM utilizando Ansible, debe crear un libro de jugadas en el que se define el estado del host como presente: state: present.

Requisitos previos

  • Conoce la contraseña del administrador de IdM.
  • El paquete ansible-freeipa está instalado en el controlador Ansible.

Procedimiento

  1. Cree un archivo de inventario, por ejemplo inventory.file, y defina en él ipaserver:

    [ipaserver]
    server.idm.example.com
  2. Crea un archivo de playbook de Ansible con el fully-qualified domain name (FQDN) de los hosts cuya presencia en IdM quieres asegurar. Para que el playbook de Ansible genere una contraseña aleatoria para cada host incluso cuando el host ya existe en IdM y update_password se limita a on_create, añade las opciones random: yes y force: yes. Para simplificar este paso, puedes copiar y modificar el ejemplo del archivo Markdown de /usr/share/doc/ansible-freeipa/README-host.md:

    ---
    - name: Ensure hosts with random password
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Hosts host01.idm.example.com and host02.idm.example.com present with random passwords
        ipahost:
          ipaadmin_password: MySecret123
          hosts:
          - name: host01.idm.example.com
            random: yes
            force: yes
          - name: host02.idm.example.com
            random: yes
            force: yes
        register: ipahost
  3. Ejecuta el libro de jugadas:

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-are-present.yml
    [...]
    TASK [Hosts host01.idm.example.com and host02.idm.example.com present with random passwords]
    changed: [r8server.idm.example.com] => {"changed": true, "host": {"host01.idm.example.com": {"randompassword": "0HoIRvjUdH0Ycbf6uYdWTxH"}, "host02.idm.example.com": {"randompassword": "5VdLgrf3wvojmACdHC3uA3s"}}}

Pasos de verificación

  1. Inicie sesión en su servidor IdM como administrador:

    $ ssh admin@server.idm.example.com
    Password:
  2. Introduzca el comando ipa host-show y especifique el nombre de uno de los hosts:

    $ ipa host-show host01.idm.example.com
      Host name: host01.idm.example.com
      Password: True
      Keytab: False
      Managed by: host01.idm.example.com

La salida confirma que host01.idm.example.com existe en IdM con una contraseña aleatoria.