
Для управления учетными данными, авторизацией например с GitHub или для деплоя приложения на свервер необходимо хранить массу паролей, ключей. В Jenkins для этого реализован удобный плагин Credentials Plugin
Задание:
Установить плагин Credentials, сгенерировать SSH ключи для GitHub. Прописать связки ключей в Jenkins и проверить соединение.
Использовал:
Jenikis | Ubuntu | github |
Порядок действий:
– Установка плагина на Jenkins
– Генерация SSH ключей на сервере (PRIVATE, PUBLIC)
– Прописать ключи в приложении
– Пробовать установить соединение
Установка плагина в Jenkins способом из GUI.
После установки необходимо перезагрузить Jenkins: your_server:8080/restart
В меню появится утсановленный плагин Credentials.
Теперь необходимо сгенерировать SSH ключи. Заходим на сервер, в моем случае Ubuntu.
- ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/mobaxterm/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/mobaxterm/.ssh/id_rsa. Your public key has been saved in /home/mobaxterm/.ssh/id_rsa.pub. The key fingerprint is: SHA256:zn6qZ+ShWjqsmU/cE BS0BFVP The key's randomart image is: +---[RSA 2048]----+ | | |. . | |.. . | |. . o . | |o ....o S E | |.* .+= +o. . | |*oo+o *+o.. | |=B+B.=..+ . | |*+B.*o.+oo | +----[SHA256]-----+ |
Ключи сгенерированы, 2 штуки, с расширение .pub PUBLIC ключ и соответственно без расширения ключ PRIVATE.
Setup Jenkins for private GitHub repository.
Тут есть один момент, на GitHub существует два вида репозиториев: public и private, мы будем устанавливать ключи для private репозитория.
Необходимо скопировать PUBLIC (это тот что с расширением .pub) ключ из файла с сервера и прописать его на GitHub.
- cat id_rsa.pub |
Для этого переходим: Settings -> SSH GPG keys -> New SSH key
Вставляем скопированный PUBLIC ключ и заполняем Title – к примеру: Jenkins
Часть с GitHub пройдена, теперь пропишем PRIVATE ключ на Jenkins сервере.
Для этого переходим: В плагин Credentials в Jenkins: Global -> Add Credentials
В данном примере мы рассматриваем SSH подключение с приватным ключем. Заполняем поля.
Kind: Тип Credentials. SSH Username with private key: By using ssh username, keys or passphrase.
Scope: Global/System. Выбираем Global.
ID: Для удобства задам Id: github-ssh-key
Description: Описание
Username: Имя пользователя на GitHub
Private Key: В это поле через Add добавляем сгененированный ранее PRIVATE ключ.
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAyPe69uvj97lJEGzif+TteX+U35RJK8KLZ0GTQ2x/FXbQkXp3 r+gLhoLMg+bnhmXRewJeawevQpXh9rWONa+3UVgi2XkIXKeP6jDo8z6hjIkYvRwe 5COmN1ra8w4NvuZ0NofkG5bHvoXRgzcT81gAR7pdxY3awb04A8dQ3cRK0Q/efoja s6Fis2k47BE2R1Y84TMPrewPM8QQGbZ0cbqALofZbjIBj6bTbOVE -----END RSA PRIVATE KEY----- |
Теперь можно добавлять сохоаненный Credentials для проектов. Через Credentials -> Add
После использования Credential, Jenkins успешно подсоединился к проекту на GitHub о чем говорит пропавшая красная надпись.