предисловие
Недавно я создаю свой собственный веб-сайт. После того, как структура веб-сайта настроена, мне нужно разместить проект на сервере для запуска.Однако очень хлопотно вручную развертывать содержимое веб-сайта каждый раз, когда я его обновляю, поэтому Я хочу создать набор служб автоматического развертывания. После прочтения некоторых случаев я, наконец, выбрал более распространенное решение Jenkins + Github + Nginx для сборки, поэтому я следовал руководству, После прочтения многих руководств оно было не очень полным. По умолчанию следующие операции применяются к вашему собственному серверу и открывают необходимые порты. Мой собственный сервер ubuntu. Примечание. Ubuntu использует (apt-get install software name) для установки программного обеспечения, сервер redhat (т. е. CentOS) использует команду (yum install software name) для установки с помощью инструмента удаленного управления xhell.
Принципы автоматического развертывания
Проще говоря, когда мы пишем код и собираем его, отправляем код на github, и jenkins автоматически создает проект, когда обнаруживает изменения в коде, и загружает код на сервер для автоматического развертывания.
установить java SDK
Jenkins нуждается в среде java и должен установить java jdk.Первый способ установки - установить его из инструмента управления пакетами, то есть выполнить следующую команду.Здесь я установил jdk8. Второй — загрузить установочный пакет с официального сайта и распаковать его в указанную папку, этот способ подвержен ошибкам и не рекомендуется.
sudo apt-get update
sudo apt-get install openjdk-8-jdk
После завершения установки настройте переменные среды, выполните sudo vi ~/.bashrc, добавьте следующую информацию в конец файла, обратите внимание на изменение JAVA_HOME на свой собственный путь java, мой путь установки по умолчанию — /usr/lib /jvm/java-8-openjdk-amd64
#set oracle jdk environment
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JRE_HOME=$JAVA_HOME/jre
JAVA_BIN=$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH
Сделайте так, чтобы конфигурация вступила в силу немедленно
source ~/.bashrc
Я столкнулся с проблемой при выполнении синтаксической ошибки команды source ~/.bashrc: неожиданный конец файла, проверенный формат файла = unix, и проблем нет, Наконец, восстановите файл .bashrc с помощью команды cp /etc/skel/.bashrc ~. После настройки переменных среды выполните source ~/.bashrc без ошибок. Введите java -version, чтобы вывести информацию о номере версии java jdk, и установка прошла успешно.
установить нгинкс
Выполните следующую команду, чтобы установить nginx
sudo apt-get update
sudo apt-get install nginx
После завершения установки nginx открывается по умолчанию.Введите ip вашего сервера в браузере, и вы сможете увидеть страницу.Путь к странице по умолчанию /var/www/html.Если вы его не видите,пожалуйста, проверьте, не сообщается ли об ошибке во время установки и не был ли открыт порт 80.
Установить Дженкинс
Сначала добавьте ключ репозитория в систему
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
После добавления ключа система вернет OK. Затем мы добавляем адрес репозитория пакетов Debian к серверу sources.list:
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
Затем обновите репозиторий пакетов
sudo apt-get update
Наконец, установите Jenkins и введите y.
sudo apt-get install jenkins
Возможные ситуации: apt-get install jenkins сообщил об ОШИБКЕ: исполняемый файл Java не найден в текущем PATH: /bin:/usr/bin:/sbin:/usr/s решить: 1. Проверьте правильность вашего пути PATH_HOME. Если он неверен, перенастройте его. Выполните команду echo $PATH, чтобы увидеть, есть ли что-нибудь
2. Выполните следующую команду, чтобы связать исполняемый файл Java.
update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.1/bin/java" 1 #换成你的安装路径
update-alternatives --config java
После того, как проблема решена и проблемы нет, введите в браузере ip+8080 сервера (например: 128.22.26.108:8080), если все нормально, может появиться следующая страница:
В зависимости от проекта PATH, разблокировав пароль, разблокировка Jenkins столкнулась с вопросом CD: Secrets /: разрешение запрещено, потому что секреты не читали разрешения и оснащены файлом.
sudo chmod 777 secrets
Войдите в каталог, откройте файл, скопируйте пароль
sudo vi initialAdminPassword
После разблокировки выберите установку предложенного плагина.
Затем дождитесь завершения установки плагина, создайте учетную запись администратора, введите информацию и нажмите «ОК».
конфигурация гитхаба
Выберите настройки в github
Выберите настройки разработчика
Выберите «Токен личного доступа» -> «Создать новый токен», создайте пользователя с правами на чтение и запись. Проверьте параметры следующим образом:
После подтверждения сгенерируйте токен, скопируйте его и сохраните.
конфигурация Дженкинса
После входа в jenkins выберите System Management => System Settings => Github Server, чтобы добавить информацию
Добавьте учетные данные Дженкинса
Щелкните тест подключения после завершения, информация об успешном подключении выглядит следующим образом:
Затем выберите «Системное администрирование» => «Конфигурация глобальных инструментов». Снимите флажок автоматической установки в установке JDK, введите корневой каталог установки java jdk в JAVA_HOME, мой корневой каталог установки — /usr/
После завершения вернитесь на домашнюю страницу, чтобы создать новую задачу, введите имя задачи, выберите создание бесплатного программного проекта и нажмите «ОК».
Общие настройки
управление исходным кодом
Добавить учетные данные
триггер сборки
Выберите Опрос SCM, введите время отправления
Построить
Выберите оболочку выполнения и введите сценарий сборки.
Наконец, сохраните, нажмите «Создать сейчас», после чего проект будет иметь ход сборки.
Вы можете просмотреть статус сборки в истории сборки.Синий шарик и сообщение об успешном выполнении указывают на то, что сборка прошла успешно.
Когда я столкнулся с ошибкой во время сборки, мне нужно было ввести пароль для выполнения команды sudo, поэтому я не стал продолжать сборку.Наконец-то я нашел способ выполнить sudo visudo и добавить следующую информацию в конец файла .
jenkins ALL=(ALL) NOPASSWD: ALL
Затем нажмите ctrl+o для сохранения, затем Enter и, наконец, ctrl+x для выхода. Перестроение должно быть успешным. После успеха вы можете увидеть свой проект в пути /var/lib/jenkins/workspace/, а затем попытаться изменить локальный проект.После отправки git push обнаруживается, что jenkins отвечает на выполнение билд, а так же обновляется файл сервера. , указывая на то, что проект завершен, вознаградите себя!
Суммировать
Весь проект построен и прошел через множество ям, и столкнулся с множеством мелких проблем.Много времени уходит на решение проблем.В общем-то, это не сложно.Если вы не знакомы с линуксом, то будет быть немного трудным. Выше описан процесс сборки и проблемы, с которыми я столкнулся.Если пишу не по месту, прошу меня поправить.