Danis
Есть переменные: yo: var1: name: value1 var2: name: value2 Как обратиться ко всем name?
Danis
Нужно что-то типа yo[*][name]
Danis
И даже не так, а вот так: yo: var1: name: n1 surname: sn1 var2: name: n2 surname: sn2
Danis
Нужно перебрать все name.
Vladislav 👻
with_items yo item['name']
Vladislav 👻
вроде что-то из этой серии
Aleksey
господа, а есть какой то stdout_callback который позволяет сохранять результаты и потом их просаматривать ? про ARA знаю но оверкил. хочется писать в файлики
Vadim
Сам такой сейчас пишу
Aleksey
в паблик пустишь ?
Vadim
Оно где-то в пуллреквестах, завтра найду
Aleksey
@EKbfh ;)
Ivan
я уже прочитал и понял, о чём вы тут шушукаетесь и без этого
Alexander
1.) extra_vars = yaml.safe_dump(some_dict) 2.) extra_vars = json.dumps(some_dict) 3.) extra_vars = some_dict - эти варианты тоже не сработали
если кому-нибудь интересно, то документация там слегка кривая) вместо yaml'а с extra_vars нужен список строк в yaml формате, по каждой extra_vars свой отдельный yaml
Danis
with_subelements
Нашел в доках как сделать через loop.
Victor
with_dict еще можно, или через мап/экстракт, в зависимости от того что и куда
Alexander
Есть: image: "{{ docker_registry_url }}/{{ docker_repo_name }}:{{ docker_image_version }}" Хочу, чтобы {{ docker_registry_url }}/ (вместе со слешом!!) применялось только в случае наличия переменной docker_registry_url, иначе: image: "{{ docker_repo_name }}:{{ docker_image_version }}"
Alexander
Как сделать это с меньшим количеством строк? Без when
Alexander
Иначе весь блок повторяться будет
Alexander
=))
Alexander
Он громоздко выглядит
Egor
А почему будет повторяться то? Уточни when несколькими условиями и все будет нормально.
Alexander
Так, а можно твой ответ с when увидеть? )
Egor
image: "{{ docker_registry_url }}/{{ docker_repo_name }}:§{{ docker_image_version }}" when: - docker_registry_url is defined - $SECOND CONDITION Или как указано выше только проверка должна быть на defined
Victor
Дак умолчание проблему слеша не решает. Он только должен пропадать.
у тебя там будет пустая строка без слеша если в docker_registry_url приводится к false
Zhyhanov
и следуйщим ты можешь указать когда она defined
Alexander
Иначе весь блок повторяться будет
Дак, блин, об этом я и писал )
Victor
Вместо тысячи слов $ cat ./test3.yml #!/usr/bin/env ansible-playbook - hosts: localhost connection: local vars: testvar: - "" - repo tasks: - name: include inc debug: msg: "{{ item + '/' if item else ''}}image" with_items: "{{testvar}}" ok: [localhost] => (item=) => { "msg": "image" } ok: [localhost] => (item=repo) => { "msg": "repo/image" }
Anonymous
I have some problem with ansible
Anonymous
Anonymous
Anonymous
anyone know the solution to fix it?
Alexander
{{ docker_registry_url + "/" if docker_registry_url else ""}} но это не точно еще docker_registry_url по умолчанию в пустую строку поставить или false
В общем, так работает: image: "{{ docker_registry_url + '/' if docker_registry_url else ''}}{{ docker_repo_name }}:{{ docker_image_version }}" Но только если в playbook отдельно docker_registry_url в False выставить. А как бы без этого? Пробовал image: "{{ docker_registry_url + '/' | default('') }}{{ docker_repo_name }}:{{ docker_image_version }}" и так (ну за что в телеграмме поломали форматирование при редактировании??) image: "{{ docker_registry_url + '/' if docker_registry_url | default('') }}{{ docker_repo_name }}:{{ docker_image_version }}" - не взлетело.
Zhyhanov
anyone know the solution to fix it?
mikrotik dont have sh, mb
Victor
Use template or file modules to save output to file instead of shell, but i didn't get what the error is.
Anonymous
mikrotik dont have sh, mb
"dont have sh & mb" mean what? I am newbie so please help me I install ansible version 2.7 which support routerOS...I just write register to file like before but it got error
Zhyhanov
you need use command: bash -c and use scripts.rsc
Zhyhanov
https://github.com/zztopper/mikroansible/tree/master/roles/del-users
Zhyhanov
mb, help
Alexander
if docker_registry_url is defined тоже не работает
Victor
- name: undefined debug: msg: "{{ item + '/' if item is defined else ''}}image"
Victor
УМВР
Zhyhanov
thx, I will try it now
may in the new version and added another opportunity to configure the mikrotik
Alexander
- name: undefined debug: msg: "{{ item + '/' if item is defined else ''}}image"
Я вместо else использовал default - с else работает, да. Спасибо!
Alexander
Привет всем, подскажите, почему он мне строчку сервис каждый раз добавляет?
Alexander
- name: Config lineinfile: path: /etc/systemd/system/report.service.d/var_test.conf create: yes state: present regexp: "{{ item }}" line: "{{ item }}" register: report_var when: report_exist is succeeded with_items: - "[Service]" - "Environment=VAR={{ var}} " # cat /etc/systemd/system/report.service.d/var_test.conf [Service] [Service] [Service] [Service] Environment=VAR1=TEST
Alexander
потому что у тебя строчка регеэкспе не соотвествует
Как это не соответствует, он перед айтем сервис, вставляет его в регэксп и потом вставлчет ту же строку
Victor
И я бы не советовал бы так составлять файлы, теоретически последовательность строк имеет значение и они могут перепутаться.
Victor
В твоем случае можно просто регекспу удалить и оно начнет вести себя как ты ожидаешь
Victor
Или в конце концов там был какой-то модуль с ini
Alexander
А нельзя ли никак c docker_image просто tag навесить на docker image в своём репо, без пересборки? Пока второй раз собираю (понятно дело, по хешам просто проскакивает сборка, но всё же) и пушу с тегом latest. Хотелось бы просто навешивать тег, без пересборки.
Max
docker tag
Nikolai
Приветствую! Как обновить facts-кеш, чтобы ансибл увидел изменения в интвентаре (он статический) Суть проблемы в том, что был изначально запущен playbook, в котором есть импорт тасков по условию when: "'volumes' in group_names" Но самой группы в инвентаре не было После того как добавил ее в инвентарь - ансибл как-будто это не замечает и продолжает skip-апь эти таски :(
Nikolai
- meta: refresh_inventory вроде как должно срабатывать, но не помогает
Vadim
rm -rf неплохо очищает кэш фактов
Vadim
или fact_caching_timeout в ansible.cfg
Nikolai
хм, ок попробую
Nikolai
или fact_caching_timeout в ansible.cfg
добавил fact_caching_timeout=0 также
Nikolai
rm -rf неплохо очищает кэш фактов
а где ансибл складирует факты обычно
Vadim
в ~/.ansible на локальном хосте и /etc/ansible/facts на ремоуте, если fact_caching не менялся
Nikolai
спасибо
Alexander
А как у ансибла исполнить when: status.ok? По аналогии с changed,но только когда событие окей
Artur
на каком модуле ?
Alexander
docker tag
? Это канал об ansible?)
Max
но это не точно (с)
shine
? Это канал об ansible?)
это канал про аниме