Jenkins、Ansible デプロイメントに基づいて Docker および PHP 環境を自動的にパッケージ化してデプロイ ------- 初心者からマスターまで運用と保守を学ぶ 86 日目

改善の第 4 段階

日時: 2023 年 8 月 23 日

参加者:クラス全員

内  容:

Jenkins に基づいて Docker および PHP 環境をデプロイする

目次

1. 環境展開

(1) 実験環境とサーバーの設定

(2) すべてのホストのファイアウォールとselinuxをオフにし、ホスト名を変更します。

(3) gitホストの設定

(4) jenkinsホストの設定

(5) Jenkinsの設定

2. Jenkins に基づいて Docker 環境を自動的にパッケージ化してデプロイする

Tomcat ホストの操作:

結果の検証:

3. JenkinsをベースにしたPHP環境の自動デプロイ

(1) Gitサーバーの操作:

(2) Tomcat側の動作:

(3) ジェンキンスの操作:

Webアクセステスト:

4. ansibleをベースにしたPHP環境のデプロイ

ジェンキンスの操作:

結果テスト:


1. 環境展開

(1)実験環境とサーバーの設定

IPアドレス

CPU名

役割

192.168.100.131

ギット

gitサーバー

192.168.100.132

Jenkins git クライアント

アンシブル

ジェンキンスサーバー

192.168.100.133

トムキャット、ドッカー、httpd

ウェブサーバー

(2)すべてのホストのファイアウォールと selinux をオフにし、ホスト名を変更します。

gitホスト

ジェンキンスホスト

ウェブホスト

(3) gitホストの設定

1. # rpm インストールの依存関係: 1 と 2 の両方がインストールされます

[root@gitclient ~]# yum -y installcurl-devel expat-devel gettext-devel openssl-devel zlib-devel

2. # コンパイルとインストール — サーバーとクライアント、https://mirrors.edge.kernel.org/pub/software/scm/git/ にアクセスして、必要なバージョンをダウンロードします

[root@gitclient ~]# tar xf git-2.22.0.tar.gz -C /usr/src/

[root@gitclient ~]# cd /usr/src/git-2.22.0/

[root@git git-2.22.0]# make configure

