Shellによる導入の自動化
私は命令語が好きです.
最初は黒い画面に字が書かれている様子を見せるために気取っていた理由ですが、最近はこれが一番気持ちがよくて直感的なのでよく使われています.
gitを使用する場合、IDEの機能やgithubデスクトップを使用するよりも、端末にコミットプッシュを簡単に追加するのが好きです.
ソースのインポート時でも、ブランチの切り替え時でも、多くの面から、命令がより直感的で便利だと思います.
したがって、Gitは、導入時にソースコードをインポートして構築し、導入パスに配置し、Tomcatを再駆動する一連のプロセスを毎回1つずつコマンドで入力します.しかし、簡単なエラーを発見したり、ソースコードを修正したり、昨日のようにdependencyチェックができず、1日に何度も配置しなければならない場合、この苦労は負担になります.
ちょうど会社で何度かShellに触れていたのですが、最近ずっと読んでいた李棟旭。'著作'Spring BootとAWSによる個別Webサービス'ではShellを使って導入を自動化する方法も紹介されていたので、関連部分を参考にして、私の都合でShellファイルを作成しました.
shellファイルを実行するには、まずshellファイルを生成する必要があります.
シェルに何か特別なことがあるのかと思ったら、普段使っている命令を入力すればいいのです.
まず,最上位のREPOSTORY,PROJECT,TOMCAT,TODAYを変数として宣言した.
その後の内容はソースに注釈が付けられており、普段もこのような手順で作られています.
shellのechoコマンド、git pull、mvn clean、mvn build、および各種移動コマンドは正常に実行されます.
既存のwarファイルバックアップも正常に実行されていることを確認しました.
テストを行い、正常に実行されていることを確認しました.正常に動作するshellが必要です.導入例.shをtestDeployに配備します.これをshに変更し、別のShellファイルにコピーして、本番導入を自動的に実行します.shと名付けて
shellを実行すると、自動的に自動的に配布されるのを見て、初めて符号化したときのように刺激的に感じました.
コマンドが面白くて楽しくできましたが、いろいろな面から、たくさんの人手が必要な仕事を一度にこなすことができて、「自動化の力がすごい」と感じました.
まるで私の工場があったかのように、
この程度で非常に便利になりましたが、Gitにプッシュするだけで自分で配置できる環境はどれくらい便利でしょうか.
この環境も近いうちに構築したい!
リファレンス李棟旭。著作'Spring BootとAWSによる個別Webサービス
最初は黒い画面に字が書かれている様子を見せるために気取っていた理由ですが、最近はこれが一番気持ちがよくて直感的なのでよく使われています.
gitを使用する場合、IDEの機能やgithubデスクトップを使用するよりも、端末にコミットプッシュを簡単に追加するのが好きです.
ソースのインポート時でも、ブランチの切り替え時でも、多くの面から、命令がより直感的で便利だと思います.
したがって、Gitは、導入時にソースコードをインポートして構築し、導入パスに配置し、Tomcatを再駆動する一連のプロセスを毎回1つずつコマンドで入力します.しかし、簡単なエラーを発見したり、ソースコードを修正したり、昨日のようにdependencyチェックができず、1日に何度も配置しなければならない場合、この苦労は負担になります.
ちょうど会社で何度かShellに触れていたのですが、最近ずっと読んでいた李棟旭。'著作'Spring BootとAWSによる個別Webサービス'ではShellを使って導入を自動化する方法も紹介されていたので、関連部分を参考にして、私の都合でShellファイルを作成しました.
シェルファイルの作成
shellファイルを実行するには、まずshellファイルを生成する必要があります.
mkdir script
cd script
vim deploy.sh
まずscriptというディレクトリを作成し、配置します.shというshellファイルをVimエディタとして開きます.これにより自動的に配置されます.shという名前のファイルを生成しvimエディタとして開きます.#filmUs 프로젝트를 testTomcat에 deploy하는 shell
REPOSITORY=~/gitRepository
PROJECT_NAME=filmUs
TOMCAT=~/tomcat9.0.60_testServer
TODAY=$(date "+%Y%m%d")
cd $REPOSITORY/$PROJECT_NAME/
echo "> git pull"
git pull origin main
echo ">maven clean"
mvn clean
echo "> 프로젝트 Build 시작"
mvn package
echo "> 기존 war 백업"
mv ${TOMCAT}/webapps/ROOT.war ~/backup/ROOT_${TODAY}.war
echo ">ROOT 삭제"
rm -rf $TOMCAT/webaapps/ROOT
echo ">war 파일 배포위치로 이동"
mv $REPOSITORY/$PROJECT_NAME/target/*.war $TOMCAT/webapps/ROOT.war
echo ">tomat 실행"
$TOMCAT/bin/startup.sh
上記のようにコードが記述されています.シェルに何か特別なことがあるのかと思ったら、普段使っている命令を入力すればいいのです.
まず,最上位のREPOSTORY,PROJECT,TOMCAT,TODAYを変数として宣言した.
その後の内容はソースに注釈が付けられており、普段もこのような手順で作られています.
chmod +x ./deploy.sh
shellファイルの作成が完了したら、ファイルの実行権限を付与します.shellファイルの実行
./deploy.sh
Shellファイルがパスにある場合./「ファイル名」を使用してshellファイルを実行できます.shellのechoコマンド、git pull、mvn clean、mvn build、および各種移動コマンドは正常に実行されます.
既存のwarファイルバックアップも正常に実行されていることを確認しました.
shellファイルのクリーンアップ
テストを行い、正常に実行されていることを確認しました.正常に動作するshellが必要です.導入例.shをtestDeployに配備します.これをshに変更し、別のShellファイルにコピーして、本番導入を自動的に実行します.shと名付けて
#prdDeploy.sh
#filmUs 프로젝트를 prdTomcat에 deploy하는 shell
REPOSITORY=~/gitRepository
PROJECT_NAME=filmUs
TOMCAT=~/tomcat9.0.60_filmUs
TODAY=$(date "+%Y%m%d")
cd $REPOSITORY/$PROJECT_NAME/
echo "> git pull"
git pull origin main
echo ">maven clean"
mvn clean
echo "> 프로젝트 Build 시작"
mvn package
echo ">tomcat 중지"
$TOMCAT/bin/shutdown.sh
echo "> 기존 war 백업"
mv ${TOMCAT}/webapps/ROOT.war ~/backup/ROOT_${TODAY}.war
echo ">ROOT 삭제"
rm -rf $TOMCAT/webaapps/ROOT
echo ">war 파일 배포위치로 이동"
mv $REPOSITORY/$PROJECT_NAME/target/*.war $TOMCAT/webapps/ROOT.war
echo ">tomat 실행"
$TOMCAT/bin/startup.sh
実際の実行中のTomcatは常に実行中であるため、中にTomcatを停止するコマンドが追加されているほか、サンプルshellと同じです.#testDeploy.sh
#filmUs 프로젝트를 testTomcat에 deploy하는 shell
REPOSITORY=~/gitRepository
PROJECT_NAME=filmUs
TOMCAT=~/tomcat9.0.60_testServer
cd $REPOSITORY/$PROJECT_NAME/
echo "> git pull"
git pull origin main
echo ">maven clean"
mvn clean
echo "> 프로젝트 Build 시작"
mvn package
echo ">ROOT 삭제"
rm -rf $TOMCAT/webaapps/ROOT
rm -rf $TOMCAT/webapps/ROOT.war
echo ">war 파일 배포위치로 이동"
mv $REPOSITORY/$PROJECT_NAME/target/*.war $TOMCAT/webapps/ROOT.war
echo ">tomat 실행"
$TOMCAT/bin/startup.sh
デプロイ前のテストtomcatは通常実行中ではないため、停止コマンドもバックアップも必要ありません.自動化が刺激的...
shellを実行すると、自動的に自動的に配布されるのを見て、初めて符号化したときのように刺激的に感じました.
コマンドが面白くて楽しくできましたが、いろいろな面から、たくさんの人手が必要な仕事を一度にこなすことができて、「自動化の力がすごい」と感じました.
まるで私の工場があったかのように、
この程度で非常に便利になりましたが、Gitにプッシュするだけで自分で配置できる環境はどれくらい便利でしょうか.
この環境も近いうちに構築したい!
リファレンス
Reference
この問題について(Shellによる導入の自動化), 我々は、より多くの情報をここで見つけました https://velog.io/@shawnhansh/shell을-활용하여-배포-자동화하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol