序文
このブロガーは以前、 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
アプリケーションを開始する
デフォルトで開始する
# 端口默认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
次に、デフォルトのツールをインストールするか、手動でインストールするかを選択します
管理者ユーザーを使用して直接ログインするだけです。パスワードは上記のファイル/root/.jenkins/secrets/initialAdminPassword
にあります。
タスクを作成する
プラグインをインストールする
nvm-wrapper プラグインをインストールし (node プラグインは nvm なしで直接インストールできます)、再起動します。
CentOS7 は上位バージョンのノードと互換性がありません。記事の最後にあるブログ ウェアハウスのリンクを参照してください
注: nvm デフォルト ノード バージョンの設定コマンド
nvm alias default <version>
一般的な
ソースコード管理
上記の 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 ユーザー名を選択
説明と ID は任意で、最後のキーは SSH 秘密キーを直接コピーできます。
ビルドトリガー
Webhook を追加し、ペイロード 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 に表示され、WebHook が正常に構成されていることを確認します。
この記事は、ブログ倉庫のアドレスに対応しています。この記事は倉庫ブログでも更新されており、倉庫からのブログリンクのトップページから直接記事をご覧いただけます。
質問や間違いがある場合は、コメント欄で指摘してください
参考記事
Jenkins で Vuepress の自動展開を実現 (前編) - Jenkins のインストールと設定 - Nuggets (juejin.cn)
JenkinsでVuepressの自動デプロイを実現する(その2) - Jenkinsのタスク構成の自動デプロイ - Nuggets (juejin.cn)
推奨読書
Centos 7 に Jenkins をインストールする - Alibaba Cloud 開発者コミュニティ (aliyun.com)
この記事は、ブログ用のマルチポスト プラットフォームであるOpenWriteによって公開されています。