#ansible
#ansible
Вопрос:
новичок с ansible
как мне передать динамический список значений в ansible
я хочу изначально сохранить это как 8
- «{{ [ ‘lun1’, ‘lun2’, ‘lun3’, ‘lun4’, ‘lun5’, ‘lun6’, ‘lun7’, ‘lun8’ ] }} «
но позже увеличьте его до 50, 100
- name: Create object
na
state: present
name: "{{ hostvars[item[1]]['iscsi_hostname']['stdout'] }}{{item[0]}}"
flexvol_name: "{{ vol_name }}{{ hostvars[item[1]]['iscsi_hostname']['stdout'] }}"
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
with_nested:
- "{{ [ 'lun1' , 'lun2' , 'lun3' , 'lun4' , 'lun5' , 'lun6' ,'lun7' , 'lun8' ] }} "
- "{{ groups['redhat'] }}"
итак, я хотел
- «{{ [ ‘lun1’, ‘lun2’, ‘lun3’, ‘lun4’, ‘lun5’, ‘lun6’, ‘lun7’, ‘lun8’ ] }} «
как
- «{{ [ ‘lun1’, ‘lun2’, ‘lun3’, ‘lun4’, ‘lun5’, ‘lun6’, ‘lun7’, ‘lun8’ …….. ‘ lun50’ ] }} «
Ответ №1:
Создайте переменную списка динамически с set_fact
with_sequence
использованием переменной number
нужного вам размера. И отправьте number
с --extra-vars
помощью .
playbook.yml
- name: Create list var
set_fact
my_list: "{{ my_list | default ([]) }} ['lun{{ item }}']"
with_sequence: start=1 end={{ number }}
- name: Create object
na
state: present
name: "{{ hostvars[item[1]]['iscsi_hostname']['stdout'] }}{{item[0]}}"
flexvol_name: "{{ vol_name }}{{ hostvars[item[1]]['iscsi_hostname']['stdout'] }}"
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
with_nested:
- "{{ my_list }} "
- "{{ groups['redhat'] }}"
Пример команд для выполнения вашего playbook.yml
ansible-playbook test.yml --extra-vars "number=10"
ansible-playbook test.yml --extra-vars "number=25"
ansible-playbook test.yml --extra-vars "number=50"