Lev
сегодня 1 апреля в 18:00 МСК+0 не безызвестный Jeff Geerling будет комментировать потроха Ansible по своим книгам в онлайне: https://www.youtube.com/watch?v=7kVfqmGtDL8
Anton
Всем привет! Есть сервера на которых собран софтварный рейд в зеркале. Требуется узнать узнать какой раздел примонтирован нужный опознать из каких физических дисков (диски могут быть как sdX так и nvmeXn) он собран и пересобрать в raid0. Получить раздел можно через ansible_mounts и item.device.split('/')[2] , а вот как получить физические диски из /proc/mdstat не могу придумать. И потом после запуска пересборки как можно дождаться окончания resync чтобы запустить resize2fs?
k
Всем привет! Есть сервера на которых собран софтварный рейд в зеркале. Требуется узнать узнать какой раздел примонтирован нужный опознать из каких физических дисков (диски могут быть как sdX так и nvmeXn) он собран и пересобрать в raid0. Получить раздел можно через ansible_mounts и item.device.split('/')[2] , а вот как получить физические диски из /proc/mdstat не могу придумать. И потом после запуска пересборки как можно дождаться окончания resync чтобы запустить resize2fs?
Если ansible сам не собирает это как факты - добавь сбор кастомных. Например: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#local-facts-facts-d >If a remotely managed system has an /etc/ansible/facts.d directory, any files in this directory ending in .fact, can be JSON, INI, or executable files returning JSON, and these can supply local facts in Ansible. Можно положить на хост любой скрипт, который распарсит /proc/mdstat. Наверняка есть готовые решения.
k
Вот пример хороший: https://medium.com/@jezhalford/ansible-custom-facts-1e1d1bf65db8
Anton
Большое спасибо за информацию. Буду пробовать.
Sergey
Коллеги! Сегодня, 01.04.2020 в 20:00 MSK, я, Сергей Печенко́, провожу открытый тренинг-семинар по Ansible на тему "Объектная модель Ansible". Ссылка: https://zoom.us/j/906872604. Количество участников ограничено, т.к. уже сейчас количество отметившихся превышает возможности моего тарифного плана в Zoom, и именно поэтому пароль для входа будет опубликован в чате @pro_ansible непосредственно перед событием. Для участия в семинаре платная учётка в Zoom вам не нужна. Ссылка на опрос, чтобы отметиться для оценки масштабов будущего события, если вы ещё не отметились- https://t.me/pro_ansible/135686.
Sergey
Чойта?
Гайрат
1 апреля как никак
Sergey
inqfen
Чойта?
Спина белая потому что
Sergey
Sergey
inqfen
А я приду (наверное)
inqfen
Если eks доковыряю
Dmitry
@tnt4brain планируете вести запись?
Dmitry
Но ведь если количество желающих превышает возможности вашего тарифного плана, не будет ли это иметь смысл?
Sergey
Но ведь если количество желающих превышает возможности вашего тарифного плана, не будет ли это иметь смысл?
Никакого смысла: я не собираюсь напилить очередные образовательные видео по Ansible с говорящей головой, ими Интернет и без меня завален.
Ib2828
Доброго дня
Ib2828
подскаэите пожалуйста что лзначает данная конструкция
Ib2828
pg_hba_conf_template: &pg_hba_conf_template
Ib2828
?
Ib2828
Заранее благодарен
Lamobot
https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#yaml-anchors-and-aliases-sharing-variable-values
Ib2828
благодарю
Tadeusz
⚓
Sergey
но с вами будет лучше :) я бы лично посмотрел потом, в повторе)
Благодарю, но пока так. Ну и посмотрю на то, сколько вообще людей реально придёт.
Maksim
Привет, подскажите плиз brick_dir: "{{ volumes.brick }}" brick_path: /opt/gluster volumes: - { state: 'present', name: 'storage', brick: "{{ brick_path}}/storage", replicas: 2, cluster: "{{ groups.gluster | join(',') }$ - { state: 'present', name: 'archives', brick: "{{ brick_path}}/archives", replicas: 2, cluster: "{{ groups.gluster | join(',')$ - { state: 'present', name: 'previews', brick: "{{ brick_path}}/previews", replicas: 2, cluster: "{{ groups.gluster | join(',')$ - { state: 'present', name: 'themes', brick: "{{ brick_path}}/themes", replicas: 2, cluster: "{{ groups.gluster | join(',') }}"$ - { state: 'present', name: 'hasp', brick: "{{ brick_path}}/hasp", replicas: 2, cluster: "{{ groups.gluster | join(',') }}", ho$ Как заставить brick_dir работать?
Maksim
Сейчас выдает {"msg": "'list object' has no attribute 'brick'"}
Отделение Bereke Bank
О_о выглядит как магия, сейчас попробую)
Дебагом выведи результат просто для начала
Sergey
жду линк
Вотъ - https://t.me/pro_ansible/136420
Anton
но пароль?
А что, уже 19:55 по МСК?
Sergey
но пароль?
Перед началом напишу в чат. Если в двух словах - учётка более 100 человек желающих не вывезет, поэтому кто будет в онлайне и прочитает, тот и сможет зайти.
[IPT] Dmitry
- name: create filesystem filesystem: fstype: "{{ item.fs }}" dev: /dev/mapper/{{ vg_name | regex_replace('-', '--') }}_{{ item.name }}-{{ lv_name | regex_replace('-', '--') }}_{{ item.name }} with_items: "{{ disk }}" хочется строку запихнуть в {{ device_mapper }}, как это правильно делать с with_items?
[IPT] Dmitry
Ровно тем же образом, как и с любой другой переменной.
т.е. я могу где-то в group_vars задать device_mapper с {{ item.name }} и вызывать его в таске с with_items?
[IPT] Dmitry
хочу читаемость и реюз, всё говно с реплэйсами куда-то запрятать
[IPT] Dmitry
В идеале тебе нужен filter plugin на Питоне.
слишком глубокая для меня мысль. пойду значит читать. спасибо
Sergey
слишком глубокая для меня мысль. пойду значит читать. спасибо
Условно - небольшой скрипт, в который ты всю низкоуровневую грязь спрячешь, и который лежит прямо в проекте.
[IPT] Dmitry
Условно - небольшой скрипт, в который ты всю низкоуровневую грязь спрячешь, и который лежит прямо в проекте.
не, да я понял, меня больше практическая часть инетерует: как я этот фильтр буду вызывать и как это будет выглядеть всё
Sergey
началось
Репозиторий в INI - что-то реально старое.
Денис
началось
Шото как то не оч
Lev
да, капитанство там оказалось(
[IPT] Dmitry
- name: print pdns_tables_exist debug: msg: "{{ pdns_tables_exist['query_result'] }}" out ok: [br-dns-23v] => msg: - tables_exist: false как правильно сделать? when: "'false' == pdns_tables_exist['query_result'][0]" не работает
Lamobot
when: not pdns_tables_exist['query_result'][0]['tables_exist']|bool
Aleksandr
параллельно на твич или ютуб стримить?
Sergey
Ещё не "перед началом".
Alexey
ждемс....
Denis 災 nobody
у меня есть учётка работы, но я не вижу плана
Denis 災 nobody
не бесплатный точно
Denis 災 nobody
бизнес.. попробуй прицепиться
[IPT] Dmitry
when: not pdns_tables_exist['query_result'][0]['tables_exist']|bool
помогло понять мои проблемы The error was: 'dict object' has no attribute 'query_result' в общем то надо заканчивать такую говнину мне писать. всё потому что ansible ещё не умеет уникальные индексы в pg создавать
Denis 災 nobody
до 300 участников.. если получится, будет на всех желающих
Sergey
давай пока так попробуем, если реально больше 100 человек будет - можно уже думать.
Sergey
Итак, пароль: 002236
Aleksandr
ютуб, твич зашёл бы. Большая часть всё равно только смотреть будет
Отделение Bereke Bank
слышно
Denis 災 nobody
у зума свой чат
Отделение Bereke Bank
Damir
Есть ещё возможность присоединится?
Denis 災 nobody
всё выше
Nik
привет, подскажите нубу, я что-то не могу разобраться. Я создаю роль, в ней определяю переменную. в которой пишу порт, который эта роль будет использовать. Но когда я добавляю эту роль в разные плейбуки я хочу менять порт снаружи. То есть мне нужно в самом плейбуке передать переменную в роль или тип того
Nik
как это правильно реализовать или как это правильно не реализовывать
Denis 災 nobody
порт в переменную, её в общие переменные роли и буки?
Nik
ну да, например у меня есть роль someAppServer. Если я просто добавляю эту роль в плейбук, чтобы она поднималась наприме на 443 порту А в другом плейбуке этот порт будет занят под другое и мне нужно как то сообщить роли о том, что она должна использовать другое значение переменное
Aleksandr
звук есть?
Denis 災 nobody
есть