Size: a a a

2021 May 22

Г

Григорий in jenkins_ru
Не
Про собес не про тебя шутка была)
источник

DS

Daniel Shulgin in jenkins_ru
работает, огромное спасибо)
источник
2021 May 23

S

Slava in jenkins_ru
Ребята, а скажите пожалуйста, как обычно делают пуш с раннера на другом сервере?

У меня на данный момент есть 2 сервера. 1 на котором стоит дженкинс (назовем его раннер), 2 собственно на котором висит сайт.

Вот, я хочу брать код раннером и развертывать на серве. Вопрос - это делается по ssh? Т.е. к примеру в джобе пишу:
ssh jenkins@dev git clone porject
ssh jenkins@dev ./build.sh

и т.п. (т.е. грубо говоря подключился кинул команду. отключился и т.д)
или так не делается?

Спасибо.
источник

DB

Dmitry Burmistrov in jenkins_ru
можно и так
можно через sshCommand
можно ансиблом
можно кроном на стороне сайта
можно ещё кучу вариантов придумать
источник

A

Andrey in jenkins_ru
Делай так как понятнее тебе самому. SSH вполне себе ок
источник

S

Slava in jenkins_ru
Я понял вас, спасибо
Тут вопрос скорее насколько это благоразумно (я про подключение, передачу 1 команды и отключение), просто плагин, который позволяет все команды сразу послать у меня почему то не встал.
источник

DB

Dmitry Burmistrov in jenkins_ru
можно и без плагина все команды разом отправить
источник

S

Slava in jenkins_ru
В таком плане или вы про файл или еще варианты есть?
$ ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'


Но думаю все-равно не очень правильно так делать
источник

A

Andrey in jenkins_ru
Можно слейва на сервер поставить и гонять без SSH. Но это с пушки по воробьям если вам только код забрать нужно
источник

DB

Dmitry Burmistrov in jenkins_ru
вариантов много. например, так:
ssh my.site 'sudo bash -s' < deploy.sh
источник

DB

Dmitry Burmistrov in jenkins_ru
а deploy.sh хранить вместе с кодом. там ему и место
источник

S

Slava in jenkins_ru
Стоп, стоп, стоп.
Я думал, что слейв предназначен для того, чтобы при выполнении джоба распределить нагрузку с главного дженкинс сервера на остальные.
Т.е. можно главным дженкинсом управлять дженкинс слейвы??
источник

S

Slava in jenkins_ru
Именно от них выполнять команды????
источник

DB

Dmitry Burmistrov in jenkins_ru
технически ничего не мешает так сделать. но я бы не рекомендовал
источник

A

Andrey in jenkins_ru
Вы просто джобу деплоя назначаете на раннер который на сервере куда хотите деплоить. Но это прям реально с пушки по воробьям.
источник

S

Slava in jenkins_ru
А, ну я понял.
Ну данным проектом я больше занимаюсь для того, чтобы изучать дженкинс, так что можно и так попробовать, но я Вас понял @dburm, учту, что так, в целом, лучше не делать)
Наверное, тогда остановлюсь на том, что в джобе пропишу ssh и команды.
Да, как вы сказали deploy.sh есть смысл хранить в репозитории, но, к сожалению, это пока не очень удачный вариант)
В итоге, если не сложно. Можете подсказать команду, которая будет работать без плагинов, чтобы сто раз не подключаться, и можно было бы писать в джобе команду построчно, типо
sss jenkins@dev 'command_1 \
command_2 \
command_3\
источник

DB

Dmitry Burmistrov in jenkins_ru
sh '''ssh -T  my.site -- << EOL
echo Start script
....
EOL'''
источник

S

Slava in jenkins_ru
Спасибо)
источник

S

Slava in jenkins_ru
Блин, что-то не хочет
Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/dev_push
[dev_push] $ /bin/sh -xe /tmp/jenkins12480897609206036599.sh
+ sh 'ssh -T  jenkins@10.110.0.3 -- << EOL
ls
EOL'
sh: ssh -T  jenkins@10.110.0.3 -- << EOL
ls
EOL: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
источник

DB

Dmitry Burmistrov in jenkins_ru
фристайл что-ли?
источник