shadow
ага, спс
shadow
не знаю работает или нет, устанавливается ещё, но пока ошибок нет... сделал ещё проще - просто новый юзер и ДБ где owner этот самый юзер, надо ещё подкрутить pg_hba.conf и вроде все
Aleksey
я как раз с соседнего чата. там тоже льётся
Aleksey
башня как и еще 3 совершенно не нужные штуки придуманы для решения проблем которые есть в больших и очень больших конторах
Aleksey
и вполне решают эти грабли
Aleksey
башня нужна там где сильно зарегулированные процессы
Max
ура, спасибо!
Sergey
Всё. Дальнейшие оценочные суждения про башню = RO на неделю. Напоминаю, что этот чат - про Ансибл.
Anonymous
принято
Aleksey
я где то встречал мнение что переменные в в ансибле которые начинаются с _ стоит считать приватными для роли и их не стоит переопределять. считаете ли вы так же?
Anonymous
да
Aleksey
@tnt4brain а чо нельзя poll ?
Aleksey
Ваша позиция мне ясна. проходите мимо.
manefesto
Привет Можно ли как-то обращаться к фактам интерфейсов по номеру ? А то у меня интерйефсы на по разному на серверах называются
Gleb
ну в теории ты можешь обращаться по номеру элемента массива
Gleb
{{ ansible_interfaces.0 }} осталось угадать как отстортировано будет :D
Gleb
ansible_default_ipv4.interface - единственное что есть для дефолта, если проще сделать так что бы интерфейсы одинаково назывались, не верю что тебе реально нужна эта автогенерация названий которая в некоторых дистрибутивах есть
Sergey
@tnt4brain а чо нельзя poll ?
В смысле опрос запилить, что ли? Можно, но был бы повод.
Sergey
Яобычно называю role_name__some_var тогда при кастомизации в инвенторе понятно что откуда приезжает
^^^+++ Если вдруг видишь где-то в выхлопе переменную postgres__user_passwd, то понятно, из какой роли.
Lev
^^^+++ Если вдруг видишь где-то в выхлопе переменную postgres__user_passwd, то понятно, из какой роли.
если уж про переменные заговорили, то https://stackoverflow.com/questions/45013306/how-to-make-ansible-variable-mandatory/61563967#61563967 обычно такую штуку делаю - name: "Verify that required string variables are defined" assert: that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None fail_msg: "{{ ahs_var }} needs to be set for the role to work " success_msg: "Required variables {{ ahs_var }} is defined" loop_control: loop_var: ahs_var with_items: - ahs_item1 - ahs_item2 - ahs_item3 1. Не использовать глобальные переменные в плэйбуке 2. если нужна внешняя переменная из инвенторя в роли, то пере определять ее в defaults выставляя дефолт при необходимости some_role_name__db_port: {{ db_port | default(5432) }} 3. префикс к переменным, для идентификации 4. в циклах перекрывать дефолт, во избежания гемора если кто-то захочет в цикле инклюднуть твою роль/плэйбук
manefesto
Никто не делал loop in loop ?
manefesto
Мне надо на нескольких хостах раскатать правила iptables, в общем зафаерволить связь между серверами
Гайрат
Никто не делал loop in loop ?
яб послушал бест практис по этому Моё решение кажется всё же костыльным
Гайрат
Или речь про template?
manefesto
ну можно через template, но моя цель прикрыть кучу портов, которые засунул бы в with_items для кучи серверов, которые типа тоже надо засунуть туда же
manefesto
а вот где item1, item2 не понятно
Lamobot
Никто не делал loop in loop ?
Такое возможно через include_tasks и смену loop_var в циклах Да только зачем?
Гайрат
Такое возможно через include_tasks и смену loop_var в циклах Да только зачем?
Так и делаю у себя. Иногда нужно пробегаться по таскам.
Aleksey
Яобычно называю role_name__some_var тогда при кастомизации в инвенторе понятно что откуда приезжает
Я хочу сэкономить на доке. Часть переменных ну совсем не требуется описывать.
Lev
яб послушал бест практис по этому Моё решение кажется всё же костыльным
Не использовать цикл внутри цикла в ансибле. вот не надо. а если надо то 10 раз подумать мб проблема решается реорганизацией структуры или вынесенеим в плагин/модуль такой логики
Lamobot
manefesto
У меня тут просто nomad внутри hetzner, серая сеть бесплатно 1TB, который я сожру на 3 дня, вот и решил внешнюю использовать
Lamobot
По-моему, можно проще сделать. ipset в помощь, список портов тоже можно задавать в iptables в одном правиле
Lamobot
список портов - multiport
Отделение Bereke Bank
ну можно через template, но моя цель прикрыть кучу портов, которые засунул бы в with_items для кучи серверов, которые типа тоже надо засунуть туда же
У меня например типа так. можно изящнее наверное. Пох, работает with_nested: - '{{ old_ips }}' - ['443', '5044', '5959', '5958']
Артём
Всем привет, друзья нужна помощь или совет! Наверняка кто то из вас сталкивался с инсталляцией кластера отказоустойчивости corosync+pacemaker. Я столкнулся с такой проблемой, ставлю кластер на 3х нодах, 2 ноды находятся в одной сети, а 3я нода находится в другой сети, связь между ними есть, исталляция происходит Ansible, все без проблем ставится, но после всех инсталляций, если посмотреть статут "pcs status" то 3я нода, которая в другой сети в статусе "offline", подскажите что я делаю не так? Спасибо!
Gleb
Ну может у тебя коросинк в режиме мультикаста и сетевое оборудование не настроено, но это не для этого чата вопрос
Lex
Пока 3 сервера, но спасибо, я посмотрю
плюсую..ipset сюда лучше ложится, тем более если он одинаковый на всех серверах...можно вообще его 1 раз сгенерить локально и на хостах просто раскатать, но тут кому как угодно )
Vitalii
А кто то использует молекулу для тестирования ролей? Есть профит внедрять на проект по деплою, конфигурированию и установке софта виндовых и линуксовых виртуалок?
Aleksey
я использую молекулу. доволен с переменным успехом. но ничего не знаю про венду
Aleksey
Перепиши на python говорили они. переписал. теперь таска которая выполнялась 1.3 секунды стала выполнятся в 32. что привело к тому что вся джоба таймаутится, таймаутом о котором я раньше и не подозревал. facepalm.
Aleksey
да. надо из пары сотен ямль файлов удалить один рутовый ключ.
Aleksey
в целом таска сводится к тому что бы сделать так вот - name: find all files find: paths: "{{ files }}/rendered" patterns: "*.yml" recurse: yes file_type: file register: myfiles - name: Remove specs header from files yedit: src: "{{ item.path }}" key: spec state: absent with_items: "{{ myfiles.files }}" changed_when: False # actually that is not true. But we since we are removing spec hope it's ok no_log: true vars: ansible_python_interpreter: "{{ prometheus_rules_venv_dir }}/bin/python"
Aleksey
на ноуте оно работает за 31 секунду. на стенде 136.64s
Aleksey
таймаут 60 секунд. и не настраивается
Aleksey
та же задача на find . -type f |xargs -n 1 -Ifile yq d -i file spec real 0m1.221s
Sergey
Я здесь вижу подозрительный момент в использовании отдельного питона. Ты же при этом автомагически прощаешься с pipelining'ом и вот этим вот всем.
Aleksey
Я здесь вижу подозрительный момент в использовании отдельного питона. Ты же при этом автомагически прощаешься с pipelining'ом и вот этим вот всем.
а я бы рад не использовать отдельный питон. но для yedit нужен модуль yaml. которого может не быть на хосте
Sergey
Так всю машинерию ты также кидаешь в module_utils и не чихаешь. Об этом в докладе было :-))))
Aleksey
мне в module_utils положить весь питонячий yaml ?
Aleksey
Впрочем это не важно. Таскк на системном питоне все равно выполняется долго. Сейчас проверю сколько точно
Sergey
Да, его и все его зависимости, которые в стандартную библиотеку не входят.
Sergey
По идее таск и должен исполняться долго - десериализация 200 файлов, потом удаление ключа и сериализация.
Aleksey
чот мне кажется что 136 секунд для 200 файлов это за гранью добра и зла. ты не находишь ?
Aleksey
большая часть из которых это накладные расходы ансибла
Aleksey
и да. это редкий кейс где скорость имеет значение
Sergey
Из адекватных вариантов я бы предложил чутка переделать эту твою штуку так, чтобы она на вход принимала сразу список файлов.
Aleksey
мою штуку? ты про yedit ?
Sergey
ога
Sergey
потому что в текущем виде оно все 200 раз запускает альтернативный питон и вот это вот всё
Sergey
бук твой на SSD?
Aleksey
без альтернативного питона скорость ничем не отличается
Sergey
Занятно.
Aleksey
system Remove specs header from files -- 34.64s alternate: 32.09s
Aleksey
даже чуть побыстрее
Terry
или руру
Aleksey
падсталом
Terry
https://www.pypy.org/