В начале была секта. И в секте была анархия. И каждый делал проект и каждый настраивал сам всю инфаструктуру. И каждый деплоил в пятницу сам. И было так. Но однажды темный властелин Саурон создал
Один проект чтобы править всеми
Один, чтоб все объединить
Один проект, чтоб деплоить в понедельник
Один, чтоб легче было жить
Перевод на человеческий:
ebpm-deploy - программа, представляющая собой средство для безопасного, быстрого и удобного развертывания проектов на сервере/серверах. Она позволяет одной командой сформировать пакет из исходного кода, бинарника или репозитория и затем запушить его на сервер и установить его.
Документация
Чтобы начать работать с ebpm-deploy, нужно настроить ebpmd-server на своем сервере. Если он уже настроен, и у вас есть токен доступа, то вы можете двигаться уже дальше.
I. Настройка ebpm-deploy
Установите локальный пароль для зашифрованного хранения токенов:
ebpm-deploy setup-password
Добавте токен в ebpm-deploy следущей командой:
ebpm-deploy add-token <TOKEN>
II. Инициализация проекта
В папке с проектом введите эту команду:
ebpm-deploy init
Она инициализирует текущую директорию как пакет, добавив туда манифест сборки пакета. Если получится, то система автоматически определит тип проекта, язык и тд и постарается сконфигурировать файл самостоятельно. Во время инициализации вам будет предложенно, на какой сервер загружать проект.
III. Деплой на сервер
Чтобы задеплоить на сервер проект, достаточно просто вызвать эту команду:
ebpm-deploy push
После чего вам предложат ввести пароль и проект автоматически будет запущен на сервере.
IV. Манифест проекта
В идеале вам не должно понадобиться редактировать манифест и ebpm-deploy должен сам все настроить. Но тем не менее. Манифест представляет собой yaml файл:
version: 1.0.0
name: custom-hello-world
- general:
- pack specify /target/release/hello
- exclude .git
- linux:
- cargo build --release
- windows:
- cargo build --release --target=x86_64-pc-linux-gnu
run:
- $RES/hello
Команды в пространстве general выполняются внезависимости от ос, на которой собирается пакет. Вот список команд:
- pack
- all - пакует все файлы в пакет
- specify [пакеты] - пакует определенные файлы в пакет
- exclude - позволяет исключить из пакета файлы
- sh - вызывает shell команду
В секциях windows и linux вызываются нативные команды в зависимости от используемой ос при сборке пакета. Секции сборки могут повторятся и будут выполнятся согласно своему порядку. Например:
- general:
- - pack all
- windows:
- dir
- echo hello
- linux:
- ls
- echo hello
- general:
- exclude .git
- linux:
- echo world
- windows:
- echo world
В секции run
находится команда запуска, которая вызывается при запуске проекта на сервере. В ней находятся обычные bash команды как и в секции linux