Syncd — инструмент автоматического развертывания
syncd – это инструмент развертывания с открытым исходным кодом. Он прост, эффективен и удобен в использовании, что может повысить эффективность работы команды.
адрес проектаGithub.com/dream ans / SO ...
содержание
характеристика
- Разработка языка Go, простая компиляция и эффективная работа
- Доступ к веб-интерфейсу, дружелюбное общение
- Гибкая конфигурация разрешений роли
- Поддержка репозиториев Git.
- Ветки и теги онлайн
- Поддержка хуков развертывания
- Идеальный онлайн-процесс
- Механизм уведомления по почте
принцип
Git
Служба Syncd извлекает код указанного тега (ветки) из репозитория через git-ssh (или пароль)
Построить
Запустите настроенный скрипт сборки и скомпилируйте его в пакет, готовый к работе в сети.
На этом этапе вы можете запускать модульные тесты (например,go test
php phpunit
, загрузить зависимости (например,go: glide install
php: composer install
), скомпилируйте пакет (например,js: npm build
go: go build xx.go
java: javac xx.java
c: cc xx.c
) Ждать.
распределение
пройти черезscp
Команда распространяет пакет программного обеспечения во временный каталог производственного сервера в каждой компьютерной комнате, удаленно выполняет команду конфигурации перед развертыванием, распаковывает пакет программного обеспечения в целевой каталог после выполнения, а затем выполняет командуpost-deploy
Заказ
Распространение и онлайн-процесс выполняются последовательно, и если какой-либо шаг не будет выполнен, весь онлайн-заказ будет прекращен, а статус будет установлен на онлайн-сбой, вам нужно нажатьснова онлайнПовторить попытку.
В будущем он будет поддерживать параллельное выполнение одного и того же кластерного сервера и функцию последовательной публикации между кластерами.
SSH доверие
Установите доверительные отношения между производственным сервером и сервером развертывания через ssh-ключ.
Пожалуйста, обратитесь к методу конфигурации秘钥配置
глава
Установить
Готов к работе
- Go
Go1.10 или выше рекомендуется для компиляции исходного кода
- Nginx
Веб-сервис зависит от Nginx
- MySQL
Система полагается на Mysql для хранения постоянных данных, рекомендуемая версияMysql 5.7
- Linux + Bash
система будет использоватьgit
, ssh
, scp
и другие команды, поэтому в настоящее время ее рекомендуется использовать только в Linux, и вам необходимо заранее установить или обновить последнюю версию этих команд.
- ключевая конфигурация
Поскольку сервер развертывания (сервер, на котором находится служба Syncd) и рабочий сервер (целевая машина для развертывания кода) обмениваются данными по протоколу ssh, открытый ключ машины для развертывания (обычно здесь:~/.ssh/id_rsa.pub
) добавляется в список доверия производственной машины (обычно здесь~/.ssh/authorized_keys
)
быть пригодным для использованияssh-copy-id
Добавьте команду или скопируйте вручную. Не забудьте проверить подключение после копирования.ssh {生产机用户名}@{生产机地址}
Наконец, рекомендуется добавить следующую конфигурацию в конфигурацию ssh сервера развертывания./etc/ssh/ssh_config
, закройте приглашение на отображение дайджеста открытого ключа, чтобы предотвратить сбой запуска фонового сценария.
Host *
StrictHostKeyChecking no
Обратите внимание: права доступа к каталогу ssh должны быть установлены в соответствии с этим, иначе возникнет ситуация, когда вы не сможете войти в систему без пароля.
~/.ssh 0700
~/.ssh/authorized_keys 0600
Установить
- выполните следующую команду
curl https://raw.githubusercontent.com/dreamans/syncd/master/install.sh |bash
Если генерируется по текущему путиsyncd-deploy
илиsyncd-deploy-xxx
каталог указывает, что установка прошла успешно
Сгенерировано
syncd-deploy
Каталог можно скопировать или переместить куда угодно, но не пытайтесь скопировать этот каталог для запуска на другом сервере, это приведет к непредсказуемым результатам.
- зависимость от базы данных
тебе надоgithub.com/dreamans/syncd/syncd.sql
Структура таблицы данных и импорт данных в базу данных MySQL
- Изменить файл конфигурации
Исправлятьsyncd-deploy/etc/syncd.ini
Соответствующая информация о конфигурации в
- запустить службу
cd syncd-deploy
➜ syncd-deploy ./bin/syncd -c ./etc/syncd.ini
__
_____ __ __ ____ _____ ____/ /
/ ___/ / / / / / __ \ / ___/ / __ /
(__ ) / /_/ / / / / / / /__ / /_/ /
/____/ \__, / /_/ /_/ \___/ \__,_/
/____/
Service: syncd
Version: 1.0.0
Config Loaded: ./etc/syncd.ini
Log: stdout
Database: 127.0.0.1
Mail Enable: 0
HTTP Service: :8868
Start Running...
- Добавить конфигурацию Nginx
upstream syncdServer {
server 127.0.0.1:8868 weight=1;
}
server {
listen 80;
server_name deploy.syncd.cc; # 此处替换成你的真实域名
access_log logs/deploy.syncd.cc.log;
location / {
try_files $uri $uri/ /index.html;
root /path/syncd-deploy/public; # 此处/path请替换成真实路径
index index.html index.htm;
}
location ^~ /api/ {
proxy_pass http://syncdServer;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Origin $host:$server_port;
proxy_set_header Referer $host:$server_port;
}
}
Перезапустите службу nginx.
Изменить хосты
Если доменное имя не разрешено, вы можете изменить хосты для временного разрешения.
sudo vim /etc/hosts
127.0.0.1 deploy.syncd.cc;
Установка завершена
Откройте браузер и посетитеhttp://deploy.syncd.cc
Начальный счет:
用户名: syncd
邮箱: syncd@syncd.cc
密码: syncd.cc
!!!Пожалуйста, измените свой пароль как можно скорее после входа в систему.
использовать
Блок-схема использования системы
Используйте скриншоты
помощь
Если у вас есть какие-либо проблемы, пожалуйста, спроситеissue
Или добавьте WeChat в группу обсуждения
Разрешить
Этот проект использует лицензию MIT с открытым исходным кодом, и полные инструкции по лицензии помещены в файл LICENSE.