如何使用SSH密钥通过Bitbucket管道将角度生产构建部署到外部服务器?

时间:2019-03-18 15:55:32

标签: angular bitbucket-pipelines

我们正在尝试使用Bitbucket Pipelines将基本的角度应用程序部署到Google Cloud上的VM,但不确定如何使用SSH密钥连接到服务器以复制构建文件。寻找示例,但找不到。

我们能够使用Putty / SSH命令手动复制 dist 文件。

我们拥有Google Cloud VM的公钥/私钥,并将其添加到Bitbucket Pipelines> SSH密钥

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 个答案:

答案 0 :(得分:1)

正如@Chris所说,that article是正确的起点。 步骤是:

  1. 通过UI或通过运行在BitBucket中添加SSH密钥 ssh-keygen

  2. 通过用户界面
  3. 更新已知主机

  4. 通过

    将公钥添加到远程主机

    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`
  1. 然后使用此命令(应该在您的脚本中)复制文件:

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

答案 1 :(得分:0)

非常确定this tutorial可能派上用场

答案 2 :(得分:0)

我们能够解决以下问题:

  1. 在Bitbucket下>项目源存储库>设置>管道> SSH密钥

    • 添加私钥和公钥,并且
    • 添加已知主机(这是您要将代码推送到的服务器的IP地址。在我们的示例中,这是Google Cloud上的VM)
  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