Setup Credentials in Jenkins with GitHub

Для управления учетными данными, авторизацией например с 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 о чем говорит пропавшая красная надпись.

Releated Post