Денис - Ты супер ! Умеешь обьеснить то, что было за семью печатями. А ведь всё просто, особенно когда толково обьесняют. Было б здорово побольше таких преподователей ! Дженкнс очень важен, и по доке разобраться, очень долгои сложно. Имея базу потом уже в разы легче. Продолжай уроки по дженкинсу пожалуйста, это очень интересно.
В моем случае ключ SSH с дефолтными параметрами не сработал, писало ошибку авторизации (при этом из других мест авторизация была корректной). Использовал ssh-keygen -t rsa -b 4096 -m PEM (issues.jenkins-ci.org/browse/JENKINS-57495?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel)
У кого пермишн денаед вот решение: To allow user ec2-user (Amazon AWS) write access to the public web directory (/var/www/html), enter this command via Putty or Terminal, as the root user sudo: chown -R ec2-user /var/www/html Make sure permissions on that entire folder were correct: chmod -R 755 /var/www/html
Спасибо за урок!) После AWS CodePipeline и полнофункциональных с овердофига файликов/зависимостей проектов - просто в кайф посмотреть на руку мастера и не забывать о Jenkins) Ох уж эти "CI/CD" процессы...
ключик нужно генерить так: ssh-keygen -t ecdsa -m PEM ибо looks like the issue was related to this topic: Ubuntu 22.04 SSH the RSA key isn’t working since upgrading from 20.04.
Было бы очень интересно узнать как компилировать через дженкинс, например код (maven, gradle) и отправлять в какой-нибудь настоящий артифактори (artifactory, nexus), как правильно это делать и как лучше. И вообще зачем артифактори и что с ним делают.
про артифактори не знаю, но компилировать на дженкинс точно так же как если бы компилировали на линукс , то есть писат просто скрипт или же вызвать какой то скрипт созданный вами заранее .. и тд
Спасибо Денис, да, крутяк! Объяснил показал. Сидел пол урока втыкал для чего это нужно, увидел что прикольно получается отправить на тест страничку. НО, самое прикольно что пообещали в следующем уроке брать конкретные темы с Github, которые выкладывают программисты и на их примере все это продемонстрировать. И что, даже можно будет увидеть тестирование, и отправку, так же само на тест? А вдруг тесты не пройдут? Все как в этом уроке, но только по взрослому будет в следующем? Я жду продолжения, я просто хочу увидать это в работе на реальном проекте, наверное не я один такой.
Спасибо за урок, очень полезно. Добавлю вещи на которых соткнулся. У пользователя от которого SSH key должны быть права на перезыпуск сервисов без пароля. Также должны у нгео быть права на эту папку.
Как это сделать? В видео этого нет, и файл действительно не отправляется и джоб падает с ошибкой ERROR: Exception when publishing, exception message [Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [имя_сервера]. Message [socket is not established]]] Update: решил проблему с пом. команды (с другой ветки) sudo chmod o+w /var/www/html
29:35 очень важный момент и так драматически скомкан! :) поправьте если ошибусь, подключение по SSH ключу к машине 34.218.96.217(TEST server) и ее пользователю ec2-user работает на том основании, что на машине *34.218.96.217* в домашней директории *ec2-user* , а именно в файле *~/.ssh/authorized_keys* указан публичный ключ, *парный* тому приватному, который вставляется на видео. Аналогично и с PROD server. Но поскольку Jenkins создает подключение от одноименного пользователя *jenkins* , то если у того в ~/.ssh уже лежит этот самый приватный ключ (~/.ssh/id_rsa), то указывать его не обязательно?
@@Denis-Orlov у меня сервер EC2 на AWS и там в authorized_keys уже прописан ключ я так понимаю чтобы я сам мог законектится, так мне в этот файл забрасывать второй ключ для jenkins ?
Ребята всем у кого не получаеться настроить Publish over SSH (jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [test-server]. Message [Auth fail]]), что я только не делал, перечитал все форумы, тут все коменты перечитал. Потратил я не знаю сколько времени. Решил установкой (на сервак к которому мы конектимся) предидущей версии Ubuntu - 20 , на 22 не работало, никак.
Согласен полностью, была аналогичная проблема мучался с ней часа 4. Потом один человек написал в комментариях что на ubuntu 20.04 сработало, решил попробовать и действительно, всё сработало. Вот что значит сила комьюнити)
Хех, я думал, что Jenkins -- это что-то сложное и только для опытных программистов. А оказывается, ничего сложного нет, даже я понимаю. Спасибо за видеоурок, всё понятно!
Денис, в очередной раз спасибо, может кому полезно будет, мучался часа 4 если не больше, дело в том что на вагранте разворачивал инфраструктуру, намучался с ключами, не сразу всё работает, но по факту просто, создавайте лучше отдельного пользователя, типа www и для вагранта обязательно паблик кей должен называться не id_rsa.pub как из коробки а authorized_keys и да, если хотите чтоб разные ключи были всё просто, кликните advanced и там можно указать другой ключ, вопрос в другом, почему мы приватный ключ кидаем вот так в дженкинс, это для меня странно)))
Всем привет. Столкнулся с проблемой publish over ssh не конектится к AWS EC2 Ubuntu22.04 . Если использовать Ubuntu20 все работает. Может кто знает как решить. Заранее спасибо.
У меня был завтык с подключением на сервер по ssh к GCP. Проблему удалось решить таким образом: генерим ключи с помощью ssh-keygen, называем допустим google_cloud_1, далее открываем vi google_cloud_1.pub , копируем все и идем в Compute engine -> Metadata -> SSH keys -> Edit. Там Добавляем наш новый ключ. Прайвет ки в данном слутчае я смотрел с помощью vi google_cloud_1 . Ну и возможно еще надо будеть поменять права на /var/www/html/index.html.
Приветствую Вас Сэр! Спасибо тебе огромное за столь ценное видео. Спустя три года видео не потеряло актуальность, поднял все на Rocky Linux 8, все работает как часики.
Подсказка для тех у кого выходит ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]] А именно не перезапускается служба. Дело в том что при вводе этой команды у вас скорее всего запросит пароль, который дженкинс за вас вводить не будет. Как вариант я добавил через visudo следующую строчку: admsec ALL= NOPASSWD: /bin/systemctl restart apache2 тут я своему пользователю "admsec" дал право с sudo и без ввода пароля ввести команду "sudo systemctl restart apache2" (её и впишите вместо sudo service apache2 restart в exec command в дженкинсе)
Спасибо тебе оромнейшее за твою работу, ты самый лучший автор в русскоязычной сфере по тематике devops! Столкнулся с такой проблеймой publish over SSH действительно больше нет, какие есть альтернтаивные плагины?
Денис выдает такую ошибку: Как я понимаю я залогинился на сервак, но в чем же проблема ? SSH: Connecting with configuration [My Web Server TEST] ... SSH: Creating session: username [ubuntu], hostname [3.122.234.0], port [22] SSH: Connecting session ... SSH: Connected SSH: Opening SFTP channel ... SSH: SFTP channel open SSH: Connecting SFTP channel ... SSH: Connected SSH: cd [/var/www/html] SSH: OK SSH: cd [/var/www/html] SSH: OK SSH: put [index.html] SSH: Disconnecting configuration [My Web Server TEST] ... ERROR: Exception when publishing, exception message [Permission denied] Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE Finished: UNSTABLE
Автору спасибо большое за очень годный курс! Ребят, кто-то может подсказать какой ключ вставлять нужно в Key? Вставляю для ТЕСТ сервера не работает для ПРОД, и наоборот. Если вставляю для сервера Jenkins падает на обоих. Может где-то можно почитать подробно об этом
Отлично объясняешь ! Спасибо за всё ! Может кто объяснит, почему в /var/www/html не копирует файл , создал другую директорию и указал путь всё работает, права доступа тоже менял , не помогает?
C кнопкой разобрался. Но сейчас AWS дает pem ключ в зашифрованном формате. Как его вставлять в поле Publish over SSH? Получал по нему открытый ключ командой ssh-keygen -y -f ...............pem, вставлял, не работает. Вроде разобрался. Нужно просто использовать команду cat
Почему то падает при команде sudo service apache2 restart - выдает: ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]] Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE При этом на самом сервере успешно выполняется не запрашивая пароля. именно под тем же пользователем, под которым и работает jenkins. Т.е. index.html успешно закидывается, но вот рестарт сервиса не происходит. Пока не нашел в чем может быть проблема
Спасибо за материал, а не планируете сделать урок по созданию CI процесса с использованием, например, gitlab sonar jenkins в связке? С созданием pull request check'ов или подобного?
не знаю сколько нужно пядей во лбу чтобы добавить с помощью этого плагина какой-то сервер, вроде все сделал настроил доступ можно гулять с помощью ssh с одного компа на другой но именно jenkins вообще не понимает что такое возможно, пишет ключ неправильный, если указывать путь то файла такого нету, короче та еще штучка, не знаю как вообще этим можно пользоваться нормально, с aws то я как понял проще, но вот на виртуалках такой опыт плохо сказывается на нервах, потратил часа 2 наверное и ничего так и не добился
с этим разобрался подключил, но теперь еще одна проблема, нету доступа, он просто не может ничего делать на удаленном сервере, капец, aws так упрощает жизнь, взял добавил все само автоматом настроился, не нужно часами выяснять почему нету прав или почему они не меняются ужас
Что-то я не понял, подскажите по ключу: в настройки надо вставлять ключ от EC2 инстанса (key pairs)? В амазоне можно только для пользователя создавать access key... Я наверное что-то пропустил, подскажите.
@@ADV-IT Вы супер-мощный! 💪 Я всё сделал по вашей иснтрукции, но что-то пошло не так, а именно проблема была в пермишензах на амазоновском сервере по загрузке файлов. Мне пришлось подключаться к серверу через терминал и чмодом менять пермишинз на html директорию, после чего всё полезло как надо ) Спасибо вам ещё раз! p.s. я написал вам письмо, но поскольку вопрос уже решился, то можно его проигнорить.
Все так хорошо заходило, пока не началась лажа с деплой, я уже часа 4-5 пытаюсь настроить SSH , коменты читал , не помогает сервки у меня на AWS. 1. Сгенерировал ключи на jenkins серваке. 2. Отредактировал ключи на jenkins серваке, вставил в них ключи с AWS. (делал и наоборот) 3. Сделал на дериктоию /var/www/html , chmod 777 , проверил, руками файлы туда могу перемещать от юзера. 3. Вписываю все данные в Publish over SSH получаю Failed to connect or change directory
У кого еще не получилось разобраться с ключами (ошибка: "jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection"), вот инструкция: На jenkins сервере (где заходим в веб) генерируем ключ rsa командой ssh-keygen -t rsa -m PEM . Копируем содержимое .ssh/id_rsa.pub и вставляем на web-server-test И web-server-dev В ПАПКУ .ssh/authorized_keys , далее копируем содержимое .ssh/id_rsa и вставляем как в видео. jenkins-server: $ ssh-keygen -t rsa -m PEM $ cat .ssh/id_rsa.pub web-server-test: $ cat >> .ssh/authorized_keys web-server-dev: $ cat >> .ssh/authorized_keys jenkins-server: $ cat .ssh/id_rsa
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [5]] Build step 'Send build artifacts over SSH' changed build result to UNSTABLE Finished: UNSTABLE При deploy выдает эту ошибку, что может быть, и что делает команда sudo service httpd restart?
ADV-IT, подскажи какие права доступа должны быть у папки сайта? Кто должен быть владельцем этой папки и файла Index.html и в каких группах должен быть пользователь от которых Jenkins shell выполняет команды? У меня при выполнении Ithem на консоль выводится ошибка ERROR: Exception when publishing, exception message [Permission denied] при том что права у файла следующие -rw-rw-r-- 1 root root 175 May 7 12:19 index.html при этом пользователь от которого работает Jenkin - dima состоит в следующих группах id -Gn dima adm cdrom sudo dip www-data plugdev lxd .
Почему-то в консоли у меня не работает подставление, или как это называется. Там где должно быть result=1 у меня пишет + result=grep "HELLO" index.html | wc -l И дальше тест постоянно Failed. Jenkins 2.426.1. Может какая настройка должна быть? На 2-х хостах пробоавл, везде так же. Спасибо
Кароч, ChatGPT помог, нужно использовать обратные кавычки (`) или конструкцию $( ) для выполнения команды и присваивания результата этой команды переменной result=`grep "HELLO" index.html | wc -l ` . Обратная кавычка это там где ё. Ну или result=$(grep "HELLO" index.html | wc -l)
@@ADV-IT Strange.. I use AWS EC2 as well, (Amazon AMI) "publish over ssh" step failed in Jenkins with permission denied, and status was yellow "unstable" On VM I found out that by-default ec2-user doesn't have permission to create/cp files into /var/www/html/ directory
@@narekhambardzumyan9665 You should connect to your machine (ec2-user) through ssh and enter this command: sudo chmod o+w /var/www/html/index.html. Then run job again. Everything should work.
@@кириллпотер-ю4т Thank you very much for supporting. I had solved it before writing the command, just thought others may encounter with this problem too. And I wondered how adv-it managed it ..
У меня все нормально деплоится, только статус у джобы - UNSTABLE. С вот таким логом в консоли: SSH: EXEC: completed after 201 ms SSH: Disconnecting configuration [TestServer] ... ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [5]] Build step 'Send build artifacts over SSH' changed build result to UNSTABLE Finished: UNSTABLE Сам дженкинс у меня в докере, а виртуалка удаленная. Знает кто как исправить?
добрый день. на 33:20 застрял выходить такая ошибка в конце + [ 1 = 1 ] + echo Test passed Test passed + echo -------Test Finished--------- -------Test Finished--------- SSH: Connecting from host [ip-172-31-0-115] SSH: Connecting with configuration [MyWebServer-Test] ... SSH: Disconnecting configuration [MyWebServer-Test] ... ERROR: Exception when publishing, exception message [Permission denied] Build step 'Send build artifacts over SSH' changed build result to UNSTABLE Finished: UNSTABLE все настройки в точности сделал как у вас проверил соединение с серваками. Может встречали такую ошибку?
@@Vitaliy-ct2wv я уже не помню только одно помню что в настройках Дженкинса когда вводишь инфу главное там не оставить пробел после каждой введённой строки.
проблема с правами на /var/www/html на TEST и PROD серверах. возможно и решение Srg _1177 работает, я предоставил права пользователю ec2-user sudo chown -R ec2-user html/
А что такое fi в конце кода теста? Как быть с тем, что в result не возвращается "1", а возвращается вся строка "grep "Hello" index.html | wc -l"? Пишу result='grep "Hello" index.html | wc -l'
Да, я тоже не понял этого! А также "у меня есть веб-сервер"... что? откуда? как его создать? Словом, внимательно изучаю материал по видео (не только конкретно этого, а вообще всего канала - очень полезный во многих аспектах), но вот на моментах "у меня уже подготовлено заранее" стопорюсь и не могу продвигаться дальше. Остальной материал теряет практический смысл (ну для меня, как новичка в этой теме). Зато в теории - да, все вроде понятно.
Спасибо за ролики. А можете подсказать альтернативу плагину publish-over-ssh, так как этот плагин на данный момент не распространяется. На странице плагина красуется надпись "Plugin distribution has been suspended"
А как перезапустить какой-нибудь процесс через Jenkins? Например у меня вышел новый билд приложения, я хочу его скомпилировать, текущий процесс убить(через kill) и запустить новый. Почему то Jenkins не видит переменную с id процесса, хотя при запуске в bash все работает.
Подскажите пожалуйста, как создать cleanup job с командой "docker system prune --volumes -f". Как настроить сборщик, чтобы он выполнялся на машине jenkins? А то выводит ошибку docker: not found
а останеться ли программки\утилиты которые нужны были для компиляции и тестов кода? или можно ли настроить женкинс чтобы он запускал жобы в докер контейнерах
с ключом мутновато конечно. Получается в дженкинс надо вставлять ключ private от самого дженкинса (пользователя), а его public key добавить в ~/.ssh/authorized_keys нужному пользователю (под которым будем делать манипуляции) на серверах тест и прод...???
Денис - Ты супер ! Умеешь обьеснить то, что было за семью печатями. А ведь всё просто, особенно когда толково обьесняют.
Было б здорово побольше таких преподователей ! Дженкнс очень важен, и по доке разобраться, очень долгои сложно. Имея базу потом уже в разы легче. Продолжай уроки по дженкинсу пожалуйста, это очень интересно.
Здраствуйте Денис. Ваши видео супер, хорошо обьесняете. Спасибо Вам большое за все , что Вы делаете!
Хахахха
16:10: *шёпотом*: "бляяяха".
а так отличное видео, отличный плейлист, спасибо большое.
Спасибо за видео. У меня есть вопрос если я поднимаю сервер на виртуальной машине где я могу взять ключ ssh?
Сам сгенерировать, у меня есть видео про SSH как генерировать и использовать
@@ADV-ITспасибо
Just TODA . ( - :
Мало людей которые по-настоящему люблят свое дело :) Денис, спасибо огромное за доступное объяснение!) Чак Норис супер помощник)
В моем случае ключ SSH с дефолтными параметрами не сработал, писало ошибку авторизации (при этом из других мест авторизация была корректной). Использовал ssh-keygen -t rsa -b 4096 -m PEM (issues.jenkins-ci.org/browse/JENKINS-57495?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel)
такая же история, спасибо за ссылку! сгенерировала этой командой, и с новыми ключами получилось подключиться.
это сработало
Херак херак и в продакш) Спасибо за видео. Огромный респект!
У кого пермишн денаед вот решение:
To allow user ec2-user (Amazon AWS) write access to the public web directory (/var/www/html),
enter this command via Putty or Terminal, as the root user sudo:
chown -R ec2-user /var/www/html
Make sure permissions on that entire folder were correct:
chmod -R 755 /var/www/html
Спасибо Большое, очень помог!
Ssh ключи видимо самое сложное в этом уроке
Спасибо за урок!)
После AWS CodePipeline и полнофункциональных с овердофига файликов/зависимостей проектов - просто в кайф посмотреть на руку мастера и не забывать о Jenkins)
Ох уж эти "CI/CD" процессы...
ключик нужно генерить так:
ssh-keygen -t ecdsa -m PEM
ибо looks like the issue was related to this topic: Ubuntu 22.04 SSH the RSA key isn’t working since upgrading from 20.04.
Было бы очень интересно узнать как компилировать через дженкинс, например код (maven, gradle) и отправлять в какой-нибудь настоящий артифактори (artifactory, nexus), как правильно это делать и как лучше. И вообще зачем артифактори и что с ним делают.
про артифактори не знаю, но компилировать на дженкинс точно так же как если бы компилировали на линукс , то есть писат просто скрипт или же вызвать какой то скрипт созданный вами заранее .. и тд
Установка Чак Норисса думаю будет одним из самых существенных навыков при собеседовании)) Уроки Супер!)))
Одна из лучших подач, я считаю)) спасибо. Продолжай пожалуйста.
Денис, спасибо огромное)
Спасибо Денис, да, крутяк! Объяснил показал. Сидел пол урока втыкал для чего это нужно, увидел что прикольно получается отправить на тест страничку. НО, самое прикольно что пообещали в следующем уроке брать конкретные темы с Github, которые выкладывают программисты и на их примере все это продемонстрировать. И что, даже можно будет увидеть тестирование, и отправку, так же само на тест? А вдруг тесты не пройдут? Все как в этом уроке, но только по взрослому будет в следующем? Я жду продолжения, я просто хочу увидать это в работе на реальном проекте, наверное не я один такой.
У кого пишет httpd не найден в post-build ставьте service apache2 restart
Как всегда бомбически! С английским нет проблем, но как же приятно это всё слушать на русском, когда рассказывают простям язком.
Чак Норрис одобряет хороший туториал 💪
Воу! От души))
Это превосходно.!!!
По душе прям. Озвучка крутаяя!
Твои видео можно смотреть вместо фильмов. 🖐️
Спасибо за урок, очень полезно. Добавлю вещи на которых соткнулся. У пользователя от которого SSH key должны быть права на перезыпуск сервисов без пароля. Также должны у нгео быть права на эту папку.
Как это сделать? В видео этого нет, и файл действительно не отправляется и джоб падает с ошибкой ERROR: Exception when publishing, exception message [Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [имя_сервера]. Message [socket is not established]]]
Update: решил проблему с пом. команды (с другой ветки) sudo chmod o+w /var/www/html
@@andrii_popov Спасибо, мучился всю ночь
29:35 очень важный момент и так драматически скомкан! :)
поправьте если ошибусь, подключение по SSH ключу к машине 34.218.96.217(TEST server) и ее пользователю ec2-user работает на том основании, что
на машине *34.218.96.217* в домашней директории *ec2-user* , а именно в файле *~/.ssh/authorized_keys* указан публичный ключ, *парный* тому приватному, который вставляется на видео. Аналогично и с PROD server.
Но поскольку Jenkins создает подключение от одноименного пользователя *jenkins* , то если у того в ~/.ssh уже лежит этот самый приватный ключ (~/.ssh/id_rsa), то указывать его не обязательно?
да очень важный момент, при первом соединении по ssh, ты в консоли вводишь yes, а как это сделать Jenkins(у) ?
в первый раз надо руками подтвердить доверие системе, хорошо рассказано здесь th-cam.com/video/vY8DASStkOk/w-d-xo.html
@@Denis-Orlov спасибо!
@@Denis-Orlov у меня сервер EC2 на AWS и там в authorized_keys уже прописан ключ я так понимаю чтобы я сам мог законектится, так мне в этот файл забрасывать второй ключ для jenkins ?
да, либо наоборот - предоставить jenkins соотв-ий приватный ключ, если есть к нему доступ
ща вроде получше вседе с дженкинсом !
ну всё, ради плагина с Чаком буду ходатайствовать о переходе на дженкис с гитлаба!
6:04 😂😂😂😂😂 Спасибо за годный контент!
Нет такого плагина уже в 2022 для ssh. Чем теперь лучше пользоваться? пробовал скачать первый ssh но он не видит виртуалки
Ребята всем у кого не получаеться настроить Publish over SSH (jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [test-server]. Message [Auth fail]]), что я только не делал, перечитал все форумы, тут все коменты перечитал. Потратил я не знаю сколько времени. Решил установкой (на сервак к которому мы конектимся) предидущей версии Ubuntu - 20 , на 22 не работало, никак.
Согласен полностью, была аналогичная проблема мучался с ней часа 4. Потом один человек написал в комментариях что на ubuntu 20.04 сработало, решил попробовать и действительно, всё сработало. Вот что значит сила комьюнити)
Спасибо, спасибо, спасибо
Хех, я думал, что Jenkins -- это что-то сложное и только для опытных программистов. А оказывается, ничего сложного нет, даже я понимаю.
Спасибо за видеоурок, всё понятно!
Там только Jenkins Pipeline сложные, и только из-за синтаксиса языка Groovy
Денис, в очередной раз спасибо, может кому полезно будет, мучался часа 4 если не больше, дело в том что на вагранте разворачивал инфраструктуру, намучался с ключами, не сразу всё работает, но по факту просто, создавайте лучше отдельного пользователя, типа www и для вагранта обязательно паблик кей должен называться не id_rsa.pub как из коробки а authorized_keys и да, если хотите чтоб разные ключи были всё просто, кликните advanced и там можно указать другой ключ, вопрос в другом, почему мы приватный ключ кидаем вот так в дженкинс, это для меня странно)))
а вы обычно публичным ключом подключаетесь к клиент-серверу?)
Сделайте плиз видео deploy to kubernetes кластер с 1 мастером и пару нод
Всем привет.
Столкнулся с проблемой publish over ssh не конектится к AWS EC2 Ubuntu22.04 . Если использовать Ubuntu20 все работает. Может кто знает как решить. Заранее спасибо.
Это шикарно!!! Большое спасибо! Вы талантливый учитель!
Обожаю! Спасибо. Паралельно повторял все на своем дженкинсе: но спотыкнулся на private ssh rsa key...не все понял здесь. А так супер!
Test failed! Отлично! - непривычно такое слышать =)) Спасибо за уроки! =)
парни не любят, когда им делают blue balls, поэтому они быстро меняют цвет на зеленый
Возможно я плохо слушал , может это было в ролике, если нужно сделать deploy проекта со всеми файлами и каталогами , можно использовать две **
У меня был завтык с подключением на сервер по ssh к GCP. Проблему удалось решить таким образом: генерим ключи с помощью ssh-keygen, называем допустим google_cloud_1, далее открываем vi google_cloud_1.pub , копируем все и идем в Compute engine -> Metadata -> SSH keys -> Edit. Там Добавляем наш новый ключ. Прайвет ки в данном слутчае я смотрел с помощью vi google_cloud_1 . Ну и возможно еще надо будеть поменять права на /var/www/html/index.html.
Приветствую Вас Сэр!
Спасибо тебе огромное за столь ценное видео. Спустя три года видео не потеряло актуальность, поднял все на Rocky Linux 8, все работает как часики.
Подсказка для тех у кого выходит ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]]
А именно не перезапускается служба. Дело в том что при вводе этой команды у вас скорее всего запросит пароль, который дженкинс за вас вводить не будет.
Как вариант я добавил через visudo следующую строчку:
admsec ALL= NOPASSWD: /bin/systemctl restart apache2
тут я своему пользователю "admsec" дал право с sudo и без ввода пароля ввести команду "sudo systemctl restart apache2" (её и впишите вместо sudo service apache2 restart в exec command в дженкинсе)
было бы здорово посмотреть на примеры джобов с учетом команд для серверной винды..
Спасибо! Разобрался во всем. Не без проблем, конечно, но все удалось повторить. Но материал у тебя очень ценный!
Спасибо)
Очень жду следующий урок , хочу уже у себя попробовать и внедрить!
Плагин с Чаком Норрисом для того, чтоб не ставить плагин с костылём
Спасибо тебе оромнейшее за твою работу, ты самый лучший автор в русскоязычной сфере по тематике devops! Столкнулся с такой проблеймой publish over SSH действительно больше нет, какие есть альтернтаивные плагины?
plugins.jenkins.io/ssh-steps/
Или Ansible запускать из Jenkins
@@ADV-IT спасибо за ответ, вы очень помогли!
Добрый день у меня один вопрос , SSH кей надо генерировать в Jenkins сервере или на сервере куда надо добавить файлы , и как это сделается
Генерируй где угодно, просто потом где какой ключ используется.
На Jenkins будет PrivateKey, а на серверах куда копируются файлы нужен PublicKey
@@ADV-IT Спасибо , у меня ещё одна проблем , такой ошибка видеть prnt.sc/12amkbs
@@wildlifewithowl Неправильно используешь ключи
@ADV-IT А можете помочь , как надо использовать 😒, мой сервер установлен на vmware workstation может поэтому не могу подключиться
Учи основы Linux сначала
Денис, привет. Не получается закончить урок. Publish Over SSH сейчас не доступен. Если использовать ssh pipline steps, как он заполняется?
Не так просто как хотелось бы www.jenkins.io/doc/pipeline/steps/ssh-steps/
@@ADV-IT Жесть) И получается, что нужно node под него запускать.
Наверное, пришло время прослушать ansible
огромное спасибо за цикл уроков
Денис выдает такую ошибку: Как я понимаю я залогинился на сервак, но в чем же проблема ?
SSH: Connecting with configuration [My Web Server TEST] ...
SSH: Creating session: username [ubuntu], hostname [3.122.234.0], port [22]
SSH: Connecting session ...
SSH: Connected
SSH: Opening SFTP channel ...
SSH: SFTP channel open
SSH: Connecting SFTP channel ...
SSH: Connected
SSH: cd [/var/www/html]
SSH: OK
SSH: cd [/var/www/html]
SSH: OK
SSH: put [index.html]
SSH: Disconnecting configuration [My Web Server TEST] ...
ERROR: Exception when publishing, exception message [Permission denied]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
Finished: UNSTABLE
[Permission denied]
Видать у твоего узера ubuntu нету доступа копировать файлы в /var/www/html
Ну или ему нужен пароль для sudo
Все делал на AWS, ранее такого не замечал. Завтра еще попробую
*sudo apt-get update* в самом начале надо тоже
Да да, спасибо :) С этим все заработало
у меня было то же самое, но на Linux. дал o+w на index.html - сработало.
Автору спасибо большое за очень годный курс!
Ребят, кто-то может подсказать какой ключ вставлять нужно в Key?
Вставляю для ТЕСТ сервера не работает для ПРОД, и наоборот. Если вставляю для сервера Jenkins падает на обоих. Может где-то можно почитать подробно об этом
Private Key в Jenkins
@@ADV-IT private key для jenkins сервера? Если да, то тест все равно не проходит..
@@bogdaneyziy private key от сервера куда деплоишь
Все?) Я девопс теперь?)
Отлично объясняешь ! Спасибо за всё ! Может кто объяснит, почему в /var/www/html не копирует файл , создал другую директорию и указал путь всё работает, права доступа тоже менял , не помогает?
Посмотрел следующие видео и почитал коменты пониже, понял , что всё решается ansible
C кнопкой разобрался. Но сейчас AWS дает pem ключ в зашифрованном формате. Как его вставлять в поле Publish over SSH? Получал по нему открытый ключ командой ssh-keygen -y -f ...............pem, вставлял, не работает. Вроде разобрался. Нужно просто использовать команду cat
Поржал от : AWS дает pem ключ в зашифрованном формате
А кто даёт pem ключ в другом формате? Это тогда не pem ключ
Почему то падает при команде sudo service apache2 restart - выдает:
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
При этом на самом сервере успешно выполняется не запрашивая пароля. именно под тем же пользователем, под которым и работает jenkins. Т.е. index.html успешно закидывается, но вот рестарт сервиса не происходит. Пока не нашел в чем может быть проблема
Подача топчик! Очень понятно)
Kruto obiasniaes. Ogromnoe spasibo, ty krut )
Денис, Огромное спасибо!!!!! Ты очень очень многим помог.
java.lang.NullPointerException: null
как исправить эту ошибку ? помогите плз
Погуглить
За Чакка отдельный респект)
Спасибо! Советую)
Спасибо за материал, а не планируете сделать урок по созданию CI процесса с использованием, например, gitlab sonar jenkins в связке? С созданием pull request check'ов или подобного?
GitHub+Jenkins сделаю
Да пришлось с ключиками поиграть, молодца, не все показал :)
Еще я не показал как linux установить
Thank you so much.
не знаю сколько нужно пядей во лбу чтобы добавить с помощью этого плагина какой-то сервер, вроде все сделал настроил доступ можно гулять с помощью ssh с одного компа на другой но именно jenkins вообще не понимает что такое возможно, пишет ключ неправильный, если указывать путь то файла такого нету, короче та еще штучка, не знаю как вообще этим можно пользоваться нормально, с aws то я как понял проще, но вот на виртуалках такой опыт плохо сказывается на нервах, потратил часа 2 наверное и ничего так и не добился
с этим разобрался подключил, но теперь еще одна проблема, нету доступа, он просто не может ничего делать на удаленном сервере, капец, aws так упрощает жизнь, взял добавил все само автоматом настроился, не нужно часами выяснять почему нету прав или почему они не меняются ужас
А можно поставить на одну виртуалку jenkins и чтоб он на эту же самую виртуалку деплоил ?
Можно, но не нужно
Что-то я не понял, подскажите по ключу: в настройки надо вставлять ключ от EC2 инстанса (key pairs)? В амазоне можно только для пользователя создавать access key... Я наверное что-то пропустил, подскажите.
Тут идёт рез о SSH Key для серверов, а не ACCESS KEY для Usera
@@ADV-IT Вы супер-мощный! 💪 Я всё сделал по вашей иснтрукции, но что-то пошло не так, а именно проблема была в пермишензах на амазоновском сервере по загрузке файлов. Мне пришлось подключаться к серверу через терминал и чмодом менять пермишинз на html директорию, после чего всё полезло как надо ) Спасибо вам ещё раз! p.s. я написал вам письмо, но поскольку вопрос уже решился, то можно его проигнорить.
Все так хорошо заходило, пока не началась лажа с деплой, я уже часа 4-5 пытаюсь настроить SSH , коменты читал , не помогает
сервки у меня на AWS.
1. Сгенерировал ключи на jenkins серваке.
2. Отредактировал ключи на jenkins серваке, вставил в них ключи с AWS. (делал и наоборот)
3. Сделал на дериктоию /var/www/html , chmod 777 , проверил, руками файлы туда могу перемещать от юзера.
3. Вписываю все данные в Publish over SSH получаю Failed to connect or change directory
Thanks.
Какие еще тулзы CD/CD используешь в работе ?
GitHub Actions
У кого еще не получилось разобраться с ключами (ошибка: "jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection"), вот инструкция:
На jenkins сервере (где заходим в веб) генерируем ключ rsa командой ssh-keygen -t rsa -m PEM . Копируем содержимое .ssh/id_rsa.pub и вставляем на web-server-test И web-server-dev В ПАПКУ .ssh/authorized_keys , далее копируем содержимое .ssh/id_rsa и вставляем как в видео.
jenkins-server:
$ ssh-keygen -t rsa -m PEM
$ cat .ssh/id_rsa.pub
web-server-test:
$ cat >> .ssh/authorized_keys
web-server-dev:
$ cat >> .ssh/authorized_keys
jenkins-server:
$ cat .ssh/id_rsa
Ты колдун!!! )) У меня не получилось по твоему методу.!!))) можешь в телегу написать? я уже 2й день страдаю .
Большая благодарность за уроки!!!
Денис, будет описание Best practice для Jenkins and CI/CD ?
Помотрим, я сам далеко не всё знаю в jenkins, всё что знаю расскажу
Спасибо 👍
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [5]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
Finished: UNSTABLE
При deploy выдает эту ошибку, что может быть, и что делает команда sudo service httpd restart?
При создании job'a не работает кнопка OK. В чем может быть проблема? Может кто-то сталкивался?Jenkins установлен на ubuntu 18.04
А pipline это выполнения какого-то количества джобов в stage ?
ADV-IT, подскажи какие права доступа должны быть у папки сайта? Кто должен быть владельцем этой папки и файла Index.html и в каких группах должен быть пользователь от которых Jenkins shell выполняет команды? У меня при выполнении Ithem на консоль выводится ошибка ERROR: Exception when publishing, exception message [Permission denied] при том что права у файла следующие -rw-rw-r-- 1 root root 175 May 7 12:19 index.html при этом пользователь от которого работает Jenkin - dima состоит в следующих группах id -Gn
dima adm cdrom sudo dip www-data plugdev lxd
.
спс супер
Зачем вам этот Jenkins? Чак Норрис и так и так пишет код который оптимизирует сам себя
Почему-то в консоли у меня не работает подставление, или как это называется. Там где должно быть result=1 у меня пишет + result=grep "HELLO" index.html | wc -l
И дальше тест постоянно Failed. Jenkins 2.426.1. Может какая настройка должна быть? На 2-х хостах пробоавл, везде так же. Спасибо
Кароч, ChatGPT помог, нужно использовать обратные кавычки (`) или конструкцию $( ) для выполнения команды и присваивания результата этой команды переменной result=`grep "HELLO" index.html | wc -l ` . Обратная кавычка это там где ё. Ну или result=$(grep "HELLO" index.html | wc -l)
спасибо!@@olegsh4950
16:12 :)))
One question:
Have you configured permissions for ec2-user to be able to scp files in /var/www/html? By default it gives "Permission Denied"
No. All by default
@@ADV-IT Strange.. I use AWS EC2 as well, (Amazon AMI)
"publish over ssh" step failed in Jenkins with permission denied, and status was yellow "unstable"
On VM I found out that by-default ec2-user doesn't have permission to create/cp files into /var/www/html/ directory
@@narekhambardzumyan9665 You should connect to your machine (ec2-user) through ssh and enter this command: sudo chmod o+w /var/www/html/index.html. Then run job again. Everything should work.
@@кириллпотер-ю4т Thank you very much for supporting. I had solved it before writing the command, just thought others may encounter with this problem too. And I wondered how adv-it managed it ..
@@кириллпотер-ю4т спасибо, товарищ
лучше бы рассказали, что такое билды, джобы и т.д.
Просто посмотри это видео еще раз
У меня все нормально деплоится, только статус у джобы - UNSTABLE. С вот таким логом в консоли:
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [TestServer] ...
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [5]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
Finished: UNSTABLE
Сам дженкинс у меня в докере, а виртуалка удаленная. Знает кто как исправить?
Супер!
А как вы добавить второй ssh ? понятно что с клонировали !
добрый день. на 33:20 застрял выходить такая ошибка в конце
+ [ 1 = 1 ]
+ echo Test passed
Test passed
+ echo -------Test Finished---------
-------Test Finished---------
SSH: Connecting from host [ip-172-31-0-115]
SSH: Connecting with configuration [MyWebServer-Test] ...
SSH: Disconnecting configuration [MyWebServer-Test] ...
ERROR: Exception when publishing, exception message [Permission denied]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
Finished: UNSTABLE
все настройки в точности сделал как у вас проверил соединение с серваками. Может встречали такую ошибку?
+1
такая же ошибка, как вы ее исправили?
@@Vitaliy-ct2wv я уже не помню только одно помню что в настройках Дженкинса когда вводишь инфу главное там не оставить пробел после каждой введённой строки.
@@jamzey7568пасиб за инфу
проблема с правами на /var/www/html на TEST и PROD серверах.
возможно и решение Srg _1177 работает,
я предоставил права пользователю ec2-user
sudo chown -R ec2-user html/
А что такое fi в конце кода теста? Как быть с тем, что в result не возвращается "1", а возвращается вся строка "grep "Hello" index.html | wc -l"?
Пишу result='grep "Hello" index.html | wc -l'
fi это конец if в linux скриптах
Автору большое спасибо за видео. Только возник один вопрос, от куда ты берешь SSH Key (время по видео 29:50) для подключения к серверам?
Я заранее его создал для своего юзера
Да, я тоже не понял этого!
А также "у меня есть веб-сервер"... что? откуда? как его создать?
Словом, внимательно изучаю материал по видео (не только конкретно этого, а вообще всего канала - очень полезный во многих аспектах), но вот на моментах "у меня уже подготовлено заранее" стопорюсь и не могу продвигаться дальше. Остальной материал теряет практический смысл (ну для меня, как новичка в этой теме).
Зато в теории - да, все вроде понятно.
@@ADV-IT Можно ссылку на видео как создается веб-сервер, чтобы восполнить этот материал и вернуться к этому курсу.
Спасибо!
@@Д-рВедьмак Есть видео как это сделать на Linux в AWS th-cam.com/video/LjKGaco0QeQ/w-d-xo.html
Везде так будет работать
Слова zello нету
А зело есть
блин, а вот как copy over ssh у меня не получилось настроить... ключики эти. что где сделать запутался. и jenkins и клиент на centos.
ssh-keygen -t rsa -m PEM -f for_jenkins_key_new
cat for_jenkins_key_new.pub > authorized_keys
cat for_jenkins_key_new
...
profit
Спасибо за ролики.
А можете подсказать альтернативу плагину publish-over-ssh, так как этот плагин на данный момент не распространяется.
На странице плагина красуется надпись "Plugin distribution has been suspended"
www.jenkins.io/doc/pipeline/steps/ssh-steps/
А как перезапустить какой-нибудь процесс через Jenkins? Например у меня вышел новый билд приложения, я хочу его скомпилировать, текущий процесс убить(через kill) и запустить новый. Почему то Jenkins не видит переменную с id процесса, хотя при запуске в bash все работает.
Запустить Jenkins Job еще раз.
Когда ты настраеваеш Jenkins в поле Publish over SSH ты вводиш ssh ключ. Где ты его взял - как его можно сгенерировать?
+ тоже не понял от какой машины вставлять это ключ.
Подскажите пожалуйста, как создать cleanup job с командой "docker system prune --volumes -f". Как настроить сборщик, чтобы он выполнялся на машине jenkins? А то выводит ошибку docker: not found
Установить docker на комп где стоит Jenkins
Денис, привет. А почему ты забросил уроки по пайтон? Он не пользуется спросом у работодателей?
пользуется конечно. да все основы уже рассказал вроде
а останеться ли программки\утилиты которые нужны были для компиляции и тестов кода?
или можно ли настроить женкинс чтобы он запускал жобы в докер контейнерах
1.Да
2.Да
👍🏻👍🏻Хороший урок
а что если у второго сервера тот что PROD другой SSH key ???
Ну так добавь второй SSH Key также как и первый и спользуй его
с ключом мутновато конечно. Получается в дженкинс надо вставлять ключ private от самого дженкинса (пользователя), а его public key добавить в ~/.ssh/authorized_keys нужному пользователю (под которым будем делать манипуляции) на серверах тест и прод...???
Наследующий урок выйдет про ssh ключи, как логиниться используя ssh ключи.
Но вообще ты прав 100%
@@ADV-IT спасибо) круто! Уроки очень крутые!