使用Jenkins和Rex的持续部署

连续部署与Jenkins和雷克斯

在本教程中,我将向您展示如何使用jenkins作为ci工具和Rex作为部署工具进行连续部署。 我们将一起建立Jenkins,构建和测试流程,Subversion版本库和Perl应用程序示例。

本教程也可用于Java,PHP,Rails,...项目。 但是为了简单起见,我选择了Perl。

这个方法专注于Ubuntu LTS 11.04,但也可以用其他Linux发行版来完成。 对于Jenkins来说,你只需要一个Java环境和Rex,你只需要Perl 5.8(我推荐= = 5.10)和一些Perl模块(见http://rexify.org/ )。

请阅读http://rexify.org/howtos/start.html以简要介绍Rex的内容及其工作原理。

制备

您需要以下系统。 确实可以在一个系统上构建一切,但在本教程中,我将为每个服务使用单独的系统。

  • 持续集成服务器(简称:CI服务器)。 这是Jenkins和测试运行的系统。 (Ubuntu 11.04 LTS)
  • Subversion Server(Ubuntu 11.04 LTS)
  • 2测试Web服务器。 这将是我们将部署我们的测试项目的系统。 (Ubuntu 11.04 LTS)
  • 您的工作站(无论什么操作系统,我喜欢Ubuntu,Debian或Mac OS X)

安装Rex

安装它:您的工作站,CI服务器

Rex有多个可用的预构建软件包。 看看http://rexify.org/get/

您也可以通过CPAN安装Rex:

sudo sh -c "curl -L cpanmin.us | perl - Rex"
sudo sh -c "cpanp -i --skiptest Rex::Apache::Deploy"

要构建Rex,您需要以下依赖关系:

  • 建立至关重要
  • libexpat1-dev
  • libssh2-1-dev
  • zlib1g-dev
  • libssl-dev

不要忘记在您的Jenkins服务器上安装Rex和Rex :: Apache :: Deploy。 您至少需要Rex 0.19.0和Rex :: Apache :: Deploy 0.7.0。

安装Tomcat

安装它:CI服务器

起初我们将安装Jenkins。 启动shell并使用apt-get安装tomcat6和tomcat6-admin。 如果需要,可以使用这个howto来显示如何使用Rex安装Tomcat,然后跳转到第2步“部署Jenkins”。

sudo apt-get install tomcat6 tomcat6-admin

现在打开文件/etc/tomcat6/tomcat-users.xml并用以下内容替换内容。

 <?xml version='1.0' encoding='utf-8'?>
 <tomcat-users>
    <role rolename="manager"/>
    <user username="manager" password="passw0rd" roles="manager"/>
 </tomcat-users>

现在重新启动Tomcat。

sudo /etc/init.d/tomcat6 restart

部署Jenkins

安装它:CI服务器

http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载Jenkins。

wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

首先,您需要创建目录/usr/share/tomcat6/.jenkins并将其所有者更改为tomcat6。

sudo mkdir /usr/share/tomcat6/.jenkins
sudo chown tomcat6: /usr/share/tomcat6/.jenkins

现在打开一个web浏览器,然后转到http:// your-ci-server:8080 / manager / html并选择jenkins.war进行部署。

部署Jenkins后,去http:// ci-server / jenkins /

好的,如果你看到下面的截图,一切正常。

接下来,您将创建一个Subversion仓库,其中示例项目被管理。

示例存储库

安装它:Subversion Server

sudo apt-get install subversion libapache2-svn apache2

安装软件包后,编辑文件/etc/apache2/mods-enabled/dav_svn.conf

 <Location /svn>
    # enable svn
    DAV svn
    # set parent path to allow multiple repositories
    SVNParentPath /var/lib/svn
 </Location>

保存文件并创建存储库。

sudo mkdir /var/lib/svn
sudo cd /var/lib/svn
sudo svnadmin create webapp
sudo chown -R www-data: .
sudo /etc/init.d/apache2 restart

示例项目

好的,创建存储库后,切换回工作站,查看并创建一个小项目。 我选择了一个Mojolicious Project( http://mojolicio.us ),因为它很容易设置和处理。

如果您知道如何设置Jenkins与其他项目一起工作,例如PHP,RubyOnRails,Java,...可以随意使用自己的项目。

首先安装Mojolicious:

sudo sh -c "curl -L cpanmin.us | perl - Mojolicious"

也可以在您的CI服务器和Web服务器上安装Mojolicious。

安装后创建mojo应用程序。

svn co http://your-svn-server/svn/webapp
cd webapp
mojo generate app MySite
cd my_site
mojo generate makefile
sed -ie 's/MyApp/MySite/g' Makefile.PL
sed -ie 's/my_app/my_site/g' Makefile.PL
rm Makefile.PLe

现在为内置的网络服务器Hypnotoad创建一个配置文件。 创建一个新的文件hypnotoad.conf并在其中放入以下行。

 {
    listen   => ['http://*:80'],
    workers  => 5,
    pid_file => '/var/run/hypnotoad.pid',
    user     => 'www-data'
 };

好的,这是第一次尝试。 您可以通过启动开发服务器来查看应用程序。

./script/my_site daemon

这将在您的工作站上启动端口3000上的开发服务器。

将所有内容添加到subversion并提交。

cd ../..
svn add my_site
svn ci -m "inital commit"

安装TAP :: Harness :: JUnit

安装它:CI服务器

要获得Jenkins兼容的测试输出,我们需要安装另一个perl模块。 这个模块叫做TAP :: Harness :: JUnit。

不要忘记依赖

sudo apt-get install curl build-essential
sudo sh -c "curl -L cpanmin.us | perl - TAP::Harness::JUnit"
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