2016-12-29 15 views
1

私はGitlab CIでLFTPを使用して一連のファイルを展開しています。私はセットアップしたサーバー(SFTPを使用しているステージングサーバー)でうまく動作しています。しかし、私のクライアントのサーバーでは、接続できないようです。サーバーはFTPを使用してセットアップされているので、Filezilla経由で接続するにはプレーン/非セキュアモードを使用する必要があります。接続して正常に動作します(将来SFTPを使用するためのアドバイスがあります)。不明なコマンド - LFTP

私は、私は次のエラーを取得する.gitlab-ci.ymlファイルを介してLFTPを使用して同じことをしようとすると:

Unknown command `ftp.example.com'. 
mirror: Not connected 
ERROR: Build failed: exit code 1 

私はこれが原因で、プレーンFTPを使用するのですが、私が試したことを疑いますftp://をホストの前に置き、setを使用していくつかの他のコマンドを実行しますが、運がありません。

ここに私の.gitlab-ci.ymlファイル(の編集されたバージョン)があります:

stages: 
    - build-staging 
    - build-production 

variables: 
    EXCLUDE: "--exclude '.htaccess' --exclude-glob .git* --exclude '.git/' --exclude 'wp-config.php'" 
    SOURCE_DIR: "./" 

    # STAGING 
    DEST_DIR: "/" 
    HOST_STAGING: "sftp://123.456.789" 
    USERNAME_STAGING: "user" 
    PASSWORD_STAGING: "password" 

    # PRODUCTION 
    DEST_DIR_PROD: "/" 
    HOST_PROD: "ftp.example.com" 
    USERNAME_PROD: "user" 
    PASSWORD_PROD: "password" 

job1: 
    stage: build-staging 
    environment: staging 
    script: 
    - apt-get update -qq && apt-get install -y -qq lftp 
    - echo "Deploying" 
    - lftp -c "set ftp:ssl-allow no; set sftp:auto-confirm yes; open -u $USERNAME_STAGING,$PASSWORD_STAGING $HOST_STAGING; mirror -Rv --ignore-time --parallel=10 $EXCLUDE $SOURCE_DIR $DEST_DIR_STAGING" 
    only: 
    - staging 
    tags: 
    - 2gb 

job2: 
    stage: build-production 
    environment: production 
    when: manual 
    script: 
    - apt-get update -qq && apt-get install -y -qq lftp 
    - echo "Deploying" 
    - lftp -c "set ftp:ssl-allow no; open -u $USERNAME_PROD,$PASSWORD_PROD $HOST_PROD; mirror -Rv --ignore-time --parallel=10 $EXCLUDE $SOURCE_DIR $DEST_DIR_PROD" 
    only: 
    - production 
    tags: 
    - 2gb 

は、すべてのヘルプは素晴らしいことだ、ありがとう!

答えて

2

これはパスワードの特殊文字によるものです。パスワードは&で終わり、lftpは別のコマンドを期待していました。これを修正するため、引用符を削除して、|&をエスケープしました。

PASSWORD_PROD: password\& 
関連する問題