k
Привет ребят. Подскажите как реализовать. У меня есть инвентори в котором в группах иногда хосты повторяются, например: [group1] 123.com 456.com [group2] 123.com 789.com Иногда мне необходимо запустить с hosts: all. Проблема: Когда я запускаю с all, мне надо чтобы он на каждом хосте из этого инвентори выполнился лишь один раз.
Еще раз привет. А ансибл реально начинает прогонять 2 раза на одних и тех же хостах? Мне казалось, он схлопывает дублирующие записи и проходится по ним один раз в итоге. Для уверенности повторюсь, кажется правильным определить условие выполнения и задачу запускать с when: .... Идемпотентность, все дела.
Alexander
Не совсем понял про использование when в данном случае, по поводу первого сейчас перепроверю
Stas
ну не группу передавать а when и список хостов для текущей таски
Stas
вообще изначально странно помещать 1 и тот же хост на 2 группы
Alexander
>Когда я запускаю с all, мне надо чтобы он на каждом хосте из этого инвентори выполнился лишь один раз так и будет, -разве что если в разных группах у хостов разные параметры-
Да действительно.. Не заметил этого по причине того что у меня в группе используются переменные, тоесть вот так: [group1] 123.com var=1 456.com var=1 [group2] 123.com var=2 789.com var=1 Наверное надо в целом убрать такой подход, как то это не праивльно.._)
Stas
народ, в гугл уже ходил
Stas
можно ли как нибудь
Stas
удалить самый старший файл
Stas
тоесть есть куча temp*.tar.gz архивов
Stas
- name: Count archives find: paths: "{{ base_dir }}" patterns: "{{ app_name }}_backup*.tar.gz" register: archives_list - name: Remove old archives file: path={{ archives_list.files.path }} state=absent when: archives_list.matched >= 5
Stas
как последний when можно дополнить
Stas
не костыльно
Stas
решил, отбой :))
Alexey
как дополнил то
Alexander
Как реализовать такое, имя хоста dns.test.com: - import_tasks: name.yml when: ansible_fqdn == dns*
Vadim
отставить
Vadim
https://docs.ansible.com/ansible/latest/playbooks_filters.html#regular-expression-filters
Alexander
ansible_fqdn ~ 'dns*' емнип
это исполнило для всех)
Alexander
А с помощью этого сработало.спасибо
Alexander
https://docs.ansible.com/ansible/latest/playbooks_filters.html#regular-expression-filters
Stas
как дополнил то
- name: Get oldest archive set_fact: latest_file: "{{ archives_list.files | sort(attribute='mtime',reverse=false) | first }}" еще одним таском в итоге
Aleksey
Dmitry
А тем временем сегодня вышел Ansible 2.5. Из основных нововведений можно выделить: — циклы с with_ теперь deprecated, введена замена в виде loop — улучшены сетевые модули и их документация — ну и куча улучшений и deprecated в различных местах https://goo.gl/k46snk
Dmitry
Вы уже горите?
Aleksey
Опять всё переписывать
Aleksey
Опять таскать с собой рабочие модули вместо не рабочих но в коробке
Vadim
эээх, там в 2.4.3 лютый меморилик в одном из наших кейсов, интересно, пофиксили или нет
Dmitry
Блин, ну вот про виз итемс это пиздец
Dmitry
Ебаный
Nklya
Andrew
Как реализовать такое, имя хоста dns.test.com: - import_tasks: name.yml when: ansible_fqdn == dns*
Мне больше нравится вариант when: "'dns' in ansible_fqdn"
Tadeusz
grafana_plugin, круто
Nklya
там еще тераформ теперь есть
Aleksey
Одно лечат другое калечат
Aleksey
become в инклуд не работает
Aleksey
Надо его на таск делать
Dmitry
Nklya
нет, модуль тераформа завезли в 2.5
Nklya
http://docs.ansible.com/ansible/devel/modules/terraform_module.html
Alexander
Блин, ну вот про виз итемс это пиздец
Ну лексически, конечно, это выделялось (нестандартный подход), поэтому я щитаю, стратегически правильно, что заменили на что-то более интуитивно понятное. Переписывать, да, но оно же ещё не deprecated, а только ещё планируется.
Aleksey
да. за год время выбрать можно.
Alexander
Если кроме слова ничего не меняется, вообще же можно s/with_items/loop/g
Alexander
Нет - не меняется, или нет - нельзя? )
Nklya
Семь бед - один сед))
Alexander
Я не нашёл подробного описания
Aleksey
увы там ручная работа
Aleksey
может быть sed сделает ее большую часть
Alexander
А что (например) sed'у не под силу?
Aleksey
вопрос с подвохом ага
Tadeusz
grep -nr with_items . | wc -l 126 покажите)
Aleksey
меня больше обижает что теперь оно падает на тривиальных местах
Aleksey
AnsibleError: An unhandled exception occurred while templating '{{ (memcached_max_clients * 1.1) | int | abs}}'. Error was a <type 'exceptions.AttributeError'>, original message: 'int' object has no attribute 'startswith'
Aleksey
интересно починили ли with_nested
Tadeusz
вот вася… https://github.com/ansible/ansible/issues/30447
Aleksey
ага. nested к релизу подтянули
Aleksey
и ansible_python_interpreter тоже поправили
Danila
Чо, пацаны, 2.5 кто поставил уже?
Vadim
До 2.9 еще есть время, что за паника? Заодно есть шанс нормально переписать
Danila
Я, на локалхост))
Первый тост пошел
Tadeusz
Котаны, а как правильно ансиблом epel подключать. Я бегло погуглил и нашёл с десяток вариантов как это делать.
например, так: - name: Add epel repository yum_repository: name: epel description: EPEL YUM repo baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/ gpgkey: http://mirrors.nipa.cloud/epel//RPM-GPG-KEY-EPEL-7 gpgcheck: yes
matt
- name: add epel yum: name: epel-release
Tadeusz
на да, можно и так)
Alexander
https://theansible.bandcamp.com/album/draw-closer Кто слушал? Стоит? ))
Pavel
https://theansible.bandcamp.com/album/draw-closer Кто слушал? Стоит? ))
это ссыкотно слушать.... я читал "Белая трость калибра 7,62" в детстве.... 🤣
Karey
это ссыкотно слушать.... я читал "Белая трость калибра 7,62" в детстве.... 🤣
Привет, подскажите, обновился на 2.5, перестали работать тэги для include_role: Раньше было как, запускаешь ansible-playbook playbook.yml --tags service1 и запускалась нужная роль playbook.yml - include_role: name: service1 tags: - service1 roles/service1/tasks/main.yml (без каких-либо тэгов) - name: Some task .... В новой же версии это сломалось (может и раньше) Решение этому есть как описано в тикете (https://github.com/ansible/ansible/issues/35459), добавить такой же тэг к каждой таске, но это очень проблемно. Может мне кто-нибудь объяснить новую политику партии на этот счет и есть ли какая-нибудь возможность обойти (кроме отката на предыдущую версию) ?
Nklya
Неактуальное
Karey
Неактуальное
Странно, у меня в 2.5 отработало, как раз собирался поблагодарить за совет
Karey
Даже не ругнулся
Nklya
Ну он то работает, просто срется ворнингами