【Linux】VuePressブログのクラウドサーバー自動展開(Jenkins)

序文

このブロガーは以前、 Github Pages (Github Action ベース) とVercelにブログをデプロイしていましたが、これら 2 つのデプロイ方法は国内ユーザーにとってあまりフレンドリーではなく、アクセス速度が懸念されています。したがって、ブログを独自のクラウド サーバーに移行し、Jenkins (オープンソースの継続的統合ツール) に基づいてローカル プッシュ コードを実装した後、統合のデプロイが自動化されました。

環境

クラウドサーバー:CentOS 7、OracleJDK 11

ローカルホスト: Windows 11

インストール構成

ジェンキンス

公式 Web サイトのインストール紹介 (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

管理者ユーザーを使用して直接ログインするだけです。パスワードは上記のファイル/root/.jenkins/secrets/initialAdminPasswordにあります。

画像-20230810000940621

タスクを作成する

ブログ倉庫のアドレス

プラグインをインストールする

nvm-wrapper プラグインをインストールし (node プラグインは nvm なしで直接インストールできます)、再起動します。

CentOS7 は上位バージョンのノードと互換性がありません。記事の最後にあるブログ ウェアハウスのリンクを参照してください

注: nvm デフォルト ノード バージョンの設定コマンドnvm alias default <version>

画像-20230810004252188

一般的な

画像-20230810001119323

ソースコード管理

画像-20230810001652153

上記の git アドレスを追加すると、次のエラーがポップアップ表示される場合があります: stderr: No ECDSA host key is known for 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

Webhook を追加し、ペイロード 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 に表示され、WebHook が正常に構成されていることを確認します。

この記事は、ブログ倉庫のアドレスに対応しています。この記事は倉庫ブログでも更新されており、倉庫からのブログリンクのトップページから直接記事をご覧いただけます。

質問や間違いがある場合は、コメント欄で指摘してください

参考記事

Jenkins で Vuepress の自動展開を実現 (前編) - Jenkins のインストールと設定 - Nuggets (juejin.cn)

JenkinsでVuepressの自動デプロイを実現する(その2) - Jenkinsのタスク構成の自動デプロイ - Nuggets (juejin.cn)

推奨読書

Centos 7 に Jenkins をインストールする - Alibaba Cloud 開発者コミュニティ (aliyun.com)

この記事は、ブログ用のマルチポスト プラットフォームであるOpenWriteによって公開されています。

おすすめ

転載: blog.csdn.net/m0_63748493/article/details/132220360
おすすめ