gopub (основан на фреймворках vue.js Element и golang Beego) — это корпоративная система публикации для операционной среды, основанная на сценариях управления. Конфигурация простая, функционал полный, интерфейс удобный, готов к использованию сразу после установки! Поддерживает управление версиями через Git и Jenkins, различные публикации веб-кода, а также однокнопочное выполнение операций публикации и откатывания кода для Golang, NodeJS, PHP, Python и Java.
Наша команда DevOps ранее использовала систему Walle Web для публикаций, за что хотели бы поблагодарить команду Walle за предоставленный отличный открытый проект. Внешний вид Walle хорош, поэтому внешний вид нашего открытого проекта gopub полностью скопирован с Walle, используя фреймворк vue.js Element.
Проект gopub работает уже более двух лет, выполнив более 37 000 стабильных развертываний в тестовых и рабочих окружениях. Он способен развернуть один проект на 100+ серверах за 110 секунд, а также передать 2 ГБ+ статических ресурсов CDN за 30 секунд.
Демо адрес (Docker развертывание, логин admin, пароль 123456)
Публичное тестовое окружение: http://140.143.85.18:8192/## Используемые фреймворки
# Запуск контейнера с использованием образа из Docker Hub, подключение к внешней базе данных
sudo docker run --name gopub -e MYSQL_HOST=x.x.x.x -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d lc13579443/gopub:latest
```# Запуск контейнера с использованием образа из Docker Hub, подключение к базе данных внутри Docker
sudo docker run --name gopub-mysql -h gopub-mysql -p 3306:3306 -v /data/gopub-mysql:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 --restart always -d mysql:5.7.24 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
sudo docker run --name gopub --link gopub-mysql:gopub-mysql -e MYSQL_HOST=gopub-mysql -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d lc13579443/gopub:latest
# Для использования multi-stage (многопроцессной сборки) требуется версия Docker 17.05+
sudo docker build --network=host -t gopub .
sudo docker run --name gopub -e MYSQL_HOST=x.x.x.x -e MYSQL_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASS=123456 -e MYSQL_DB=walle -p 8192:8192 --restart always -d gopub:latest
# apiVersion: apps/v1 требует версию Kubernetes 1.9.0+
kubectl apply -f gopub-kubernetes.yml
# Клонирование проекта
git clone https://gitee.com/dev-ops/gopub.git
# Компиляция фронтенда, npm может работать медленнее, можно использовать cnpm
cd vue-gopub
npm install
npm run build
# Измените конфигурацию, файл конфигурации базы данных находится в src/conf/app.conf
# Компиляция, control должна иметь права выполнения, и измените путь установки go export GOROOT=/usr/local/go
./control build
# Выполнение инициализации базы данных
./control init
# Запуск сервиса, после успешного запуска можно получить доступ по адресу 127.0.0.1:8192, имя пользователя: admin, пароль: 123456
./control start
```# Остановка сервиса
./control stop
# Перезапуск сервиса
./control restart
# Присвоение прав выполнения для control и src/gopub
# Выполнение инициализации базы данных
./control init
# Запуск сервиса, после успешного запуска можно получить доступ по адресу 127.0.0.1:8192, имя пользователя: admin, пароль: 123456
./control start
```# Остановка сервиса
./control stop
# Перезапуск сервиса
./control restart
# Установка системного сервиса
cp ./gopub.service /usr/lib/systemd/system/gopub.service
systemctl enable gopub.service
systemctl restart gopub.service
Предварительные условия: SSH-ключи пользователя gopub (например root) должны быть добавлены в список доверенных ключей пользователя {remote_user} на целевой машине
# Добавление доверия к машине
su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
# Необходим пароль от remote_user
# Для аутентификации без пароля требуется выполнение следующих условий на удалённой машине:
/home/{remote_user} 755
~/.ssh 700
~/.ssh/authorized_keys 644 или 600
Имя проекта: xxx.example.com (Имя проекта должно быть уникальным и соответствовать стандартам названий).
Окружение проекта: В настоящее время используются окружения pre-production и production.* Адрес: Поддерживает три способа публикации — gitlab, jenkins и file.
При использовании Git введите адрес репозитория в поле адреса. Для HTTPS используйте учетные данные в URL, для SSH убедитесь, что сервер с gopub имеет права доступа к репозиторию. Обычно создается публичный пользователь в gitlab, которому добавляются ключи gopub в раздел deploy-keys, чтобы обеспечить доступ ко всем проектам gitlab.
При использовании Jenkins введите адрес задачи Jenkins и учетные данные.
Первые две задачи выполняются на управляемой машине, последующие задачи выполняются на целевых машинах.* Задача перед выгрузкой кода: зависит от ситуации (по умолчанию пустая)
cd {WORKSPACE} && rm -rf composer.lock vendor && composer install --optimize-autoloader --no-dev -vvv --ignore-platform-reqs
, иначе оставьте пустым
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )