dikey58
@dikey58
Самоучка - web-разработчик

Как настроить передачу команд на удаленный сервер в yml?

Хочу настроить автодеплой через передачу комманд гиту на удаленном сервере. Я не сис.админ, поэтому в этом не очень ориентируюсь.
Сейчас настроил, чтобы на удаленном сервере создавался файл welcome.txt на push ветки.
image: alpine:latest

deploy-job:
  stage: deploy
  before_script:
  - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' 
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - ssh-keyscan $VM_IPADDRESS >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
  script:
  - ssh $SSH_USER@$VM_IPADDRESS "hostname && echo 'Welcome!!!' > welcome.txt"
  artifacts:
    paths:
    - public
  only:
  - autoDeploy

Взял вариант .yml файла с просторов интернета. Но в YAML не понимаю.
Зачем мне нужен image: alpine:latest и можно ли обойтись без него?
Что дает?
artifacts:
    paths:
    - public

Правильно понимаю, что каждую команду придется отправлять с
- ssh $SSH_USER@$VM_IPADDRESS "command"
  • Вопрос задан
  • 368 просмотров
Пригласить эксперта
Ответы на вопрос 1
ophil
@ophil
https://ophilon.github.io
Правильно понимаю, что каждую команду придется отправлять с
- ssh $SSH_USER@$VM_IPADDRESS "command"


Неправильно. Отправить можно скрипт целиком. Например, мне надо было настроить в пайплайне сборку и запуск docker compose, фрагмент пайплайна:

script:
     - ssh ${DEV_USER}@${DEV_HOST} "export
       'BRANCH=${CI_COMMIT_REF_NAME}'
       'VERSION=${VERSION}'
        setsid /bin/bash -s " < docker_compose.sh


Сам скрипт docker_compose.sh сначала отладил на сервере, потом добавил в пайплайн.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы