Антон
или через shell и regestry?
Sergey
В переменные сложи в роль. У тебя же эти значения где-то используются, или так, позырить?
Антон
они используются в следующем шаге
Антон
конкретно это - расчет количества tempdb для экземпляра sql
Sergey
Что это именно - не имеет большого значения. Я имел в виду - это же часть роли?
Антон
да, это роль, поэтому надо считать
Sergey
Вот в роль, в defaults/main.yml и сложи.
Антон
что сложить то?
Антон
вопрос в том, как мне посчитать значение =)
Sergey
Вот эту конструкцию свою считающую. Только без мультилайна.
Антон
я тебя не понимаю =((( у меня есть роль. в ходе нее мне надо посчитать значение и потом его использовать
Антон
юзаю для этого set_fact
Антон
я не понимаю что мне из этого нужно положить в main =|
Sergey
1. Не "в ходе" и не set_fact. 2. defaults/main.yml
Андрей
в defaults констрккцию запихни
Андрей
что непонятного
Sergey
--- myfact: "{{ bla1 if condition else bla2 }}"
Sergey
куда проще-то?
Sergey
https://jinja.palletsprojects.com/en/2.11.x/templates/#if-expression
Sergey
🐍-like жи....
Антон
ладно, пойду попробую, спасибо
Антон
хм... так получается я это могу юзать и там, без всяких доп переменных
Sergey
да, конечно, просто если это важная цифра - гораздо лучше держать её в переменных роли.
Антон
поэтому логичнее ее вычислить прямо на месте и на этом успокоиться
Sergey
сам решай, здесь уже вопросы инженерной оптимизации/здравого смысла
Антон
хорошо, тогда немного другой вопрос. есть правило что длинна строки не должна превышать n-символов (в коде)
Антон
можно как-то сказать ансиблу что это просто перенос строки и читай дальше ниже?
Антон
есть у меня например какая-то оооочень длинная формула на 2 экрана - ее читать - задолбаешься
Антон
как быть?
Андрей
Переписать формулу?)
Sergey
как быть?
Эти надуманные "правила" мы здесь не обсуждаем. Инженерный подход выглядит просто: - если ты знаешь, почему поступил именно так, то говоришь это на код ревью и всё, проехали. Ну или можно вылизывать до бесконечности формулу - точнее, пока тебя не уволят за до сих пор неработающий деплой. 😊
Антон
Переписать формулу?)
формулу вендора - удачи =))))
Антон
я к тому что есть какой-то аналог \ из баша или ` из powershell-а?
Sergey
ты не хочешь этого
Sergey
но вообще ямл-спеку почитай, там всё есть
Антон
спасибо большое =)
Anna
Подскажите, может кто находил плейбук для сбора системной информации по всем хостам Ansible? Надо распарсить в формат типа параметр, параметр, и т.п. короче как csv. Т.е. в одном файле на серваке где ansible собрать инфу по хостам. Пока получилось только через msg и debug, это читабельно, но не тот формат. По идее надо через шаблон j2 или blockinfile, но тогда выводит данные только по одному хосту
Anna
вот такая конструкция не работает, только один хост (тут не шаблон, а blockinfile)
Anna
--- - hosts: all vars: dest: /etc/ansible/audit.txt tasks: - copy: content: '' dest: "{{ dest }}" run_once: yes delegate_to: 127.0.0.1 - blockinfile: path: "{{ dest }}" block: | {{ inventory_hostname }} {{ ansible_distribution }} {{ ansible_distribution_major_version }} {{ ansible_distribution_version }} {{ ansible_distribution_release }} delegate_to: 127.0.0.1
Anna
все из inventory
Антон
так пишите нужные факты в файл отдельный для каждого хоста, потом соберите питоном или башем или пошем
Антон
так не проще?
Anna
смысл - получить актуальную инфо по дискам, памяти
Anna
а вы наверно про локальные факты
Anna
аа... имеете ввиду потос распарсить
Roman
товарищи, возможно ли использовать vault удалённо шифровать файлы\каталоги? И возможно ли 1-2 паролями в плейбуке при запуске указывать?
Anna
ну по идее можно... думала, что ansible сможет без лишней итерации
Sergey
ну по идее можно... думала, что ansible сможет без лишней итерации
Можно. Запусти tasks: [] После этого в hostvars будут лежать все факты по хостам.
Anna
а как их в нужном виде получить. Там куча фактов. А нудно в основном память VCPU (кстати не увидела этот параметр в фактах, есть CPU и показывает последовательно все ядра... глазами понятно, но число опять же можно руками вбить.
Anna
и ищу параметр - общей объем hdd. А там разбито по дискам
Anna
видимо тогда командой получать
Anna
нашла такое https://itnext.io/create-a-host-inventory-in-a-minute-with-ansible-c7bf251166d9, но тут формат html. Хотя может наведет на мысли
Anna
Можно. Запусти tasks: [] После этого в hostvars будут лежать все факты по хостам.
спасибо, интересная конструкция с пустыми квадратными скоюками
Sergey
Это просто пустой список заданий в данном случае. При прочих равных (если нету gather_facts: no) отработает модуль setup, что и требовалось.
Vladislav
Добрый день. Такой вопрос. Как сделать так, чтобы плейбук выполнялся параллельно на нодах, а не ждал пока выполнится на одной и потом только на другой?
Vladislav
strategy:free это оно?
Vladislav
forks в конфиге стоит 10
Dmitry
есть у меня например какая-то оооочень длинная формула на 2 экрана - ее читать - задолбаешься
https://jinja.palletsprojects.com/en/2.11.x/templates/#whitespace-control не очень понял, зачем от тебя долго скрывали это тайное знание и убеждали, что оно тебе не нужно)
Ivan
Подскажите, существует ли уже какой-то способ мержить значения одной group_var для хоста, состоящего в разных группах?
Ivan
Хотя я смотрю тут обсуждали и ничего приятного видимо не появилось до сих пор https://t.me/pro_ansible/113015
Ivan
И кто за тебя должен решить, каким должно быть это значение?
Я бы мог выбрать алгоритм, которым мержится хеш значений из разных групп.
Ivan
Например https://puppet.com/docs/puppet/6.4/hiera_automatic.html#merge-behaviors
Sergey
Я бы мог выбрать алгоритм, которым мержится хеш значений из разных групп.
Хм, выбери и реализуй подобное поведение через lookup-плагин.
Sergey
Например https://puppet.com/docs/puppet/6.4/hiera_automatic.html#merge-behaviors
И этот чат не про паппет, хотя, кстати, Ансибл умеет в hiera: https://docs.ansible.com/ansible/latest/plugins/lookup/hiera.html
Ivan
И этот чат не про паппет, хотя, кстати, Ансибл умеет в hiera: https://docs.ansible.com/ansible/latest/plugins/lookup/hiera.html
Я привёл пример того, что я ищу. Про ансибл в хиеру - это сильно. Интересно)
Ivan
Хм, выбери и реализуй подобное поведение через lookup-плагин.
Спасибо посмотрю. Подумав, понял что на данный момент меня устроит разделение на пару переменных. Дальше будем думать потом.
Sergey
Спасибо посмотрю. Подумав, понял что на данный момент меня устроит разделение на пару переменных. Дальше будем думать потом.
Я себе написал плагин, который реализует "склейку" словарей, если их имена начинаются с определённой строки, или подходят под regex.
Sergey
Годное решение, ссылка на плагин есть?)
Пока нет, это в рабочее время делалось для работы, пройду все согласования - напишу сюда.
Sergey
Боюсь, пока не за что.
Ivan
За то что отвечаете, как минимум.
Sergey
А, это... Всегда пожалуйста.
[IPT] Dmitry
А какая существует лучшая практика переиспользования кода энсибл? Допустим, я для разных ролей практически одинаково создаю диск/раздел/фс. Как лучше быть? Создать роль make_disk и просто вызывать её с переменными хоста?