Перейти к содержимому. | Перейти к навигации

Персональные инструменты

Вы здесь: Главная / Спиричев Вадим / СофтСервис / Установка gitlab в контейнере docker. / Настройка удалееных команд (ssh...) из jobs.

Настройка удалееных команд (ssh...) из jobs.

Это команды выполняемые на stage и deploy серверах для выполнения операций pull из registry

 

1. Генерируем ключи на машине с gitlab-runner

ssh-keygen

...

2. Отправляем public-key на удаленный сервер (STAGE_SERVER):

ssh-copy-id -i ~/.ssh/id_rsa.pub deploy@<remote_host>

 

3. В gitLab в проекте создаем переменную (Settings->CI\CD->Variables)

STAGE_PRIVATE_KEY скопировав текст их .ssh/id_rsa (закр.ключ) и

убрав флаг ProtectVariable (!)

4. Добавляем секцию before_scripts в .gitlab-ci.yml

before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y
- mkdir -p ~/.ssh
- echo "$STAGE_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- ssh-keyscan -t rsa $STAGE_SERVER > ~/.ssh/known_hosts
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- chmod 644 ~/.ssh/known_hosts  

 

 5. На STAGE-сервере необходимо обеспечит резолвинг имени registry для обращения

к нему. Например, добвить запись с ip в /etc/hosts

 

6. Положить сертификат с registry в /etc/docker/certs.d/r5000:5000

7. Теперь можно работать из jobs с "удаленными командами"

ssh deploy@STAGE_SERVER "docker pull registry:5000/slogan:latest"