Size: a a a

ansible — русскоговорящее сообщество

2021 April 27

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Все глобально
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Это сложный синтаксис?

- name: Install requirements
 yum:
   name: '{{ my_packages }}'
   state: present
   update_cache: true
 register: task_result
 until: task_result is succeeded
источник

VP

Vasya Pupkin in ansible — русскоговорящее сообщество
да
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
штош
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Чего???? Вы не умеете присваивать значения переменным в ансибле?
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Приведите аналог идемпотентного варианта на баше, скажем. Сравним сложность.
источник

VP

Vasya Pupkin in ansible — русскоговорящее сообщество
не очевидно что за register и так далее
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
rtfm "register"
источник

ВМ

Вячеслав Малютин... in ansible — русскоговорящее сообщество
Чуть ниже прочитайте. Я в этом сообщении не совсем точно выразился.
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
register и until можно убрать. Это опциональные фичи.
источник

VP

Vasya Pupkin in ansible — русскоговорящее сообщество
ладно, ребят, я всё понял что хотел, детали не так важны ... постараюсь найти работу безо всяких ansible
источник

t

tenni in ansible — русскоговорящее сообщество
ответь с примером, продолжи оживлять =)
на баше можно
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
1. При желании можно и if .. else напрямую впихнуть, минимум двумя способами. Другое дело, что это не нужно обычно при декларативном подходе.

2. register - это для сохранения результатов выполнения модуля. Для задания значений есть set_fact. Там можно задавать что хочешь - любые списки со словарями.

3. string, integer, float, boolean, list, dict, None
источник

ВМ

Вячеслав Малютин... in ansible — русскоговорящее сообщество
1. Знаю.

2. Меня Иван запутал. Не register, а set_fact, конечно.
Вопрос не в том, чтобы определить список/словарь, а в том, чтобы присвоить какое-то значение элементу списка/словаря.
Нельзя вот просто так взять и написать dict_name.value.item_xxx=0
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
1. Если знаете, то зачем пишете, что этого нет?
2. Можно взять и написать. Другое дело, что отдельные элементы словаря так не переопределишь, только весь словарь целиком. Если нужно отдельные ключи поменять - делается через фильтр combine.
источник

ВМ

Вячеслав Малютин... in ansible — русскоговорящее сообщество
1. Этого нет в простом виде.

2. Можно переопределить отдельные элементы словаря )))
Только чуть больше надо написать и ввести дополнительную  переменную.
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
1. В простом виде это просто не нужно. Ансибл - это про декларативность, а не про императивность. Хотите императивности - гоу внутрь модуля кодить на любом удобном вам языке. Хоть на баше.
2. Можно ничего не вводить.

- set_fact:
   my_dict: >-
     {{
       my_dict
         | combine({
                     'key_to_update': 'updated_value'
                   })
     }}
источник

ВМ

Вячеслав Малютин... in ansible — русскоговорящее сообщество
1. Нужно или не нужно - это все от конкретной задачи зависит.

2. Нет времени сейчас искать тот код, но мне почему-то пришлось вводить дополнительную переменную, чтобы присвоить элементу словаря/списка значение. Хотя на первый взгляд и Ваш код должен работать.
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
1. По дефолту не нужно и решается обычно другими средствами ветвления. При желании можно впилить и непосредственно на уровне ансибла. Ничего особо сложного там нет.
2. Может, вы просто плохо знаете ансибл?
источник

ВМ

Вячеслав Малютин... in ansible — русскоговорящее сообщество
Возвращаемся к тому, что зайца можно научить курить.
источник