Предварительная подготовка
· Один облачный сервер на базе системы Centos7.
·Проекты на основе Vue-cli развертываются поверх gitlab.
Цель развертывания
Создайте среду Docker+Nginx+Jenkins, чтобы реализовать процесс автоматизированного развертывания переднего плана. Конкретный эффект реализации заключается в том, что разработчики разрабатывают локально, отправляют код в указанную ветку и автоматически запускают jenkins для непрерывной интеграции и автоматического развертывания. Его можно настроить на уведомление по электронной почте после завершения развертывания.Независимо от того, успешно развертывание или нет, упакованный файл будет загружен на сервер после успеха, а страница будет отображаться через обратный прокси-сервер nginx.Если это не удается , будет распечатан соответствующий журнал ошибок.
Дружеское напоминание: попробуйте выбрать сервер Alibaba Cloud или Tencent Cloud, когда развернуты другие серверы, Jenkins может не запуститься нормально!
Построение среды Docker
Подключиться к облачному серверу
Вы можете выбрать онлайн-терминал, предоставляемый Alibaba Cloud или Tencent Cloud (иногда зависает), но для подключения рекомендуется использовать локальный компьютер. Введите команду подключения в терминале:
ssh root@你的服务器公网地址
После ввода пароля облачного сервера команда отображает результат следующим образом:
У Docker есть две версии форка: Docker CE и Docker EE, Community Edition и Enterprise Edition. В этом руководстве устанавливается Docker CE на основе CentOS 7.
Соединительная среда установки докера
1. Установите зависимости Docker.
yum install -y yum-utils device-mapper-persistent-data lvm2
2. Добавьте информацию об источнике программного обеспечения Docker CE.
sudo yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. Установите DockerCE.
sudo yum install docker-ce
4. Запустите службу Docker.
sudo systemctl enable docker // 设置开机自启
sudo systemctl start docker // 启动docker
Докер установить docker-compose
инструменты docker-compose для определения и запуска нескольких приложений для контейнеров Docker. С помощью Compose вы можете использовать файл YML для настройки всех служб, необходимых приложению. Затем с помощью команды вы можете создать и запустить службу из всей конфигурации файла YML. Скачать докер-компоновку:
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Повысить привилегии после установки:
sudo chmod +x /usr/local/bin/docker-compose
войтиdocker-compose -vОтображается следующая страница
Docker устанавливает сервисы Nginx и Jenkins
Установите Nginx и Дженкинс
Образ докера извлекает команды среды nginx и jenkins следующим образом:
docker pull nginx
docker pull jenkins/jenkins:lts
Выполнить после завершения установкиdocker imagesМы можем ясно видеть наличие текущего зеркала докера.
docker images
Написание каталогов Nginx и Jenkins
Для простоты управления мы объединяем Nginx и Jenkins в один файловый каталог под докером. Структура каталогов следующая:
+ compose
- docker-compose.yml // docker-compose执行文件
+ nginx
+ conf.d
- nginx.conf // nginx配置
+ jenkins
- jenkins_home // jenkins挂载卷
+ webserver
-static //存放前端打包后的dist文件
Каталог веб-сервера относится к постгенерации и пока не будет обсуждаться.Каталоги compose, nginx и Jenkins и их подчиненные файлы необходимо создать вручную.Наиболее важными из них являются конфигурация файла docker-compose.yml. файл и файл nginx.conf. Вышеуказанные папки рекомендуется размещать в корневом каталоге, который можно поместить в домашнюю папку или создать новую папку отдельно.
конфигурация файла docker-compose.yml
version: '3'
services: # 集合
docker_jenkins:
user: root # 为了避免一些权限问题 在这我使用了root
restart: always # 重启方式
image: jenkins/jenkins:lts # 指定服务所使用的镜像 在这里我选择了 LTS (长期支持)
container_name: jenkins # 容器名称
ports: # 对外暴露的端口定义
- 8080:8080
- 50000:50000
volumes: # 卷挂载路径
- /home/jenkins/jenkins_home/:/var/jenkins_home # 这是我们一开始创建的目录挂载到容器内的jenkins_home目录
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker # 这是为了我们可以在容器内使用docker命令
- /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
docker_nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 8090:80
- 80:80
- 433:433
volumes:
- /home/nginx/conf.d/:/etc/nginx/conf.d
- /home/webserver/static/jenkins/dist/dist:/usr/share/nginx/html
конфигурация файла nginx.conf
server{
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
}
После того, как вышеприведенные два файла настроены, вам необходимо ввести следующую команду в каталоге / Home / Compose, чтобы начать окружающую среду:
docker-compose up -d
docker-compose stop //停止nginx和jenkins 两者结合可以进行重启
войтиdocker ps -aПроверьте состояние контейнера:
Отображается статус, и следующий номер порта показывает нормальное состояние, как указано выше. Введите общедоступный IP-адрес вашего облачного сервера и номер порта 8080 в браузере, чтобы отобразить следующую страницу:
будь осторожен:
Порт 8080: он используется для прокси-сервисов WWW, вы можете реализовать просмотр веб-страниц.
Пароль, необходимый для приведенного выше изображения, находится вdocker-compose.ymв лvolumes
середина/home/jenkins/jenkins_home/secrets/initAdminPasswordсередина. Его можно получить с помощью следующей команды:
cat /home/jenkins/jenkins_home/secrets/initialAdminPassword
Установите плагин Дженкинс
После входа на страницу выберите Рекомендуемая установка.
После завершения установки выберите параметр «Управление Jenkins» слева. Как показано ниже:
Управление плагинами в jenkins ищет следующие плагиныgitlab,Publish Over SSH,nodejsи установить.
После завершения установки настройте среду nodejs и параметры ssh и выберите ее на домашней странице.global tool Configuration>NodeJSВыберите автоматическую установку и соответствующий номер версии nodejs и нажмите «Сохранить» после успешного выбора.
настроить информацию ssh,Manage Jenkins>configure SystemЗаполнить информационный сервер
Ассоциация Jenkins и Gitlab
сгенерировать ключ
Выполните следующую команду в корневом каталоге:
ssh-keygen -t rsa
Как правило, по умолчанию введите дважды, как показано на следующем рисунке:
использоватьcd ~/.ssh, чтобы увидеть сгенерированные файлы.Скопируйте и вставьте сгенерированный ключ id_rsa в учетные данные в jenkins. как показано на рисунке:
Войдите в gitlab, наgitlabСредняя конфигурацияid_rsa.pubоткрытый ключ
Новый проект
После подготовки начните создавать новую задачу, выберите新建item>freestyle projectСоздайте проект для фристайла.
управление исходным кодом
После завершения нового творения в源码管理Настройте информацию git вcredentialsВыберите учетные данные, которые мы только что добавили.
триггер сборки
существует构建触发器中Выберите, когда мы запускаем сборку, вы можете выбрать крючок вашего товарища по команде, напримерpushкогда код,Merge Requestкогда
нажмите高级选项оказатьсяsecret token>GenerateСгенерировать значение токена
После успешной настройки вам также необходимо перейти вgitlabДобавьте соответствующие хуки в . Обратите внимание на картинку вышеwebhookURL(обведены красным) иsecret tokenзначение, перейдите на gitlab для настройки.
Среда сборки и конфигурация сборки
После завершения приведенной выше настройки jenkins связывается с gitlab.Когда файл загружается локально, он будет автоматически создан, и доступ к измененному проекту можно будет получить, обратившись к общедоступному IP-адресу облачного сервера.Его также можно создать вручную на Дженкинса, например Как показано на рисунке:
заключительные замечания
Наконец, простой проект онлайн-развертывания завершен.Учащиеся, у которых есть доменное имя, могут выполнить облачное преобразование, чтобы сопоставить IP-адрес общедоступной сети, чтобы они могли использовать более узнаваемое доменное имя для разработки и запуска проекта.
Некоторые ссылки на статью:nuggets.capable/post/684490…Он совершенствуется во время развертывания и может нормально работать