Fedor
баш скрипты - дно. ансибл многие пытаются использовать как баш скрипт
Fedor
но это в корне противоречит его философии декларативности
Fedor
вот баш - дно. а переиспользование переменных - не дно. хотя, если компоненты взаимосвязаны, почему они находятся в разных плейбуках?)
Fedor
можно же скипать таски через например when(вроде бы)
Fedor
а, нет. через теги, если часть плейбука требуется выполнять не всегда
Fedor
простите за оффтоп
Fedor
на мой взгляд, если ансибл похож на сборник command: или shell: - его надо переписать.
Fedor
как только попробуешь всё то же самое делать через модули - ощутишь цзен, потому что будешь уверен на сто процентов в результате, вне зависимости от состояния системы)
Алексей
Всмысле ты не совсем понял мою идею
Алексей
У меня всё модулями, с этим вопросов нет
Алексей
И с переменными тоже
Fedor
респект :)
Алексей
У меня задача например такая: на хосте А, развернуть контейнер, на маршрутизаторе Б, выдать дхцп аренду этому контейнеру, и допустим, открыть порт, на хосте С выполнить ещё какую нибудь херню. И всё это как бы по сути одна задача. Запускаю я эту солянку баш скриптом
Алексей
И сильно переживаю что башем не есть гуд
Fedor
можно попробовать так. плейбук контейнер (и чото там в варз) - роль контейнер - роль на хосте б с передачей туда данных из варз - роль на хосте ц с передачей из варз роли для хостов б и ц можно выполнить в единой роли, если эта операция одинакова для всех подобных задач. так ты получишь переиспользование кода любыми другими плейбуками.
Fedor
и запускать можно будет хоть из ci/cd
Fedor
только надо будет продумать контроль состояния, если у тебя более одной точки компетенций
Fedor
например - убивать лизы и порты, которые более не нужны
Алексей
Вот тока не просек как из роли а запустить роль б для хоста б
Алексей
Кстате на микроте)))
Fedor
- role: deploy_container_app1 - role: process_dhcp - role: process_fw
Fedor
это в плейбуке
Fedor
Кстате на микроте)))
о, наброски из той лекции с идемпотентным микротиком?
Fedor
типа грузить конфиг полностью
Fedor
ну была какая-то.
Fedor
давно ещё
Алексей
Нет, я не гружу полностью
Fedor
вообще можно посидеть подумать чуть порисовать на доске и спроектировать очень красиво всё. эх.
Алексей
Я ищу если можно так сказать items по комменту и удаляю их
Fedor
изящно, забыл о комментах :)
Алексей
О, я долго ломал бошку
Алексей
Целый день наверное
Алексей
Или два😄
Fedor
в общем - одного плейбука хватит. в него включить роли, которые можно переиспользовать (которые одинаковы для других плейбуков). даже точки поддержки этих ролей могут быть у разных команд (например - через сабмодули подгружать их)
Fedor
будет красиво
Fedor
и вообще не надо будет потом насчёт этого заморачиваться
Алексей
Эх да наверное будет красиво
Алексей
А я такой красивый баш скрипт у хетцнера содрал
Fedor
может го в курилку проксмокса
Алексей
Типа знаешь там такие пункты, первый выполнился, второй, третий
Алексей
Как у них installimage в rescue короче
Алексей
Да не я уже спать
Fedor
ок. снов!
Алексей
Спасибо за наводку
Алексей
Посмотрю
Vadim "Oxyd"
А я такой красивый баш скрипт у хетцнера содрал
Ну «и на старуху бывает проруха». И Хетцнер не идеален и умеет видать в «костыле-велосипеды». 😉
Fedor
Ну «и на старуху бывает проруха». И Хетцнер не идеален и умеет видать в «костыле-велосипеды». 😉
Иногда, чтобы избежать костылей, надо переписать продукт, с которым интегрируешься :)
Nikolay
Поделитесь шаблоном zabbix для мониторинга zfs )
Сергей
Dmitry
Товарищи, а подскажите, не придумали еще какую-нибудь хитрую хрень, типа mbuffer только чтобы оно работало через пачку tcp-соединений? для ускорения процесса передачи больших объемов данных
Dmitry
задача - передать 18.5ТБ пул по интернету
Fedor
Туннель, рсинк
Dmitry
там zvol
Fedor
Обязательно по шифрованному каналу, чтобы небыдло повреждений из-за коллизий чексуммы у тцп
Fedor
там zvol
Тоже можно
Dmitry
один, сука, большой zvol
Fedor
Может проще перенести файлы и воссоздать на новом месте все сервисы
Fedor
А одно тцп или 10 - разницы нет
Dmitry
Может проще перенести файлы и воссоздать на новом месте все сервисы
Нет, не получится. Это первоначальная реплика, ее надо передать, потом оно там будет снапшоты слать
Dmitry
А одно тцп или 10 - разницы нет
ну вот у меня в одно тцп идет 150 мбит. Запускаю иперф - оно фигачит еще 150мбит
Dmitry
т.е. выжать 300 можно и я думаю даже больше, но нужно несколько тцп соединений
Dmitry
пинаем, конечно провайдеров с обеих сторон, ибо на одном конце 2Гб/с на втором 1Гб/с но толку пока 0
Ivan
https://everycity.co.uk/alasdair/2010/07/using-mbuffer-to-speed-up-slow-zfs-send-zfs-receive/
Ivan
а почему сам mbuffer не подходит ?
Dmitry
там одно соединение только
riv
Товарищи, а подскажите, не придумали еще какую-нибудь хитрую хрень, типа mbuffer только чтобы оно работало через пачку tcp-соединений? для ускорения процесса передачи больших объемов данных
Ускорения не произойдет. Самое хорошее, это использовать связку mbuffer и netcat в сочетании с ключем -s (сохранение при обрыве) на принимаещей стороне. Не приненебрегайте компрессией liblz4-tool: zfs send zpool/super_zvol@init | pv --size 18T | lz4c -z | mbuffer -m 1G -q | nc -l -p 10555 -q 1 nc source_host 10555 -q 1 | mbuffer -m 1G | lz4c -d | zfs receive destpool/super_zvol_backup при обрыве zfs get all на destpool/super_zvol_backup и смотрите токен, не помню как параметр называется, но там значение очень длинная строка, перепутать сложно. И продолжить можно zfs send - t ${token} ...
riv
Да, nc -l -p 10555 -q 1 и nc source_host 10555 -q 1 можно поменять местами, он в обе стороны работает, может даже одновременно, как ssh
Dmitry
А зачем mbuffer + nc? почему просто mbuffer недостаточно?
riv
У меня так быстрее было.
riv
Теорититчески, можно сделать так: выделить много места и перенаправить zfs send после компрессии в split А результат split раскладывать оп папкам и отправлять через torrentsync или syncthing - я думаю, что сильно быстрее не будет
Dmitry
У меня так быстрее было.
намного? про lz4 думал, но там вроде данные плохо сжимаемые, на самом пуле пробовали с компрессией - толку мало было, в пределах 1-2% сжатие
riv
... | split --suffix-length=5 -b 10G -d - sutep_zvol.split.
Dmitry
... | split --suffix-length=5 -b 10G -d - sutep_zvol.split.
идею понял, конечно, но у нас вряд ли реализуемо. Отправляющая сторона не будет на такое заморачиваться
riv
там большой zvol
Подробнее ... pv | split --suffix-length=5 -b 10G -d - sutep_zvol.split. Видите pv там? Ему можно послать сигнал kill -SIGSTOP он остановится, а потом kill -SIGCONT