保守開発でのLinux本番リリース作業


私自身大手SIerで大規模システム開発に参画することが多いです。

タスクが細分化された現場故、本番リリース作業に携わることは早々ありませんでした。

ただし規模の小さな会社ですと、企画・設計〜開発・試験、そして本番リリース・保守運用と、一気通貫で一人で担当する案件もあり、そんな現場に参画した時は結構苦労します。

元々インフラに難があった私も、コンソール上での作業に戸惑いを感じつつ、幾つかの案件で開発から本番リリースまでを経験しましたが、その時にリリース作業をメモ書きで公開。

ログイン先・ユーザの確認

作業先サーバに、正しいユーザでログイン。

Windows環境であればtera termで、Macであればターミナルで作業することが多い。

//オペレーティングシステム名表示
uname -a

//ユーザー確認
whoami

正しい作業サーバであるか、正しい作業ユーザであることを確認し誤っていればログアウトする。

リリース対象ソースの取得

私の現場ではSVNを利用していたので、以下にSVNコマンドを記載。

//ソース取得
svn export URL

例えば・・・
svn export http://xxxx.yyyy.zzzz.ad.jp/repos/Source/tags/REL-1.0

上記コマンドは作業先サーバのしかるべき場所で実行する。

本番リリース作業

以下手順を実施して誤ったプログラムが本番リリースされないように注意。

//1 差異比較
diff /home/dev/source/test1.yml /home/hon/source/test1.yml

//2 ファイル情報確認
ls -l /home/hon/source/test1.yml
ls -l /home/hon/source/test2.yml

//3 権限変更
chmod 644 /home/dev/source/test1.yml
chmod 644 /home/dev/source/test2.yml

//4 チェックサム
cksum /home/hon/source/test1.yml
cksum /home/hon/source/test2.yml

//5 リリースディレクトリ作成
mkdir -p /home/release/source

//6 リリースディレクトリへコピー
cp -vp /home/hon/source/test1.yml /home/release/source/test1.yml
cp -vp /home/hon/source/test2.yml /home/release/source/test2.yml

//7 tarファイル化(新規tarファイル作成)
tar -cvPf Tag1.tar /home/release/source/test1.yml

※既存tarファイル追加時
tar -rvPf Tag1.tar /home/release/source/test2.yml

//8 zipファイル化
gzip -v Tag1.tar

上記手順によりリリース対象ファイルをzip化した後、本番環境で展開してリリース。

リリース後のログ監視

リリース後は不具合が起きていないか、ログ監視実施。

tail -fn 行数 対象ログ

例)
tail -fn 100 /var/log/app.log
tail -fn 100 /var/log/app.log | grep 'test'

いつもこの瞬間はドキドキして吐き気が止まらない...