Serge
спасибо:)
Serge
чо то у меня есть ощущение, что я на SO пойду сейчас про Salt спрашивать. докатились, блин.
Alf 🙀
Alf 🙀
Serge
Alf 🙀
Ну пипец
так может ближе к вопросу?
🏳️ Phil
Ивана кто-нидь забанит уже?
Serge
Alf 🙀
Serge
а что ты спросить то хочешь?
вот вопрос про Salt
почему так не работает?
Install my thing:
cmd.run:
- name: do thing after <file> exists
- wait:
- cmd.run: ls <file>
Serge
ну т.е. вообще как надо то?
Serge
предыдущая команда делает фигню, которую можно отследить по появлению файла
Serge
я хочу вот этот стейт с cmd.run накладывать не раньше появления файла
Alf 🙀
ок
Serge
ок
ну вот чего ок? оно выполняет do thing ... до появления файла
Dmitry
кровь из глаз
Dmitry
unless чтоли ему нужен
Serge
дальше следуют маты про 4 убитых часа, кровь из глаз и заберите меня отсюда
Dmitry
а не, ему нужен creates вроде
Alf 🙀
Dmitry
можно и трусы через голову надеть, безусловно
Dmitry
там еще и onchanges пахнет
Dmitry
но через require проще :)
Dmitry
короче, кровь из глаз.
Dmitry
начиная с cmd.run прямо кровь из глаз
Serge
а что не так-то? ну надо запустить команду, не писать же модуль свой ради одного запуска одной инструкции
Serge
расширю контекст
Dmitry
расширь лучше не контекст, а объясни, почему элементарного require не хватает ?
Dmitry
может мы поймем что-то, чего не видим
Serge
запускаю докер контейнер с помощью dockerng.running
маунчу volume
надо запустить docker exec, чтобы запустить команду в этом контейнере, но не раньше чем контейнер поднимется, потому что иначе, очевидно, запускать нечего.
Alf 🙀
Serge
Serge
это типа cli к основному процессу в контейнере
Serge
в шеле на хосте всё работает;)
Alf 🙀
Dmitry
Serge
но так не пойдет. мне нужен exec в этой контейнере, чтобы по localhost я мог достучаться до процесса
Alf 🙀
но я опять же не хочу никого учить жить
Serge
Serge
Serge
и как там внутри стартиться jenkins я не очень хочу знать
Konstantin
Konstantin
Я правильно понял что изначально задача стоит запускать настроенный дженкинс с нужными плагинами?
Serge
Serge
щас будет предложено собрать контейнер с уже установленными плагинами:)
Serge
давайте решим, что я так сделаю когда-нибудь. а сейчас в рамках изучения сраного солта, я хочу запустить команду в шеле, после появления файлика:)
Dmitry
щито значит "после"
Dmitry
давай так, запускаешь, если файлик существует
Serge
ну, т.е. вот очевидно, что солт в dockerng.running воспринимает runnning не как стейт, которого надо добиться, а просто дает команду запустить контейнер и не дожидаясь успеха идет дальше
Dmitry
это делает creates
Serge
Konstantin
Коли уже написал, то отправлю :)
У дженкинса есть механизм конфигурирования через groovy-скрипты, он у нас так и настраивается. При старте устанавливаются нужные плагины и конфигурируются из этого же скрипта.
Dmitry
бля, почему как только в уравнении появляется слово "докер", так сразу на свет вываливается мутное говно, от которого немедленно хочется блевануть :)
Serge
hackru
плюсую за плагин по имени
Konstantin
hackru
а теперь заверните в плейбук
Serge
бля, почему как только в уравнении появляется слово "докер", так сразу на свет вываливается мутное говно, от которого немедленно хочется блевануть :)
а при чем тут докер. если state == running, то надо бы ждать этого, а не надеяться, что так будет.
просто как только школота, которая пишет ansible и salt, добирается до чего-то чуть сложнее установки пакета в систему, типа aws или docker, то сразу становится ясна цена этой школоте
hackru
я вообще не понимаю, почему это плагином идёт
Dmitry
hackru
точнее, почему этот плагин не идёт из коробки
Serge
hackru
сколько ты знаешь инсталляций дженкинса без гит плагина?
Serge
в общем, спасибо @kostya_keeper
Serge
http://espinosa.io/blog/2014-10-17-jenkins-plugin-management-in-groovy.html
в итоге сделал вот так
#!groovy
import jenkins.model.Jenkins
def instance = Jenkins.getInstance()
def updateCenter = instance.getUpdateCenter()
updateCenter.updateAllSites()
def deploy = updateCenter.getPlugin("git").deploy()
deploy.get()
if (updateCenter.isRestartRequiredForCompletion()) {
def lifecycle = instance.getLifecycle()
lifecycle.restart()
}
теперь пытаюсь нагуглить как ключи гита туда прогрузить;)
SO лежит:)
Serge
меня бомбит. https://docs.google.com/document/d/1LEYX7Az08Y4YG86ZMstAQM8ad9SZdsgCVXK5McIZ-fA/edit?usp=sharing
Aleksey
Max