Ansible Получить имя хоста из файла hosts

Ansible Получить имя хоста из файла hosts

Я хочу иметь возможность получить первые 8 символов первого хоста в группе из файла hosts. Поэтому в приведенном ниже примере я хочу назначить переменную xx33sx01. Я знаю, что могу использовать inventory_hostname для получения хостов, но он возвращает все 4, а мне нужен только первый хост и только первые 8 символов.

пример инвентаря Ansible (в стиле 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

решение1

Чтобы получить первые 8 символов первого имени хоста в группе, попробуйте

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

(не испытано)


  • Чтобы отладочная задача работала, группа, конечно, должна быть доступна для playbook. Например
- hosts: all
  tasks:
    - debug:
        msg: "{{ groups[target_group][0][:8] }}"

Связанный контент