CICD戦闘-Jenkinsを使用して自動展開と環境分離を実現
インストール
jdk
1.jdkがインストールされているかどうかを確認します
[root@10-0-59-231 data]# java -version # 查看是否安装jdk,没有则要安装
-bash: java: 未找到命令
2.利用可能なパッケージを検索します
yum search java |grep -i --color JDK
3.jdkをインストールします
yum install java-1.8.0-openjdk* # 安装1.8 openjdk
4.表示
java -version
#输出
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
PS:yumは環境変数を自動的に構成します。/profilevimなどを表示できます。
ジェンキンス
1. centos7の下にインストールします
yum install jenkins
2.デフォルトのポート番号とgitクローンコードストレージディレクトリを変更します
vim /etc/sysconfig/jenkins
JENKINS_PORT="8088" # 默认8080
JENKINS_HOME="/data/jenkins" # 默认 /var/lib/jenkins
systemctl daemon-reload # 使得配置生效
3.開始
systemctl restart jenkins # 重启
chkconfig jenkins on # 开机启动
構成
1.新しいタスクを作成します
。2。名前を入力し、フリースタイルソフトウェアを選択します。
3.一般的に、古いビルドを破棄するためにチェックします
4.コードウェアハウスをセットアップします。gitlabを使用しているので、Gitを確認してから、コードリポジトリアドレスを貼り付けます。資格情報は、権限を持つユーザーを追加します。
ブランチ指定子:デフォルトでは、マスターからコードをプルしてコンパイルします。通常、リリースはリリースであるため、ここではリリースブランチを使用します。
5.トリガーを作成します。これは設定する必要はなく、使用する必要もありません。
6.環境を構築します。一時的に使用しないので、スキップしてください。
7.ビルドします。「シェルの実行」をクリックしてbuild.shスクリプトを呼び出し、ソースコードのコンパイルを完了します。詳細については、次のセクションを参照してください。
8.ビルド後。「SSH経由でビルドアーティファクトを送信」をクリックして、コンパイルされたパッケージをssh経由でリモートマシンに公開します。詳細については、以下を参照してください。
構築する
1.スクリプトを作成します。
cd ${WORKSPACE} && cd server/paas_build
chmod 777 build_db_proxy_server.sh
./build_db_proxy_server.sh
cd ../
echo 'tar ${pwd}/online.base.im/'
tar -czvf online.base.im.tar.gz online.base.im/
後続のコピー配布を容易にするために、ここにパックして圧縮します。
2.ビルドをテストします。
[今すぐビルド]をクリックすると、以下のビルドの進行状況が表示されます。もう一度クリックすると、特定のビルド結果が表示されます。
分布
SSHサーバーを追加しました
PS:プログラムをローカルでコンパイルした後、プログラムをターゲットマシンにコピーして実行し、プロセス全体を完了する必要があります。
[システム管理]-> [システム設定]をクリックして、一番下にドラッグします。SSHサーバーを見つけて、[追加]をクリックします。
事前に作成する必要のあるリモートディレクトリなどの関連情報を入力します。/ data / appsなどのディレクトリに配置することをお勧めします。このディレクトリは、マシンへのファイルの後続のコピーのルートディレクトリを表します。次に、[詳細設定パスワード]をクリックし、[構成のテスト]をクリックして、構成に問題がないことを確認します。
複数のマシンがある場合は、複数回追加します。
スクリプトを公開する
1.ビルドが完了したら、スクリプトを使用していくつかのインストールアクションを実行する必要があります。[SSH経由でビルドアーティファクトを送信する]をクリックします。
2.サーバーを選択します。WorkSpaceと比較すると、私のパッケージはserver /online.base.im.tar.gzにあります。
プレフィックスの削除:設定されていない場合、削除されるプレフィックス。SSHサーバーによって設定されたリモートディレクトリが/ data / webappsであるとすると、圧縮パッケージがコピーされた後のパスは/data/webapps/server/online.base.im.tar.gzです。
実行コマンド:実行するコマンド。cd / data / webappsなど、実行前に現在の作業ディレクトリを設定してください。
添付のスクリプト:
kill -9 $(pidof db_proxy_server) # 停止进程
sleep 5 # 等一会
cd /data/webapps/
# 备份原程序
mv online.base.imdbproxyserver.service online.base.imdbproxyserver.service.$(date "+%Y%m%d")${BUILD_NUMBER}
tar -zxvf online.base.im.tar.gz
rm -rf online.base.im.tar.gz
mv online.base.im online.base.imdbproxyserver.service
cd online.base.imdbproxyserver.service
cd db_proxy_server
mv libhiredis.so.0.13 libhiredis.so.0.12
ln -s /data/webconf/dbproxyserver.xml dbproxyserver.xml
cd ../
chmod 777 *.sh
./restart.sh db_proxy_server
再構築
このとき、青いボールが表示されるまでスクリプトを調整し続ける必要があります。これは、すべてがエラーなしで途中でスムーズに進んだことを意味します。それからそれは達成されます:
- gitlabから最新のコードを自動的にプルします
- コンパイル
- クラスターを自動的にデプロイする
効果を見てみましょう
。PS:複数のマシンに公開する必要がある場合は、「ビルド後」セクションにSSHサーバーを追加するだけです。
オン
著者に関するCSDNは、
純粋なGolangで記述された独自のオープンソースIMを推奨しています。
CoffeeChat:
https ://github.com/xmcy0011/CoffeeChat
オープンソースim with server(go)and client(flutter + swift)
サーバー(go)とクライアント(flutter + swift)、シングルチャットとロボット(micro、Turing、Sizhi)のチャット機能を含む、TeamTalkやGuazi IMなどの有名なプロジェクトが完了し、現在グループチャット機能が実行されています。開発された、より多くの注意を払うためにフラッターテクノロジーのgolangとクロスプラットフォーム開発に興味を持っているWelcomefriendsStar。
————————————————
著作権表示:この記事はCSDNブロガー「XuFei」のオリジナル記事であり、CC 4.0BY-SA著作権表示に準拠しています。元のソースを添付してくださいリンクとこれを再印刷します。ステートメント。
元のリンク:https://blog.csdn.net/xmcy001122/article/details/105665732
参照:https://www.jianshu.com/p/5f671aca2b5a
参照:http://www.linuxboy.net/linuxjc/144365.html