改善の第 4 段階
日時: 2023 年 8 月 23 日
参加者:クラス全員
内 容:
Jenkins に基づいて Docker および PHP 環境をデプロイする
目次
(2) すべてのホストのファイアウォールとselinuxをオフにし、ホスト名を変更します。
2. Jenkins に基づいて Docker 環境を自動的にパッケージ化してデプロイする
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 バージョン
[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/