Ansible Hostnamen aus Hosts-Datei abrufen

Ansible Hostnamen aus Hosts-Datei abrufen

Ich möchte die ersten 8 Zeichen des ersten Hosts in einer Gruppe aus einer Hosts-Datei abrufen können. Im folgenden Beispiel möchte ich also eine Variable zuweisen xx33sx01. Ich weiß, dass ich inventory_hostname verwenden kann, um die Hosts abzurufen, aber es werden alle 4 zurückgegeben und ich brauche nur den ersten Host und nur die ersten 8 Zeichen.

Beispielinventar von Ansible (INI-Stil):

[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

Antwort1

Um die ersten 8 Zeichen des ersten Hostnamens in der Gruppe zu erhalten, versuchen Sie

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

(nicht getestet)


  • Damit die Debug-Aufgabe funktioniert, muss die Gruppe natürlich für das Playbook verfügbar sein. Zum Beispiel
- hosts: all
  tasks:
    - debug:
        msg: "{{ groups[target_group][0][:8] }}"

verwandte Informationen