gitlab runner ssh выполняет только одну команду

Я пытаюсь настроить непрерывное развертывание с помощью gitlab. Я использую оболочку runner. Я хочу, чтобы этот бегун развернул мой код в другом экземпляре.

Я правильно добавил ключи pub и pvt на удаленном сервере и gitlab соответственно. ssh работает нормально. Меня беспокоит то, что в файле ".gitlab-ci.yml" только те команды выполняются на удаленном экземпляре, где ssh user @ domain добавлен в начало. Я предполагал, что как только я войду на удаленный сервер, все мои последовательные команды должны выполняться там, а не в среде бегуна, но этого не происходит.

.gitlab-ci.yml файл

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - echo "$PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - ssh-keyscan ip-address >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
  - ssh  user@ip-address          #REFERENCE 1
  - mkdir testing-auto-success    #REFERENCE 2
  - ssh user@ip-address ls        #REFERENCE 3

Теперь,

ССЫЛКА 1 - вход в удаленный экземпляр выполнен успешно. Также связь не закрывается.

$ ssh  user@ip
Pseudo-terminal will not be allocated because stdin is not a terminal.
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1036-gcp x86_64)


  System information as of Thu Aug 29 16:13:12 IST 2019

  System load:  0.08               Processes:           114
  Usage of /:   3.5% of 193.66GB   Users logged in:     0
  Memory usage: 31%                IP address for ens4: xx.xxx.xx.x
  Swap usage:   0%

 * Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
   directly, see -containerd or try it now with

     snap install microk8s --classic

 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

80 packages can be updated.
0 updates are security updates.


*** System restart required ***

ССЫЛКА 2 - это не делает каталог в удаленном экземпляре.

ССЫЛКА 3 - в нем перечислены все файлы удаленного экземпляра.

Теперь пишу все последовательные команды, добавленные только опцией ssh, или я ошибаюсь?


person Shirish Bajpai    schedule 29.08.2019    source источник
comment
Почему вы не создаете скрипт и не выполняете его через ssh на удаленном хосте? См. stackoverflow.com/questions/305035/   -  person sweting    schedule 29.08.2019


Ответы (1)


Как было предложено в комментариях,

Этот ответ

person Shirish Bajpai    schedule 29.08.2019