繁体   English   中英

使用 rsync 部署 Gitlab 管道

[英]Gitlab pipeline deploy using rsync

我正在尝试部署当前 git 存储库的所有内容(包括分支和提交)并使用 rsync 将其部署到远程服务器。

现在我有一个 gitlab-ci 文件,其中包含以下内容:

image: ubuntu:18.04

.init_development_ssh: &init_development_ssh |
    eval $(ssh-agent -s)
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    ssh-add <(echo "$STAGING_PRIVATE_KEY")

.tag: &tag
  tags:
    - pixel-rp

stages:
  - lint
  - deploy

linting code:
  # Use the LUA image
  image: mhndev/docker-lua
  <<: *tag
  stage: lint
  before_script:
    - luarocks install luacheck
  script: luacheck fx-server-data
  allow_failure: true

deploy to testing:
  <<: *tag
  stage: deploy
  before_script:
    - apt -y update && apt -y upgrade && apt install -y openssh-client rsync sshpass
    - *init_development_ssh
  script:
    - sshpass -p "$SSH_PASS" -e "ssh -p 2222" rsync -rav --exclude='.git/' --exclude='.gitlab-ci.yml' --delete-excluded /builds/pixel-rp/pixel-server/ user@IP:/home/user/FXServer/server-data/

我得到的错误是

> Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
    -f filename   Take password to use from file
    -d number     Use number as file descriptor for getting password
    -p password   Provide password as argument (security unwise)
    -e            Password is passed as env-var "SSHPASS"
    With no parameters - password will be taken from stdin
    -P prompt     Which string should sshpass search for to detect a password prompt
    -v            Be verbose about what you're doing
    -h            Show help (this screen)
    -V            Print version information
 At most one of -f, -d, -p or -e should be used
 Conflicting password source

现在我不是 linux 专家,但要记住的“必需”参数如下:

  • SSH 端口:2222
  • SSH 密钥(据我所知)已成功导入

任何知道我如何获取所有内容(不包括某些文件)并将其“推送”到我的远程服务器作为“连续交付”的人?

根据sshpass联机帮助页,您可以使用选项-p在命令行中指定密码,并在使用选项-e时告诉 sshpass 使用来自环境变量SSHPASS的密码。

由于您只能指定一次密码但同时使用了两个选项,因此 sshpass 不知道从哪里获取密码(从命令行或环境变量),因此失败。

选项-f (从文件中读取)和-d (从文件描述符中读取)也不能与任何其他选项结合使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM