머리말
해당 블로거는 이전에 Github Pages (Github Action 기반)와 Vercel 에 자신의 블로그를 배포했지만 , 이 두 가지 배포 방법은 국내 사용자들에게 그다지 친숙하지 않고, 접근 속도가 걱정스럽습니다. 따라서 블로그를 자체 클라우드 서버로 마이그레이션하고 Jenkins (오픈소스 지속적 통합 도구)를 기반으로 로컬 푸시 코드를 구현한 후 자동화된 통합 배포
환경
클라우드 서버: CentOS 7, OracleJDK 11
로컬 호스트: Windows 11
설치 구성
젠킨스
공식 웹사이트 설치 소개(Redhat): Redhat Jenkins 패키지
참고: 최신 버전의 Jekins는 jdk11에 가장 적합합니다. jdk8로 정상적으로 시작할 수 있지만 다른 오류가 있을 수 있습니다.
가져오기 키
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
다운로드 및 설치
yum install jenkins -y
카탈로그 보기
rpm -ql jenkins
신청 시작
기본적으로 시작
# 端口默认8080
java -jar /usr/share/java/jenkins.war --httpPort=8090
일반적인 명령
systemctl start jenkins
systemctl stop jenkins
systemctl status jenkins
# 开机自启动
systemctl enable jenkins
다시 시작 명령: http://<공용 네트워크 IP/도메인 이름>:8090/restart
설정을 바꾸다
구성 파일 열기
vim /usr/lib/systemd/system/jenkins.service
구성 파일은 다음과 같이 수정됩니다. (JDK 설치 디렉터리는 로컬에 따릅니다.)
# 安装的OracleJDK则需配置下面两项
Environment="JAVA_HOME=/usr/java/jdk-11.0.20"
Environment="JENKINS_JAVA_CMD=$JAVA_HOME/bin/java"
# 如果使用root用户则配置下面两项
User=root
Group=root
# 更换端口
Environment="JENKINS_PORT=8090"
초기 실행 시 systemctl start jenkins
실행하는 데 시간이 약간 더 걸릴 수 있습니다.
앱을 열어
브라우저 접속 : http://<공용망 IP/도메인 이름>:8090
참고: 외부 브라우저 액세스는 포트 번호에 해당하는 방화벽을 열어야 하며 Alibaba Cloud 서버도 해당 보안 그룹을 열어야 합니다.
위의 프롬프트에 따라 비밀번호를 얻으려면 다음 명령을 실행하십시오.
cat /root/.jenkins/secrets/initialAdminPassword
그런 다음 기본 도구를 설치하거나 수동으로 설치하도록 선택합니다.
admin 사용자를 사용하여 직접 로그인하면 비밀번호는 위 파일 /root/.jenkins/secrets/initialAdminPassword
에 있습니다.
작업 만들기
플러그인 설치
nvm-wrapper 플러그인을 설치하고(노드 플러그인은 nvm 없이 직접 설치할 수 있음) 다시 시작합니다.
CentOS7은 상위 버전의 node와 호환되지 않습니다. 기사 마지막 부분의 블로그 창고에 있는 링크를 참조하세요.
참고: nvm 기본 노드 버전 명령 설정
nvm alias default <version>
일반적인
소스코드 관리
때로는 위의 git 주소를 추가한 후 다음과 같은 오류가 나타납니다. stderr: No ECDSA 호스트 키가 github.com에 알려져 있습니다.
해결책
rm -f ~/.ssh/known_hosts
git ls-remote -h [email protected]:ReturnTmp/blog-vuepress-vdoing.git HEAD
자격 증명 추가
选择 개인 키가 있는 SSH 사용자 이름
설명과 ID는 임의적일 수 있으며 마지막 키는 SSH 개인 키를 직접 복사할 수 있습니다.
빌드 트리거
Webhooks를 추가하고 페이로드 URL http://<공용 네트워크 IP/도메인 이름>:8090/github-webhook/을 입력한 후 마지막으로 만들기를 클릭합니다.
빌드 환경
echo $WORKSPACE
node -v
npm -v
npm install
npm run build
빌드가 성공한 후 Nginx 배포
Nginx 배포
nginx.conf(vuepress는 자체 프로젝트 이름으로 변경됨)
location / {
root /var/lib/jenkins/workspace/vuepress/docs/.vuepress/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
액세스 애플리케이션
브라우저 접속: http://<IP 또는 도메인 이름>/
로컬 코드를 수정하여 원격 브랜치에 푸시하고 Jenkins에 새 빌드 레코드가 나타나고 WebHooks가 성공적으로 구성되는지 확인합니다.
본 글은 블로그 창고 주소 에 해당 하며, 본 글은 창고 블로그에도 업데이트 되어 있으며, 창고 블로그 링크 홈페이지에서 바로 기사를 보실 수 있습니다.
궁금한 점이나 잘못된 점이 있으면 댓글란에 지적해 주세요.
참고 기사
Jenkins는 Vuepress의 자동 배포를 실현합니다(1부) - Jenkins 설치 및 구성 - Nuggets(juejin.cn)
Jenkins는 Vuepress의 자동 배포를 실현합니다(2부) - Jenkins 작업 구성의 자동 배포 - Nuggets(juejin.cn)
추천 도서
Centos 7-Alibaba Cloud 개발자 커뮤니티(aliyun.com)에 Jenkins 설치
이 기사는 블로깅을 위한 다중 게시물 플랫폼인 OpenWrite 에 의해 게시되었습니다 !