shadow
ага, спс
shadow
не знаю работает или нет, устанавливается ещё, но пока
ошибок нет... сделал ещё проще - просто новый юзер и ДБ где owner этот самый юзер, надо ещё подкрутить pg_hba.conf и вроде все
Aleksey
я как раз с соседнего чата. там тоже льётся
Aleksey
башня как и еще 3 совершенно не нужные штуки придуманы для решения проблем которые есть в больших и очень больших конторах
Aleksey
и вполне решают эти грабли
Aleksey
башня нужна там где сильно зарегулированные процессы
Max
ура, спасибо!
Sergey
Всё. Дальнейшие оценочные суждения про башню = RO на неделю. Напоминаю, что этот чат - про Ансибл.
Anonymous
принято
Aleksey
я где то встречал мнение что переменные в в ансибле которые начинаются с _ стоит считать приватными для роли и их не стоит переопределять.
считаете ли вы так же?
Anonymous
да
Aleksey
@tnt4brain а чо нельзя poll ?
Aleksey
Ваша позиция мне ясна. проходите мимо.
Lev
manefesto
Привет
Можно ли как-то обращаться к фактам интерфейсов по номеру ?
А то у меня интерйефсы на по разному на серверах называются
Gleb
ну в теории ты можешь обращаться по номеру элемента массива
Gleb
{{ ansible_interfaces.0 }} осталось угадать как отстортировано будет :D
Gleb
ansible_default_ipv4.interface - единственное что есть для дефолта, если
проще сделать так что бы интерфейсы одинаково назывались, не верю что тебе реально нужна эта автогенерация названий которая в некоторых дистрибутивах есть
manefesto
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, в общем зафаерволить связь между серверами
Гайрат
Или речь про template?
manefesto
ну можно через template, но моя цель прикрыть кучу портов, которые засунул бы в with_items для кучи серверов, которые типа тоже надо засунуть туда же
manefesto
а вот где item1, item2 не понятно
Отделение Bereke Bank
Гайрат
Гайрат
Aleksey
Lamobot
manefesto
Гайрат
manefesto
У меня тут просто nomad внутри hetzner, серая сеть бесплатно 1TB, который я сожру на 3 дня, вот и решил внешнюю использовать
Lamobot
По-моему, можно проще сделать. ipset в помощь, список портов тоже можно задавать в iptables в одном правиле
Lamobot
список портов - multiport
manefesto
Gleb
Артём
Всем привет, друзья нужна помощь или совет! Наверняка кто то из вас сталкивался с инсталляцией кластера отказоустойчивости corosync+pacemaker. Я столкнулся с такой проблемой, ставлю кластер на 3х нодах, 2 ноды находятся в одной сети, а 3я нода находится в другой сети, связь между ними есть, исталляция происходит Ansible, все без проблем ставится, но после всех инсталляций, если посмотреть статут "pcs status" то 3я нода, которая в другой сети в статусе "offline", подскажите что я делаю не так? Спасибо!
Gleb
Ну может у тебя коросинк в режиме мультикаста и сетевое оборудование не настроено, но это не для этого чата вопрос
Артём
Lex
Пока 3 сервера, но спасибо, я посмотрю
плюсую..ipset сюда лучше ложится, тем более если он одинаковый на всех серверах...можно вообще его 1 раз сгенерить локально и на хостах просто раскатать, но тут кому как угодно )
Anatoly
Vitalii
А кто то использует молекулу для тестирования ролей? Есть профит внедрять на проект по деплою, конфигурированию и установке софта виндовых и линуксовых виртуалок?
Aleksey
я использую молекулу. доволен с переменным успехом. но ничего не знаю про венду
Aleksey
Перепиши на python говорили они. переписал.
теперь таска которая выполнялась 1.3 секунды стала выполнятся в 32.
что привело к тому что вся джоба таймаутится, таймаутом о котором я раньше и не подозревал.
facepalm.
Sergey
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
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
Terry
https://www.pypy.org/