[root@git git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install

        注: 上の図に示されているように、/bin/sh: autoconf: command not found make: *** [configure] error 127、どうすればよいですか?

プロンプトに従って autoconf をインストールします

[root@git git-2.22.0]# yum -y install autoconf

次に、再構成、コンパイル、インストールを行います。

[root@git git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin/

[root@git git-2.22.0]# git --version

3. #git サーバー上でユーザーを構成する

[root@git ~]# useradd git

[root@git ~]# echo "123456" | passwd --stdin git

4.ローカルウェアハウスプローブを作成する

[root@git ~]# su - git

[git@git ~]$ mkdir probe.git

[git@git ~]$ cd probe.git

[git@git probe.git]$ git --bare init

[git@git probe.git]$ exit

5.プロジェクト コードのクローンを作成し、作成したウェアハウスと同期します。

[root@git ~]# rz  #上传psi-probe.tar.gz

[root@git ~]# tar xf psi-probe.tar.gz

[root@git ~]# git clone [email protected]:/home/git/probe.git

[root@git ~]# cp -rf psi-probe/* probe/

[root@git ~]# cd probe/

[root@git probe]# git add .

[root@git probe]# git config --global user.email "[email protected]"

[root@git probe]# git config --global user.name "huyang"

[root@git プローブ]# git config --list

[root@git プローブ]# git commit -m "すべてのプローブ"

[root@git プローブ]# git プッシュ オリジン マスター

(4) jenkinsホストの設定

1. ソースコードから jenkins をインストールする

[root@jenkins ~]#rm -rf /usr/bin/java

[ root@jenkins ~]#tar xf jdk-17_linux-x64_bin.tar.gz

[ root@jenkins ~]#mv jdk-17.0.8 /usr/local/java

[root@jenkins ~]#vim /etc/profile

[root@jenkins ~]#source /etc/profile

[root@jenkins ~]#java -version

[root@jenkins ~]# rpm -ivh jenkins-2.401-1.1.noarch.rpm

2.ジェンキンスを開始する

[root@jenkins ~]# jenkins を開始します (開いたままにしておきます)

パスワードは画像の通りです。

[root@jenkins ~]# netstat -lnpt | grep:8080

3. Web設定

ブラウザアクセステスト: http://192.168.1 00.1 32 : 8080

秘密キーを入力してください:

Jenkins のロックを解除し、パスワードをコマンド ラインから取得します。

 認証パスワードを入力し、「次へ」をクリックします

推奨プラグインのインストールを選択する

プラグインを自動的にダウンロードします (ステータスはすべて緑色、次のステップ)

ステータスが赤になります。再起動して再度インストールしてください。

ステータスが赤になり、再起動すれば入ることができますが、プラグインのインストールエラーがあり、影響を受けます。

緑色に変わったら、次の操作を行います。

管理者ユーザーを作成し、管理者アカウントの使用を選択して続行します。

インスタンスの設定を保存して完了です。

クリックして始めましょう

使用する準備ができて!

(5) Jenkinsの設定

1. Jenkins に必要なプラグインをインストールします

Jenkins ホームページで、左側の [Jenkins の管理] >> [プラグインの管理] >> [オプションのプラグイン] をクリックし、フィルター検索ボックスにインストールするSSH 経由で発行 およびMaven 統合プラグインを入力し、左側のチェック ボックスをオンにします。をクリックし、「直接インストール」をクリックすると、プラグインのインストール操作が開始されます。

チェック:

ページの下:

2.検証資格情報を追加する

ここで資格情報を追加するかどうかを選択できます。このテストには資格情報は含まれません。

以下に示す操作:

以下に示す操作:

以下に示す操作:

以下に示す操作:

以下に示す操作:

資格情報ページで「システム」をクリックして「システム」ページに移動します。左側のナビゲーション バーで [ドメインの追加] をクリックします。

「ドメインの追加」ページにジャンプします。このページで「web」というドメイン名を作成し、「ok」をクリックして設定を完了します。

「認証情報の追加」

「+認証情報を追加」をクリックします。

上記のデータを入力した後、「OK」をクリックすると、以下に示すように、新しく追加されたリモート Web ホスト アカウントが表示されます。

3. SSH経由で公開リモートホストを追加

Jenkins ホームページで[Jenkins の管理] -> [システムの構成] -> [SSH 経由で公開] -> [SSH サーバー] -> [追加] オプション ボタンをクリックして、SSH リモート ホストを追加します。

図に示すように、名前、ホスト名、ユーザー名などの必要な情報を入力した後、「詳細」オプションボタンをクリックします -> 「パスワード認証を使用するか、別のキーを使用する」オプションにチェックを入れます -> 「リモート」を入力しますホストのログイン パスワード」 -> 「設定のテスト」を選択して、リモート ホストの設定をテストします。リモート ホスト構成のテストが成功したら、[保存] ボタンをクリックします。

4. Maven、JDK、および Git 環境を構成する

Jenkins ホームページで、「Jenkins の管理」 -> 「グローバル ツール構成」 -> 「JDK」 -> 「JDK の追加」をクリックし、JDK エイリアスを「JDK17」に設定しますこの場合、「自動的にインストール」オプションを削除し、「JAVA_HOME」を JDK の実際のインストール パスに設定します。

/usr/local/java

5. Jenkins に Maven をインストールする

[root@jenkins ~]# tar xf apache-maven-3.5.0-bin.tar.gz

[root@jenkins ~]# mv apache-maven-3.5.0 /usr/local/maven-3.5.0

6. Maven 用の Alibaba Cloud ミラー ステーションを変更する

[root@jenkins ~]# vim /usr/local/maven-3.5.0/conf/settings.xml

#2 つの <mirrors> 内のすべての約 12 行を削除し、次の Alibaba Cloud ミラー ステーションを 2 つの <mirrors> に追加します。

    <鏡>

        <id>nexus-aliyun</id>

        <mirrorOf>中央</mirrorOf>

        <name>ネクサス・アリユン</name>

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

</ミラー>

最終効果

[グローバル ツール構成] 構成インターフェイスで Maven 構成オプションを見つけ、[Maven の追加] をクリックしてエイリアスをmaven3.5.0 に設定します。

7. Gitの設定

[root@jenkins ~]# どの git なのか

/usr/bin/git

上記のグローバル基本構成が完了したら、「保存」をクリックして完了します。

2. Jenkins に基づいて Docker 環境を自動的にパッケージ化してデプロイする

Tomcat ホストの操作:

1. docker-ceをインストールする

[root@tomcat ~]# mkdir /data

192.168.100.133 マシン上で、Tomcat 基本イメージをビルドします。基本イメージをビルドする前に、Docker と JDK をインストールする必要があります。

[root@tomcat ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@ tomcat  ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

[root@ tomcat  ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@ tomcat  ~]# ls /etc/yum.repos.d/

[root@ tomcat  ~]# yum -y install docker-ce

[root@ tomcat  ~]# systemctl start docker

[root@ tomcat  ~]# systemctl ドッカーを有効にする

[root@ tomcat  ~]# docker バージョン

2. Alibaba Cloud イメージ アクセラレータ

[root@tomcat ~]# cat << END > /etc/docker/daemon.json

{

        "レジストリミラー":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

終わり

[root@tomcat ~]# systemctl daemon-reload

[root@tomcat ~]# systemctl restart docker

centos:7 イメージをダウンロード

[root@ tomcat  ~]# docker pull  centos 7

[root@ tomcat ~]# 個の docker イメージ 

3. Tomcat ベースイメージをビルドする 

[root@tomcat ~]# mkdir docker-tomcat

[root@tomcat ~]# cd docker-tomcat

[root@tomcat docker-tomcat]# ls

[root@tomcat docker-tomcat]# cat Dockerfile

[root@ tomcat  docker-tomcat]# docker build -t tomcat:v1 。

[root@ tomcat  docker-tomcat]# 個の docker イメージ

4. Maven プロジェクトをビルドする

上記の設定が完了したら、Jenkins のホームページに戻り、「新しいタスク項目」を選択し、タスク名「probe-docker」を入力し、設定項目「Maven プロジェクト」を選択して、「OK」ボタンをクリックします。現在のページの一番下。

OK」ボタンをクリックした後、「ソースコード管理」を選択し、「Git」を選択し、「リポジトリURL」アドレスを設定します。

[email protected]:/home/git/probe.git

ビルド」を選択 ->パッケージをクリーンアップ -Dmaven.test.skip=true

前の手順の後の「ビルド後のアクション」で「 SSH 経由でビルド アーティファクトを送信する」オプションを選択して続行します。

次に、次のように入力します。

名前:ウェブ

実行コマンド

scp 192.168。1 00.1 3 2:/root/.jenkins/workspace/probe-docker/psi-probe-web/target/probe.war /data/

docker run -itd --name tomcat-test -p 8090:8080 -v /data:/usr/local/apache-tomcat-8.5。40 /webapps tomcat:v1

上記の設定がすべて完了したら、「保存」をクリックします。次に、タスクがビルドされるまで、作成したばかりのエンジニアリング タスク「probe-docker」→「Build new 」をクリックします。進行状況バーをクリックすると、ビルド プロセスを表示できます。

        このエンジニアリング タスクが正常にビルドされ、ビルド後に、Docker プロジェクトの Docker Web 環境を作成するコマンドも正常に実行されたことがわかります。

結果の検証:

[root@tomcat ~]# ls /data/

[root@tomcat ~]# docker ps -a

Webアクセステスト:

http://192.168.100.133:8090/プローブ/

3. JenkinsをベースにしたPHP環境の自動デプロイ

(1) Gitサーバーの操作:

1. git を準備します。

[root@git ~]# su - git

[git@git ~]$ mkdir php.git

[git@git ~]$ cd php.git

[git@git php.git]$ git --bare init

[git@git php.git]$ exit

2.コードをウェアハウスにアップロードします

[root@git ~]# git clone [email protected]:/home/git/php.git

3. テストページを設定する

[root@git ~]# cd php/

[root@git php]# cat << EOF >index.php

<?php

phpinfo();

?>

終了後

4. ローカルおよびリモートの倉庫を提出する

[root@git php]# git add .

[root@git php]# git commit -m "all"

[root@git php]# git プッシュオリジンマスター

[email protected] のパスワード:

(2) Tomcat側の動作:

1. Web ホスティング環境を展開する

[root@tomcat ~]# yum install -y httpd mariadb-server mariadb mariadb-devel php php-mbstring php-mysql php-bcmath php-gd php-xmlrpc php-ldap php-xml libevent libevent-devel net-snmp net- snmp-devel libxml2 libxml2-devel ntpdate

[root@web ~]# systemctl start httpd

[root@web ~]# systemctl start mariadb

アクセステスト:

192.168.100.133:80

(3)ジェンキンスの操作:

1. Jenkins ホストが Web ホストにキーを公開します。

[root@jenkins ~]# su -s /bin/bash jenkins

bash-4.2$ ssh-keygen

bash-4.2$ ssh-copy-id [email protected]

2. rsync に基づくデプロイメント

フリースタイルプロジェクトを作成する

選択: git --> リポジトリ URL を入力

[email protected]:/home/git/php.git

ビルドステップに次のように入力し、「OK」をクリックします。

rsync -avz --delete * [email protected]. 1 00.1 3 3:/var/www/html/

「今すぐビルド」をクリックしてコンソール出力を表示します。

コンソール出力を表示する

結果の検証:

[root@web ~]# ls /var/www/html/

[root@web ~]# cat /var/www/html/index.php

Webアクセステスト:

http://192.168.100.133

4. ansibleをベースにしたPHP環境のデプロイ

ジェンキンスの操作:

1. Ansible ソフトウェアをダウンロードする

[root@jenkins ~]# rpm -ivh epel-release-latest-7.noarch.rpm

[root@jenkins ~]# yum -y ansible をインストールします

[root@jenkins ~]# vim /etc/ansible/hosts

2. jenkins 実行ユーザーを変更する

[root@jenkins ~]# vim /etc/sysconfig/jenkins

[root@jenkins ~]# killall -9 java

[root@jenkins ~]# jenkinsを開始します 

3. Ansible プラグインを追加する

「jenkins の管理」-->「プラグイン」を選択します。

ansible プラグインを検索してインストールする

4. 新しいタスクを作成し、アイテム --> フリースタイル プロジェクトを選択します。

php-ansible という名前

5. git リポジトリと Web クライアントにキーを送信します。

[root@jenkins ~]# ssh-keygen

[root@jenkins ~]# ssh-copy-id [email protected]

[root@jenkins ~]# ssh-copy-id [email protected]. 1 00.1 3 3

選択: git --> リポジトリ URL を入力

[email protected]:/home/git/php.git

入力内容:

ホストパターン:ウェブ

インベントリ:ファイルまたはホストリストを選択します

/etc/ansible/hosts と入力します。

モジュール同期

モジュールの引数または実行するコマンド
     src=${WORKSPACE} dest=/var/www/html rsync_opts=--exclude=.git

最後に「保存」をクリックします

「今すぐビルド」をクリックしてコンソール出力を表示します。

コンソール出力を表示する

結果テスト:

[root@tomcat ~]# ls /var/www/html/

[root@tomcat ~]# ls /var/www/html/php-ansible/

[root@tomcat ~]#

猫 /var/www/html/php-ansible/index.php

Webアクセステスト:

http://192.168.100.133/php-ansible/

おすすめ

転載: blog.csdn.net/2302_77582029/article/details/132455079