Рубрики
Uncategorized

Набор базовых средств автоматизации процесса развертывания и построения

Автор оригинала: David Wong.

Предыстория проблемы

Технологическая команда стартапа компании, не имеющая никакой инфраструктуры, должна создать ряд инструментов управления кодом и автоматического развертывания…. таким образом, он запустил следующую серию процессов развертывания, которые длились два дня и в середине столкнулись с различными проблемами, но в конце концов успешно собрал все основные инструменты. Да ~, давайте взглянем на процесс строительства.

ресурсы

Один сервер, CentOS. Компания предоставила сервер с более низкой конфигурацией в качестве временного сервера. Нет никакого способа. Давайте сделаем это.

Мышление: если я использую традиционную установку Yum, она определенно будет установлена мной в беспорядке, что мне неудобно управлять и поддерживать. Перед лицом дилеммы я выбрал докера. Может быть, кто-то из моих друзей спрашивал, как использовать docker . Не паникуй. Есть портал: Linux docker compose, среда разработки PHP для хореографии Docker

Построение тестовой среды

Чтобы быстро создать тестовую среду PHP, я решил использовать laradock. Хотя файлов много, пакет завершен. Я не знаю, какая технология будет использована в более поздней разработке, поэтому я решил использовать ее в первую очередь и запустить сервис, доступный в любое время. Официальные документы Laradock также содержат исчерпывающее введение. Способ, который я использую здесь, заключается в развертывании нескольких наборов проектов. Структура каталогов выглядит следующим образом:

+ laradock
+ project-1
+ project-2

Начните использовать:

  1. клон git https://github.com/laradock/l…
  2. cp env-пример .env

    Конфигурация в Env может быть изменена и скорректирована в соответствии с вашей собственной ситуацией

  3. docker-compose up -d nginx |/php -fpm mysql redis После этого вы можете добавить программы, которые хотите запустить, такие как rabbitmq, Mongo и т.д. когда вам нужно добавить их в хвост, вы можете запустить их. В первый раз это немного длинновато

    docker-создание рабочей области исполнителя bash

  4. В таких проектах, как laravel, должен быть композитор. Когда вы выполните эту команду и войдете в рабочую область, вы сможете выполнить composer

    докер-составить exec nginx перезагрузка nginx -s

  5. Кто-то спросит меня, нужно ли мне входить в контейнер nginx для перезапуска каждый раз, когда я изменяю конфигурацию nginx, или перезапускать весь контейнер. Нет, вы можете перезапустить nginx, выполнив эту команду. Где находится файл конфигурации сайта nginx.//лара док/nginx/сайты/

Сначала запустите его.

GitLab

Теперь, когда рабочая среда настроена, как я должен хранить свой код? На самом деле, есть много вариантов. Мне нужно начать с моей собственной реальной ситуации, такой как GitHub, облако кода, gitlab и т. Д. Я выбрал gitlab, но я не обнаружил, что lara dock на самом деле предоставляет услуги gitlab в самом начале.. Это просто факт.

docker \
run -d  \
-p 443:443 \
-p 8080:80 \
-p 222:22 \
--name gitlab \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
#Parameter interpretation:
#-d: Let the container run in the background
#-p: Expose port, point port 443 of container to port 443 of host, host 8080 - > container 80, host 222 - > container 22
#The host port can be customized according to its own situation
#-Name name your container, as long as it doesn't duplicate the existing one
#--Restart whether the docker restarts when the container exits
#-V this is to mount the disk. Mount the host's directory into the container. In this way, even if the container is broken, my content will not be lost.
#The host / home / gitlab / config directory is attached to the container / etc / gitlab directory. The host directory is determined according to your own situation
#Gitlab / gitlab CE this is the image to start. If the image does not exist, docker will automatically download the latest version

