[Linux] VuePress 블로그 클라우드 서버 자동 배포 (Jenkins)

머리말

해당 블로거는 이전에 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

이미지-20230809230054692

신청 시작

기본적으로 시작

# 端口默认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 서버도 해당 보안 그룹을 열어야 합니다.

이미지-20230809234842425

위의 프롬프트에 따라 비밀번호를 얻으려면 다음 명령을 실행하십시오.

cat /root/.jenkins/secrets/initialAdminPassword

그런 다음 기본 도구를 설치하거나 수동으로 설치하도록 선택합니다.

이미지-20230810000226352

admin 사용자를 사용하여 직접 로그인하면 비밀번호는 위 파일 /root/.jenkins/secrets/initialAdminPassword에 있습니다.

이미지-20230810000940621

작업 만들기

블로그 창고 주소

플러그인 설치

nvm-wrapper 플러그인을 설치하고(노드 플러그인은 nvm 없이 직접 설치할 수 있음) 다시 시작합니다.

CentOS7은 상위 버전의 node와 호환되지 않습니다. 기사 마지막 부분의 블로그 창고에 있는 링크를 참조하세요.

참고: nvm 기본 노드 버전 명령 설정nvm alias default <version>

이미지-20230810004252188

일반적인

이미지-20230810001119323

소스코드 관리

이미지-20230810001652153

때로는 위의 git 주소를 추가한 후 다음과 같은 오류가 나타납니다. stderr: No ECDSA 호스트 키가 github.com에 알려져 있습니다.

해결책
rm -f  ~/.ssh/known_hosts
git ls-remote -h [email protected]:ReturnTmp/blog-vuepress-vdoing.git HEAD
자격 증명 추가

选择 개인 키가 있는 SSH 사용자 이름

이미지-20230810002024280

설명과 ID는 임의적일 수 있으며 마지막 키는 SSH 개인 키를 직접 복사할 수 있습니다.

이미지-20230810002204296

빌드 트리거

이미지-20230810002542374

이미지-20230810002655311

Webhooks를 추가하고 페이로드 URL http://<공용 네트워크 IP/도메인 이름>:8090/github-webhook/을 입력한 후 마지막으로 만들기를 클릭합니다.

빌드 환경

이미지-20230810004120879

이미지-20230810004727779

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 또는 도메인 이름>/

이미지-20230810204557026

로컬 코드를 수정하여 원격 브랜치에 푸시하고 Jenkins에 새 빌드 레코드가 나타나고 WebHooks가 성공적으로 구성되는지 확인합니다.

본 글은 블로그 창고 주소 에 해당 하며, 본 글은 창고 블로그에도 업데이트 되어 있으며, 창고 블로그 링크 홈페이지에서 바로 기사를 보실 수 있습니다.

궁금한 점이나 잘못된 점이 있으면 댓글란에 지적해 주세요.

참고 기사

Jenkins는 Vuepress의 자동 배포를 실현합니다(1부) - Jenkins 설치 및 구성 - Nuggets(juejin.cn)

Jenkins는 Vuepress의 자동 배포를 실현합니다(2부) - Jenkins 작업 구성의 자동 배포 - Nuggets(juejin.cn)

추천 도서

Centos 7-Alibaba Cloud 개발자 커뮤니티(aliyun.com)에 Jenkins 설치

이 기사는 블로깅을 위한 다중 게시물 플랫폼인 OpenWrite 에 의해 게시되었습니다 !

추천

출처blog.csdn.net/m0_63748493/article/details/132220360