blog

jenkinsをベースにgitを組み合わせ、Webアプリケーションのマルチサーバー一括リリースを実現する

説明に基づいてリポジトリとしてsvnのために、jenkinsのデプロイメントリリースに基づいてWebプログラムに関するいくつかのブログ記事をリリースした前の期間の結果として。今回はいくつかの友人が私に...

Jul 18, 2025 · 5 min. read
シェア

それは説明するリポジトリとしてsvnに基づいているため、jenkinsのデプロイメントリリースに基づいてWebプログラムに関するいくつかのブログ記事をリリースした前の期間の結果として。今回は、プログラムのリリースを達成するために、プログラムのバージョンを指定するためにsvnタグを選択するようなソリューションの実装と組み合わせたjenkinsとリポジトリとして私にgitを尋ねたいくつかの友人があります。

時間と理由がありますが、この記事ではあまり詳細に入ることはありません、読者が把握するために行うことができます!

さっそくですが、本番環境へのデプロイに現在使用しているjenkinsのスクリーンショットをお見せしましょう!

コンフィギュレーションのスクリーンショットを以下に示します。

gitパラメータプラグインをテストした後、需要を満たすことができないので、あなただけのjenkinsで独自のタグリストを作成することができます。

拡張可能なドロップダウンメニューを作成し、指定されたgitバージョンのプログラムのタグのリストをプログラムで生成します。

アプリケーションのソースコードを管理するために、gitリポジトリのURLにアプリケーションのgitアドレスを追加します。

以下の2つのオプションが可能です。

特定のタグへのチェックアウト:このステップは重要です。

この時点で、jenkinsとgitの統合は達成されました!これは、少し前に投稿したデプロイメントシリーズのsvnとgitの違いでもあります!

に関しては部分に関しては変更はありません!

オンラインのgitプラグインインストールの下でjenkinsは、ここの多くはもはや導入されていません!

ひとつ覚えておいてほしいのは、gitタグリスト機能は自分のニーズに合わせて開発できるということです!

これは私が自分のニーズに合わせて実装したものです。

まずはプログラムの構成図から。

git.php

2345678910111213141516171819202122232425262728293031323334353637383940 <?php   
$giturl=$_REQUEST["giturl"];   
$arr=explode("/",$giturl);   
$names=$arr[count($arr)-1];   
$namearr=explode(".",$names);   
$name=$namearr[0];   
$rebuild=true;   
$tagpath="/var/www/tags/list/$name";   
if(file_exists($tagpath))   
{   
    $content = file_get_contents($tagpath);   
    $tags=explode("
",$content);   
    //unlink($tagpath);   
    unset($tags[count($tags)-1]);   
    if(count($tags)>0)   
    {   
        $tags=array_reverse($tags);   
        echo "tags=".implode(",",$tags);   
    }   
    else{   
        echo "tags= no tags";   
    }   
    $ctime=filectime($tagpath);   
    $now=time();   
    $ti=$now-$ctime;   
    if($ti<60)   
    {   
        $rebuild=false;   
    }   
}   
else  
{   
    echo "tags= Is loading tags ; please try again later";   
}   
if($rebuild)   
{   
    $cmd="echo $name $giturl > /var/www/tags/info/$name";   
    exec($cmd,$info,$rebt);   
}   
?>  

inotify.sh

#!/bin/bash   
#create by lhb   
#date 2014-02-08   
#monitor file change   
workplace=/var/www/tags  
src=$workplace/info/  
lists=$workplace/list  
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e close_write $src \   
   | while read file  
    do  
   fn=`echo $file |awk '{print $3}'`   
   arr=(`cat $fn |awk '{print $1,$2}'`)   
   pro_name=${arr[0]}   
   pro_url=${arr[1]}   
   #echo $pro_name   
   #echo $pro_url   
   /bin/bash $workplace/get_tags.sh $pro_name $pro_url > $lists/$pro_name   
   chown www-data:www-data $lists/$pro_name   
   echo $?   
 done 

get_tags.sh

#!/bin/bash   
#create by lhb   
#date 2014-02-08   
#get git code tag list   
codepath=/tmp/$1   
[ -d "$codepath" ] || {   
  cd /tmp/  
  /usr/bin/git clone $2 &> /dev/null  
}   
cd $codepath   
/usr/bin/git pull &> /dev/null  
/usr/bin/git tag   
rm -rf $codepath 

シェルスクリプトを実行します。

ブログのアドレス

Read next

System Center 2012: サービステンプレートのセットアップ方法

Microsoft System Center 2012 は、特にアプリケーション・サービスのデプロイに関して、IT as a Service を提供するために使用できます。この記事では、一貫性と再現可能な予測可能性を確保しながら、サービスとして IT を提供するのに役立つサービス テンプレートを設定する方法について説明します。

Jul 18, 2025 · 11 min read