После успешного запуска контейнера gitlab будет запущен в течение определенного периода времени. Вы не сможете получить к нему доступ сразу после успешного запуска контейнера. Буквально через мгновение файлы конфигурации могут быть изменены в указанном вами каталоге хоста. Содержание, подлежащее изменению, выглядит следующим образом:

gitlab_ rails['gitlab_ ssh_ Host '] =' host IP 'ා host IP address
  gitlab_ rails['gitlab_ shell_ ssh_ Port '] = 222 - SSH port exposed to the host
  external_ URL 'domain name' ා the domain name assigned to gitlab. You can use nginx as the reverse proxy to port 8080

Дженкинс

Существует множество способов реализовать автоматическое развертывание, таких как: webhook, Jenkins, Travis Ci и т.д. мой выбор-Дженкинс. Из-за предыдущего развертывания я все еще использую это здесь. Laradock по-прежнему предоставляет услуги Дженкинса, но также и потому, что я не обнаружил, что создал его… Похоже, в следующий раз нам нужно увидеть больше.

docker run -d \
     --name myjenkins \
     -p 8181:8080 \
     -p 50000:50000 \
     -v /home/jenkins/:/var/jenkins_home \
     jenkins/jenkins
     #Parameter interpretation
     #-d: Let the container run in the background
     #-p: Exposed port, host 8181 - > container 8080, host 50000 - > container 50000
     #-V this is to mount the disk. Mount the host's directory into the container. In this way, even if the container is broken, my content will not be lost.
     #Host / home / Jenkins / directory mount to container / var / Jenkins_ Home directory, the host directory depends on your own situation

Это тоже очень просто ~. ~Однако после успешной установки Jenkins появится пароль для инициализации. Существует два способа просмотра пароля инициализации:

#The first way
Docker logs < your container name > ා this allows you to view the output of the container
#The second way
Cat / home / Jenkins / secrets / initialadminpassword ා here's a good / home / Jenkins directory to replace

Конфигурация Дженкинса

инициализация

Введите пароль для инициализации, полученный выше. Затем я выбираю рекомендуемую установку. Вы можете перейти в библиотеку подключаемых модулей, чтобы установить то, что вам нужно позже.

Установка штекера

После инициализации перейдите в настройки системы – > управление подключаемыми модулями и установите несколько необходимых подключаемых модулей:

Publish Over SSH

Gitlab plugin - because gitlab is used, install this

Nodejs plugin - the Vue used by our front end uses node

Начните путешествие

1, Базовая конфигурация

После установки плагина вам необходимо настроить некоторые базовые компоненты, такие как JDK, узел, SSH и т. Д

  • Установка по SSH

Введите: управление Дженкинсом – > настройка системы

Нажмите кнопку Дополнительно:

Нажмите кнопку Проверить конфигурацию, чтобы проверить, успешно ли установлено соединение

  • jdk,git

Введите: управление Дженкинсом – > глобальная конфигурация инструмента

Я использую автоматическую установку для JDK и GIT. При установке JDK вам потребуется учетная запись. Вы можете зарегистрировать его

  • Установка Nodejs

]

2. Создайте проект

  1. Создайте новый проект
  2. Выберите свободный стиль

3, Проектирование Конфигурации

Настроено для хранения нескольких сборок

Используя инструмент git source, введите адрес git и добавьте пользователя git

if [ -f "test.tar.gz" ];then
rm testv.tar.gz
fi
tar -zcvf test.tar.gz ./*

Зачем упаковывать проект здесь? Поскольку SSH, который будет настроен ниже, не поддерживает передачу папок, вам необходимо сначала упаковать содержимое, а затем распаковать его на сервере

Все они сохранены и готовы к строительству. Да~

Спасибо, что посмотрели

Я уже давно не писал статей. Это долгий срок. Спасибо вам за ваше терпение. Я надеюсь, что это может вам помочь. Я также надеюсь, что вы сможете высказать разные мнения и найти более эффективный способ закончить его. Спасибо!