Timur
да, это я
Ты загуглил kubespray?
да, это я
Может быть затем, чтобы понять, зачем нужен Ansible применительно к Куберу?
да, это я
Кажется, я понимаю, почему твой pull request отклонили.
да, это я
Тогда нахрена ты тут развонялся?
Отделение Bereke Bank
Админское коммунити токсичное. Это норма
да, это я
Админское коммунити токсичное. Это норма
По отношению к таким наркоманам это ласка.
Отделение Bereke Bank
Серега что-то пишет
Отделение Bereke Bank
Sergey
@bender008 сутки r/o тебя очень странно изменили. За принятый PR - моё уважение. А мои PR - в других проектах: у меня не болит Ансибл.
Dmitry
ссылка на PR будет?
да, это я
Я тебе русским языком объяснил всё пять раз. Даже если ты прав по сути, нельзя так себя вести. Ты не понял. Ну дуйся теперь.
да, это я
И да, кубэспрей занимается развёртыванием самого кубера. Через Энсибл.
Sergey
Для предметного разговора ссылку в чат вообще было бы круто. Я первый скажу - вот очень годный пример человека, который уходит в R/O, а приходит с принятым PR.
Sergey
Ок, тогда оффтопик потри, пожалуйста, сам.
Sergey
А чего обижаться-то?
Отделение Bereke Bank
А ссылочка на PR будет?
Отделение Bereke Bank
Sergey
@bender008 Ну в чате две тыщи человек, вот прикинь - обижаться на всех. Выходных не хватит. И абсолютно ничего личного у меня к тебе и не было. Выдыхай 😊
Timur
А где все мессаги-то?
Sergey
А где все мессаги-то?
Думаю, в логах можно найти. Был вопрос, и он закрыт. Похоже, что это всё.
Anatoliy
случайно нашел аналог break для блоков ansible: если в каком-то из тасков меняется значение переменной, используемой во where блока, таким образом, чтобы условие перестало выполняться, то все остальные таски блока пропускаются. Не видел в документации описание такого поведения
Anatoliy
это видел, но выводов про возможность изменения условия не сделал. спасибо за пинок
Anonymous
а как в джинджа экранировать двойные ковычки когда выражение вида { "iptables":false, "dns": ["{{dns1}}", "{{dns2}}"] }
Anonymous
он благополучно внутри квадратных скобок съедает их что сразу после днс1 и перед днс2
Anonymous
не не работает
sbog
Я, наверное, не понимаю тогда что нужно получить
Anonymous
{ "iptables":false, "dns": ["12.3.4.5", "5.6.7.8"] }
Anatoliy
подскажите, как в JMESPath вернуть ключ для найденного значения словаря. не могу в доках найти. у искомого значения могут быть разные ключи
inqfen
Вернет кавычки на место
Anonymous
фильтр to_json
Попробую завтра. Спасибо
Sergey
Отличная новость 🎉🎉🎉 Теперь можно автоматически генерировать документацию для Ansible ролей с помощью утилиты «ansible-readme» http://amp.gs/iXQN Заодно напомню про похожие проекты для Terraform и Chef * «terraform-docs» http://amp.gs/iXQq * «knife-cookbook-doc» http://amp.gs/iXQA #ansible #docs #terraform #chef
[IPT] Dmitry
ребят, почему факты могут не собираться с хоста? вроде по умолчанию всегда должны собираться 🤷‍♂️ This module is automatically called by playbooks to gather useful variables about remote hosts that can be used in playbooks.
Timur
[IPT] Dmitry
gather_facts: no?
no. было бы слишком просто. в общем, это из-за какого-то левого ansible.cfg в гите. дальше сам расковыряю
Alexander
Накидал роль для установки постгри на Центос7 Столкнулся с проблемой выбора версии пакет называется posgresql10-server Если я объявляю postresql{{ psql_version }}-server, то ловлю ошибку, как и предполагал как решить этот вопрос? - name: Add repository become: True yum: pkg: https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm - name: Install PostgreSQL become: True yum: pkg: postgresql{{ psql_ version }}-server update_cache: True
Alexander
Как вооще лушче сделать выбор версии? Я объявил дефолтную внутри vars/ Если захочу другую, то передам через env Или как-то иначе это правильно делать?
sbog
Ошибка скорее всего из-за того, что {{ }} не в " "
Alexander
Ошибка скорее всего из-за того, что {{ }} не в " "
Тоже не срабатывает Не очень понимаю как ansible перехватывает {{ }} В ямле для убунты у меня pkg: postgresql-{{ psql_version }} И это вполне корректно работает
Albert
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html#gotchas
Albert
Просто поставьте кавычки, о чем спор?
Alexander
Какая ошибка?
Мой косяк С кавычками еще раз попробовал, сработало. Не знаю почему сразу не получилось.
Roman
Мой косяк С кавычками еще раз попробовал, сработало. Не знаю почему сразу не получилось.
Без самой ошибки не очень понятно. У меня подобные роли есть и там без кавычек всё работает
Andrey Zakharov 🐝
всем привет , подскажите плз а есть какой нибудь инструмент для версионирования и хранения ролей ансибла ?
Николай
Git
Dvoryankovas
Есть ли способ обратится к отдельному значению элемента списка зная его название? - tests: - name: name1 value: false - name: name2 value: true Например к полю value, элемента name1?
Dvoryankovas
selectattr("name”, "equalto", "name1”)|map(attribute=‘value’)
Т. е. " {{ tests selectattr(" name", "equalto", "name1") | map(attribute='value')}} " вернёт мне false?
Nikita
Т. е. " {{ tests selectattr(" name", "equalto", "name1") | map(attribute='value')}} " вернёт мне false?
"{{ tests | selectattr('name', 'equalto', 'name1') | map(attribute='value') | list }}" вернет список где будет один элемент со значением false
Nikita
Значение без списка получить нельзя?
Можно как-то так "{{ (tests | selectattr('name', 'equalto', 'name1') | list)[0]['value'] }}" , но мне кажется более опытные подскажут как это сделать лучше
Lamobot
Т. е. " {{ tests selectattr(" name", "equalto", "name1") | map(attribute='value')}} " вернёт мне false?
'{{ tests|selectattr("name", "equalto", "name1")|map(attribute="value")|first|bool }}' или '{{ (tests|selectattr("name", "equalto", "name1")|first)["value"]|bool }}'
Nikita
Точно, есть же фильтр first
Dvoryankovas
'{{ tests|selectattr("name", "equalto", "name1")|map(attribute="value")|first|bool }}' или '{{ (tests|selectattr("name", "equalto", "name1")|first)["value"]|bool }}'
И ещё вопрос в догонку, что будет если такого элемента не будет, а я допустим объявляю переменную через set_fact:?
Dvoryankovas
Вопроса не понял. tests через set_facts будет объявлен?
Обращаясь в основном плейбуке я возвел конструкцию : - set_facts: myvar: "{{ (tests | selectattr('name', 'equalto', 'name1') | list)[0]['value'] }}"
Dvoryankovas
Нужна ли в данном случае проверка, что такой элемент существует?
Nikita
Да, потому-что если список будет пуст, то будет ошибка
Nikita
Можно сделать loop first found, и переменной будет присовено первое значение из списка, но это такое себе
Lamobot
Нужна ли в данном случае проверка, что такой элемент существует?
До этого момента не нужна была проверка? :) Будет ошибка. Можно попробовать вот так обойти её '{{ (tests|selectattr("name", "equalto", "name3")|list|first|default({"value": "false"}))["value"] }}'
Lamobot
Вернее вот так, если собираетесь в when использовать '{{ (tests|selectattr("name", "equalto", "name3")|first|default({"value": "false"}))["value"]|bool }}'
Dvoryankovas
До этого момента не нужна была проверка? :) Будет ошибка. Можно попробовать вот так обойти её '{{ (tests|selectattr("name", "equalto", "name3")|list|first|default({"value": "false"}))["value"] }}'
До этого момента я впрницепи не знал как к этому элементу обратиться, поэтому вопрос об ошибке не стоял 😁спасибо большое за помощь
Maksim
Всем привет. Подскажите плз что делает строчка
Maksim
"{{ ansible_distribution }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
Maksim
Или я так понимаю, это выдрано из контекста?
Dmitry
Вырвано, нужен полный таск. Но скорее всего подключает и выполняет инструкции из файла "Название дистрибутива ОС (например Debian/CentOS)"-"первая число версии ОС".yml
Гайрат
"{{ ansible_distribution }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
Вытаскивается название + мажорная версия дистрибутива
Dmitry
обычно это делается для ролей, которые могут работать с разными ОС: где-то systemd, где-то sysvinit; пакетные менеджеры могут отличаться и дёргать их нужно разными модулями и всякое другое
Stan
is_http_enabled: false Ругается на Syntex error. Переменная прописана в group_vars. В чем может быть проблема?
Petr
отступы?