使用SSH密钥将BitBucket部署到远程服务器

时间:2019-04-03 06:25:22

标签: ssh yaml bitbucket-pipelines

我正在尝试编写YAML管道脚本,以使用ssh密钥将已从我的位桶存储库更改的文件部署到我的远程服务器。我目前到位的文档是从bitbucket本身复制的,并且有错误:

pipelines:
  default:
  - step:
      name: Deploy to test
      deployment: test
      script:
      - pipe: atlassian/sftp-deploy:0.3.1
      - variables:
         USER: $USER
         SERVER: $SERVER
         REMOTE_PATH: $REMOTE_PATH
         LOCAL_PATH: $LOCAL_PATH

我遇到以下错误

  

配置错误
  您的bitbucket-pipelines.yml在[管道>默认> 0>步骤>脚本> 1]处出错。准确地说:命令字符串缺失或为空。此列表中的每个项目都应该是单个命令字符串或定义管道调用的映射。

我的ssh公钥和私钥以及指纹和主机都在bitbucket中设置。变量也已设置。
如何设置我的YAML部署脚本以通过ssh连接到远程服务器并传输文件?

2 个答案:

答案 0 :(得分:0)

尝试将variables部分更新为:

      - variables:
         - USER: $USER
         - SERVER: $SERVER
         - REMOTE_PATH: $REMOTE_PATH
         - LOCAL_PATH: $LOCAL_PATH

以下是有关如何设置variables的示例:https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_variablesvariables

答案 1 :(得分:0)

必须使用您的指令-步骤
我有这样的bitbucket-pipelines.yml(使用rsync而不是ssh):

# This is a sample build configuration for PHP.
# Check our guides at https://confluence.atlassian.com/x/e8YWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: php:7.2.1-fpm

pipelines:
  default:
    - step:
        script:
          - apt-get update 
          - apt-get install zip -y
          - apt-get install unzip -y
          - apt-get install libgmp3-dev -y
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer install
          - cp .env.example .env
          #- vendor/bin/phpunit 
          - pipe: atlassian/rsync-deploy:0.2.0
            variables:
                USER: $DEPLOY_USER
                SERVER: $DEPLOY_SERVER
                REMOTE_PATH: $DEPLOY_PATH
                LOCAL_PATH: '.'

我建议在存储库中使用其在线编辑器来编辑 bitbucket-pipelines.yml ,它会检查所有正式的yml结构,并且您不能提交无效的文件。
即使您在其他yaml编辑器上检查文件,它也可能看起来不错,但是根据bitbucket规范,这不是必需的。他们的在线编辑做得很好。

此外,我建议在atlasian community上访问他们的社区,因为它非常活跃,有时他们的工作人员会提供答案。

但是,我为正确运行测试而需要大量依赖。 (实际的bitbucket-pipelines.yml越来越大)。
也许为此工作准备了一些精心准备的Docker映像。