
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] }}"
- Ejecución de pedidos en función del inventario.puede influir en la selección.