JAVA開発運用保守(Jenkinsに踏まれた穴)

最近、Jenkins を使用してプロジェクトのデプロイを自動化しようとしましたが、多くの落とし穴を踏むとは思っていませんでした。Jenkins デプロイメントの基本原則:

Jenkins サーバーを介して gitlab のコードをプルし、パッケージ化し、ターゲット サーバーにプッシュして、起動スクリプトを実行します。

次に、ジェンキンスは 3 つの問題を解決する必要があります。

1. ターゲット サーバーに接続する

2. パッケージ化し、ターゲット サーバーに対応するディレクトリにプッシュします。

3. 起動スクリプトを実行します。

1. まず、最初の問題を解決するために、リモート サーバーに接続します。

1. Jenkins サーバーは、ターゲット サーバーに ping できる必要があります。

2. Jenkins サーバーは、ターゲット サーバーのポート 22 に telnet 接続できる必要があります。

3. Jenkins で公開鍵と秘密鍵のペアである鍵を生成し、次のコマンドを実行します。

ssh-keygen -t rsa

/.ssh/id_rsa.pub

公開鍵をターゲット サーバーの /root/.ssh ディレクトリにあるauthorized_keys ファイルにコピーし、

 id_rsa.pub ファイル。これら 2 つのファイルが /root/.ssh に存在しない場合は、手動で作成します。

ここでの落とし穴 1: Authorized_keys の内容は改行を許可していません. 改行がある場合は、手動で改行を削除する必要があります.

 ピット 2:authorized_keys のアクセス許可は 600、id_rsa.pub のアクセス許可は 700、このディレクトリのアクセス許可は 700 である必要があります。

755や777など、何気なく複数の権限を与えると接続できません。

コマンドを直接使用できます。

chmod  700  /root/.ssh
cd /root/.ssh
chmod  600 authorized_keys
chmod  700 id_rsa.pub

これは、Jenkins サーバーをターゲット サーバーに接続するための秘密鍵と一致します。

次に、Jenkins の管理構成でターゲット サーバーに接続するための操作を構成する必要があります。

Jenkins と入力し、[Manager Jenkins] をクリックします。 

 「システムの構成」をクリックします

 

「SSH Servers」に新しいサーバーを追加し、以下のように設定します

 

 

 これは、jenkins サーバーの秘密鍵です。

構成後、[構成のテスト] をクリックします。

 

成功した場合は、jenkins サーバーが既にターゲット サーバーに接続できることを意味します。

2. Jenkins を使用してコードをパッケージ化し、リモート サーバーにプッシュします。

1. 新しいアイテムを作成する

 

次に、構成アイテムにプロジェクトのパッケージ プッシュ情報を構成します。

 

 

General は、ビルド タスクの基本的な構成です。名前、説明など

プロジェクト名: 先ほどビルドタスクを作成する段階で設定しましたが、もちろんここで変更することもできます。

Description : ビルド タスクの説明。  

ソース管理は、構成コードが存在する場所です。

 

Resリポジトリ URL : プロジェクトの Git アドレスを入力します

資格情報: ユーザーに相当する資格情報は、HTTP ユーザー名とパスワード、または RSA ファイルを使用できます。root を直接選択することをお勧めします。

構築するブランチ: 構築するブランチ。*/master は master ブランチを示し、他のブランチにも設定できます。

ソース コード ブラウザー: github、gitlab など、使用するコード ウェアハウス管理ツール。「自動」を選択できます。

 

 

 

上記は、パッケージ化されてターゲット サーバーにプッシュされる構成の説明です。 

3. 起動スクリプト構成を実行します

 

 これは、ターゲット サーバーで何を実行するかを記述した起動スクリプトです。

おすすめ

転載: blog.csdn.net/dongjing991/article/details/130106026