Ansible Obtener el nombre de host del archivo de hosts

Ansible Obtener el nombre de host del archivo de hosts

Quiero poder obtener los primeros 8 caracteres del primer host de un grupo desde un archivo de hosts. Entonces, en el siguiente ejemplo quiero que se asigne una variable xx33sx01. Sé que puedo usar inventario_hostname para obtener los hosts, pero devuelve los 4 y solo necesito el primer host y solo los primeros 8 caracteres.

Inventario de ejemplo de Ansible (estilo INI):

[TEST1]
xx33sx0101.domain.com
xx33sx0102.domain.com
xx33sx0103.domain.com
xx33sx0104.domain.com

ansible-playbook /local_home/scripts/test.yml -i ~/hosts -e "target=TEST1" -K

Respuesta1

Para obtener los primeros 8 caracteres del primer nombre de host del grupo, intente

- debug:
    msg: "{{ groups[target_group][0][:8] }}"
  vars:
    target_group: TEST1

(no probado)


  • Para que la tarea de depuración funcione, el grupo debe estar disponible para el libro de estrategias, por supuesto. Por ejemplo
- hosts: all
  tasks:
    - debug:
        msg: "{{ groups[target_group][0][:8] }}"

información relacionada