Timur
https://github.com/ansible/molecule/pull/2321
Logan
то есть это не готово и вообще неизвестно когда будет готово. отлично.
Timur
Будет в ближайшем релизе, скорее всего
Timur
А так - верификация на ансибле уже доступна в молекуле, просто в документации пока указан как не дефолтный вариант
Timur
Зачем юзать testinfra при наличии возможности написать тест на ансибле, не очень понятно
Timur
Разве что кому-то очень нравится писать тесты на питоне
Aleksey
я пробовал писать тесты на самом ансибле. получается очень медленно и крайне не продуктивно. после нескольких сотен строк я бросил это дело.
Timur
Однако
Timur
Непонятно, зачем вам тогда вообще нужен ансибл
Timur
Пишите сразу все на питоне - будет быстрее и без всяких ограничений ансибла
Aleksey
писать простые вещи на нём возможно. но если начиается что то типа проверить что с моего сервера доступны все остальные сервера и так для каждого получается задачка с которой справляется goss за менее чем секунду а для ансибла комбинаторный взрыв
Timur
Какая задачка решается на goss или testinfra, которую не решить на ансибле?
Aleksey
да можно https://code.getnoc.com/noc/ansible_deploy/blob/microservices/system_roles/consul/tasks/tests.yml
Aleksey
в каждой роли там похожий файл есть
Aleksey
Какая задачка решается на goss или testinfra, которую не решить на ансибле?
ну зачем вы читаете через слово. я говорю что это получается на ансибле медленно
Aleksey
точно тоже на госе решается в разы быстрее
Timur
Timur
точно тоже на госе решается в разы быстрее
Пример на госе можно? Который быстрее, чем на ансибле делается
Sergey
Да вот же - https://code.getnoc.com/noc/ansible_deploy/blob/microservices/system_roles/consul/tasks/tests.yml#L4
Timur
вот с 25 строки
Вы че, прикалываетесь?
Sergey
вот с 25 строки
Дефолтный таймаут - 30 секунд, если что.
Aleksey
Пример на госе можно? Который быстрее, чем на ансибле делается
не тоже самое. не помню уже почему нет такого же https://code.getnoc.com/noc/ansible_deploy/blob/microservices/system_roles/consul/templates/consul.goss.yml.j2
Aleksey
таймаут там не проиходит. там получается надо сделать в моем случае ~50 хостов. кажый с каждым.
Aleksey
Модуль
смысла много ли ?
Sergey
смысла много ли ?
Слушай, ну сделать как попало, а потом винить инструмент - такое себе.
Sergey
Вот представь - у человека, например, табуретка колченогая получилась, а он такой - "нееее, ножовка как инструмент говно".
Sergey
ты про какую таску ? про на 4 строке ?
Да хоть про какую. Я про сам концепт.
Timur
таймаут там не проиходит. там получается надо сделать в моем случае ~50 хостов. кажый с каждым.
Я просил пример на goss или testinfra, который на ансибле делать значительно дольше и сложнее. Можно его увидеть? Потому что та портянка на goss, что вы привели, раз в 5 длиннее, чем пример на ансибле
Aleksey
я слышал что если заблокировать пользователя с какой то версии телеграма я не буду видеть его сообшения. видимо я проверю этот функционал
Aleksey
Localhost в ipv6 не ресолвится случаем
нет у меня ощущение что там надо хитрить с транспортом
Logan
Вы слишком нервный для опытного специалиста
диагноз по интернету вот вообще не красит
Aleksey
вы тратите время и не отвечаете на прямые вопросы. уходите в демагогию. похоже что вам не хочется помочь а донести странность.
Timur
с которого начался тред
Прошу прощения. Судя по всему, под докером банально напрямую не доступен localhost
Timur
Там бывают такие нюансы
Timur
Для других адресов работает?
Aleksey
Да хоть про какую. Я про сам концепт.
Серёж, чо начаинается то :) нормально же общались. задача проверить наличие процесса может быть и модулем решена и вызовом команды. дернуть через модуль в одном месте оверкил. надо было бы на постоянку я бы сделал. но увы сам прототи оказался не рабочим. и я выкючил его
Aleksey
Прошу прощения. Судя по всему, под докером банально напрямую не доступен localhost
он доступен из консоли докера видно что curl http://localhost:8481/health -I -X GET HTTP/1.1 200 OK Content-Type: text/plain Date: Tue, 22 Oct 2019 15:41:07 GMT Content-Length: 2
Aleksey
такой вот тест проходит def test_vm_storage_alive_socket(host): socket = host.socket('tcp://0.0.0.0:8482') assert socket.is_listening он он опосредованный и зависит от netstat
Aleksey
тоесть проверяет не совсем то что мне нужно. лишь то что есть нечто что слушает порт. я бы хотел дернуть именно endpoint
Aleksey
я поискал в интернетах и нашел что походие таски делают https://github.com/MrKris99/Monitoring/blob/fabbe7fe4382e942022fbf6c98bfdda1ce5adc85/ansible/roles/node_exporter/molecule/default/tests/test_default.py
Aleksey
но не могу найти где у меня не так
Aleksey
кажется разобрался. https://github.com/MrKris99/Monitoring/blob/fabbe7fe4382e942022fbf6c98bfdda1ce5adc85/ansible/roles/node_exporter/molecule/default/molecule.yml#L20
Aleksey
они выставляют эти порты и проверяют их на хосте а не в докере
Timur
такой вот тест проходит def test_vm_storage_alive_socket(host): socket = host.socket('tcp://0.0.0.0:8482') assert socket.is_listening он он опосредованный и зависит от netstat
Ну, вот видите. А обращение к localhost идет к файлу hosts, скорее всего, которое докер блокирует. Попробуйте вместо localhost поставить 127.0.0.1
Timur
^
https://t.me/pro_ansible/117437
Гайрат
Как (и чем) лучше делать restore БД? Допустим, ansible прошёлся ролью, поставил базу, пользователей создал. Дальше другой ролью, или есть другие инструменты для такого?
Logan
я использовал flyway, например
Anonymous
https://github.com/ansible/molecule/pull/2321
1) пометка draft(т.е. не влили). 2) В описании самого pr: "This does *not* mean we deprecate testinfra, we only transition to a modular architecture." Итого: мотивация этого pr сделать молекулу компактней. Мол если хочешь testinfra, то "доставишь".
Anonymous
testinfra была, есть и будет. выбор в пользу ansible для verify по умолчанию связан только с "компактностью" самой молекулы. других причин нет.
Timur
Например, нативная интеграция с инвентарем и группами
Timur
Коробочная поддержка Windows
Timur
Можно легко переключаться между разными хостами в тесте
Timur
Более простой доступ к переменным ансибла
Anonymous
все это можно сделать в testinfra. будет мердж, тогда ок. будет пометка deprecate testinfra, тогда два ок. пока ни того, ни другого.
Timur
Ну, и главное - ансибл как верификатор не требует знания дополнительных языков для написания тестов и не тянет за собой лишних зависимостей