Я пытаюсь развернуть все содержимое текущего репозитория git (включая ветку и коммит) и развернуть его на удаленном сервере, используя rsyn c.
Теперь у меня есть 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 эксперт, но параметры, которые " необходимо помнить следующее:
- S SH порт: 2222
- S SH ключ (насколько я знаю) успешно импортирован
Кто-нибудь, кто знает, как я могу передать весь контент (исключая некоторые файлы) и «pu sh», который на мой удаленный сервер, как «непрерывная доставка»?