DUICUO

Ubuntu 18.04にJenkinsをデプロイする方法

Jenkinsの紹介

  • 利点: 開発者は面倒な統合作業から解放され、より重要なビジネス ロジックの実装に集中できるようになります。
  • Jenkins の中国語ウェブサイト: http://www.jenkins.org.cn/。
  • 簡単に言えば、持続可能な統合です。

継続的インテグレーションとは何ですか?継続的インテグレーションシステムの構成要素は何ですか?

自動コンパイル、配布、デプロイ、テストを含む自動化されたビルドプロセス。コードの保守性を確保するためにバージョン管理ソフトウェアを必要とし、ビルドプロセスのリソースライブラリとして機能するコードリポジトリ。継続的インテグレーションサーバー。

継続的インテグレーションの原則

バージョン管理

チームメンバーが提出したコードが統合エラーを引き起こさないようにするには、バージョン管理ソフトウェアが必要です。一般的に使用されているバージョン管理ソフトウェアには、SVN、Git、ClearCaseなどがあります。

統合サーバー

統合ビルドを実行するには、専用の統合サーバーが必要です。プロジェクトに応じて、統合ビルドはソフトウェアの変更によって直接トリガーすることも、30分ごとなどのスケジュールに従って開始することもできます。

建設成功

ビルドの成功は保証されなければなりません。ビルドが失敗した場合、ビルドプロセス中のエラーの修正が最優先事項となります。エラーが修正されたら、手動ビルドを開始する必要があります。

Docker デプロイメント

 # Dockerをインストールする
sudo apt - アップデートを取得
sudo apt install -y apt - transport - https ca - certificates curl software - properties - common
curl - fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add -apt - リポジトリ"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt - アップデートを取得
sudo apt install -y docker -ce
#非ルートユーザーとしてこれを実行する必要がある場合のオプション項目。
#Dockerを操作するためのamaozajiユーザーの設定
sudo グループ追加docker
追加ユーザーamaozaji
パスワードamaozaji
sudo gpasswd - amaozaji docker
sudo systemctl でdocker を再起動します。
# スワップを無効にする
スワップオフ- a
#システムパラメータ調整
echo "vm.max_map_count = 262144 " >> / etc / sysctl.conf
sysctl -p
# Dockerのデフォルトのストレージパスを変更する
Ubuntu 18.04の場合:
設定ファイル追加します: /etc/systemd/system/docker.service.d/docker-overlay.conf
内容は以下のとおりです。
[ サービス]
実行開始=
ExecStart =/ usr / bin / dockerd -- グラフ= "/data/var/lib/docker" -- ストレージ- ドライバー= overlay
# コンテナ内のログファイルのサイズと数を変更する
vim /etc/docker/daemon.json
{
「ログドライバー」 : 「jsonファイル」
「ログオプション」 : {
「最大サイズ」 : 「100m」
「最大ファイル数」 : 「10」
}
}
#設定ファイルを再読み込みしてサービスを再起動します
systemctl デーモン- リロード
systemctl でdocker を再起動します。

# Docker モジュールをインストールします( pip がない場合は、最初にインストールします: apt - get install python - pip )
pip でdocker をインストール== 4.0.0

生成された設定ファイルを保存する

`main_config_editor` を使用して設定ファイルを保存・生成します。このファイルはデフォルト設定で直接使用できます。変更はすぐに反映され、ローカルフォルダに保存されます。

デフォルト設定から始めることができます。

構成ファイルを変更するための PUT リクエストと GET リクエストの両方をサポートし、CI 統合を容易にします。

スクリプト update_config_editor.sh:

 # !/ bin / bash
セット- e
セット- x
docker pull config_editor
docker rm -f config_editor || echo " ok "
docker run -d --name config_editor -p 8000 : 8000 --restart = always -v / data / source_config : / config config_editor

起動後、http://hostname:8000/ にアクセスして、設定ファイル エディターが表示されるかどうかを確認します。

制御する必要があるホストに認証公開キーを追加します。

認証公開キーの追加は、Jenkins によって制御され、コンポーネントがインストールされているマシンでのみ実行する必要があります (sudo 権限が必要です)。

 mkdir /root/.ssh/
echo 'ssh-rsa AA2EAAAADAQABAAABAQDgsoxCDtHGSaPqwVppkhRsZ6Qha85q77etYuzNM/dEkJJwMKmCxw1q/iBecopL0XRDyUVlK7y2eWZ0KCom5tpMf+pCZkK1SRUxcI5eId4juZnDKHqSXqVa alJDRr9zD7vKYdpaDTALX5RLhC3jr3cF/SImAlpTlQ0bmBttk7pJkF1AjBYRIDYezCN4nITsuGnqSgD/XUzSpjivO8P7SNnxRY8eHASstKiJC8zU2GQF6exGVGPAWdPi99y/3/HPJn jenkins' >> / root / .ssh / 承認されたキー

操作は正しいが、Jenkins がタスクを実行したときに認証が失敗する場合は、Jenkins の秘密鍵で接続して確認できます。

 ssh -i 秘密鍵.pem ルート@target_host

Jenkinsをダウンロードして起動する

よく使用されるスクリプトでは、CONFIG_URL は構成ファイルへのアクセス アドレスであり、これは前の手順の構成ファイル修飾子のアクセス アドレスです。

スクリプト update_jenkins.sh:

 # # !/ bin / bash
セット- e
セット- x
# Jenkins Dockerをダウンロード
docker pull jenkins
docker rm - f amaozaji_jenkins || echo "amaozaji_jenkins を rm する必要はありません"
#Docker を起動し、設定ファイルのダウンロードアドレスを設定する
docker run --name amaozaji_jenkins -d --net = host -e CONFIG_URL = http : //localhost:8000/main.yaml jenkins

起動後、http://hostname:8080/ にアクセスして、Jenkins ページが表示されるか確認します。