Как использовать ключ SSH для развертывания угловой производственной сборки на внешнем сервере с использованием конвейера bitbucket? - PullRequest
0 голосов
/ 18 марта 2019

Мы пытаемся использовать Bitbucket Pipelines для развертывания базового углового приложения на виртуальной машине в Google Cloud, но не уверены, как использовать ключ SSH для подключения к серверу для копирования файлов сборки.Ищем примеры, но не можем найти.

Мы смогли сделать то же самое вручную, используя команды Putty / SSH для копирования файлов dist .

У нас есть открытый /закрытый ключ от виртуальной машины Google Cloud и добавил их в Bitbucket Pipelines> SSH Keys

enter image description here

Наш сценарий YML выглядит следующим образом:

image: node:6.9.4

pipelines:
  default:
    - step:
       caches:
         - node
       script: # Modify the commands below to build your repository.
         - npm install
         - npm install -g @angular/cli@1.6.4
         - ng build --prod
         - cd dist/
         - ssh -i ???

Ответы [ 3 ]

1 голос
/ 18 марта 2019

Как сказал @Chris, , что статья является правильной отправной точкой.Шаги:

  1. Добавить ключ SSH в BitBucket , либо через пользовательский интерфейс, либо с помощью ssh-keygen

  2. Обновление известных хостов через пользовательский интерфейс.

  3. Добавление открытого ключа к удаленному хосту через

    cat ~/.ssh/my_ssh_key.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

или через

`ssh-copy-id -i my_ssh_key username@remote_host`

Затем скопируйте файлы с помощью этой команды (которая должна быть в вашем скрипте):

scp username@remote_host:/path/to/file /path/to/destination

0 голосов
/ 19 марта 2019

Мы смогли решить эту проблему, как показано ниже:

  1. В разделе Bitbucket> Хранилище исходного кода проекта> Настройки> Конвейеры> Ключи SSH

    • Добавление личных и общедоступныхключи и
    • Добавить известные хосты (это будет IP-адрес сервера, на который вы хотите отправить код. В нашем случае это виртуальная машина в Google Cloud)
  2. Обновите ваш скрипт, как показано ниже:

    image: node:8
    pipelines: 
    default: 
      - step: 
         caches: 
           - node 
         script: # Modify the commands below to build your repository. 
           #- echo "$(ls -la)" 
           - npm install 
           - npm install -g @angular/cli 
           - ng build --prod 
           - echo "$(ls -la dist/)" 
           - scp -r dist/ user@1.2.3.4:/home/suren/temp 
    
0 голосов
/ 18 марта 2019

Уверен, этот урок может пригодиться

...