
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] }}"
- Auftragsausführung basierend auf dem Lagerbestandkann die Auswahl beeinflussen.