
Я хочу иметь возможность получить первые 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] }}"
- Выполнение заказа на основе инвентаряможет повлиять на выбор.