电商发布系统构建

拓扑图以下:

 

1、Jenkins搭建php

一、安装最新的linux系统CentOS-7-x86_64-Minimal,更新系统以及安装软件html

yum upgrade -y && yum update -yjava

yum install epel-release lrzsz vim net-tools unzip wget gcc g++ cmake git svn -ymysql

二、添加系统用户apps,安装jdk1.8。执行以下命令:linux

useradd appsnginx

mkdir -p /apps/svrgit

tar -zxf jdk-8u131-linux-x64.tar.gz -c /apps/svrgithub

ln -s /apps/svr/jdk1.8.0_131 /apps/svr/jdkweb

修改apps用户的home目录下的配置文件.bashrc,追加以下内容:sql

export JAVA_HOME=/apps/svr/jdk

export JRE_HOME=/apps/svr/jdk/jre

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CLASSPATH

三、下载最新的LTS版的Jenkins包(Generic java package)到路径/apps/svr/tomcat,用apps用户后台启动。

Java -jar jenkins.war &

四、安装maven。

下载最新的apache-maven-3.3.9-bin.zip包,解压到/usr/local路径,修改/etc/profile,增长:

export MAVEN_HOME=/usr/local/apache-maven-3.3.9

PATH=$PATH:$MAVEN_HOME/bin

修改maven的配置文件/usr/local/apache-maven-3.3.9/conf/settings.xml,增长访问nexus私服的设置。

六、安装Jenkins插件。浏览器打开http://IP地址:8080,打开Jenkins的安装界面,安装全部的推荐插件,包括Multiple SCMs plugin。

七、配置Jenkins工具。登陆Jenkins,打开系统管理(manage Jenkins),进入global tool configuration

a)JDK

Name jdk1.8

JAVA_HOME /apps/svr/jdk1.8.0_131

若是想要多个jdk版本,能够选择新增JDK。

b)git

Name Default

Path to Git executable git

c)Maven

Name apache-maven-3.3.9

MAVEN_HOME /usr/local/apache-maven-3.3.9

八、添加拉取gitlab代码凭证。登陆Jenkins,在credentials,system,global credentials下,选择add credentials,输入gitlab系统的帐号密码。

2、Jenkins的使用

Jenkins工做目录在apps用户的home目录下,一个隐藏文件夹.jenkins。从gitlab拉取回来的代码都在workspace目录下。

如下以新建order-prod项目为例:

一、登陆Jenkins,点击“new item”,输入项目名字order-prod,选择“maven project”。

二、在“Source Code Management”(源码管理),选择Multiple SCMs(前面须要安装插件Multiple SCMs plugin),而后选择Add SCM中的git,“Repository URL”填写项目代码的gitlab路径,credentials选择以前添加的凭证,也能够如今add添加。“Branch Specifier”填代码分支名字。再次择Add SCM中的git,此次添加项目的配置文件的gitlab路径,凭证分支,而后选择“additional behaviours”,再选择“check out to a sub-directory”,手动指定从gitlab拉取下来的文件的存放路径,这里我填写/home/apps/.jenkins/workspace/order-prod-config。

三、在“pre steps”,选择“add pre-build step”中的“execute shell”,在command中输入shell命令“cp /home/apps/.jenkins/workspace/kepler-prod-config/* /home/apps/.jenkins/workspace/kepler-prod/src/main/resources/”,这个命令是在maven打包构建以前替换项目代码里面的配置文件。测试环境,灰度环境,正式环境都用不一样的配置文件。

四、在“build”中,“ROOT POM”填写pox.xml,goals and options填写“clean install  -Dmaven.test.skip=true”。这里是maven构建的命令。

五、在最后“post steps”,首先选择“run only if build succeeds”,“execute shell”填写命令“cp -R /home/apps/.jenkins/workspace/kepler-prod/target/kepler-service-1.0.0-SNAPSHOT.jar /home/apps/svn_mall/sadoc/kepler/ && cd /home/apps/svn_mall/sadoc/kepler && svn add kepler-service-1.0.0-SNAPSHOT.jar && svn commit -m "kepler update"”。这个命令实际上就是利用把构建好的待发布的包,上传到SVN服务器。在此以前,须要登陆服务器,在/home/apps/svn_mall/路径执行“svn --username=xingmaogou co svn://192.168.100.7/sadoc”,这里username为SVN的用户名,IP地址替换为相对于的公网IP地址,而后执行“svn add kepler-service-1.0.0-SNAPSHOT.jar”。

这样,Jenkins这端配置完成。

3、SVN服务器搭建

SVN服务器搭建在生产环境所在的内网,生产环境的walle服务器能访问,而且须要映射端口出来给公司内外Jenkins访问。

一、yum安装SVN服务器

首先看系统是否安装了svn,rpm -qa subversion,若是已经安装,须要先行卸载。而后

yum -y install  subversion

二、配置SVN而且启动

指定svn的数据存储路径

      mkdir -p /application/svndata

      指定svn的配置文件信息路径

      mkdir -p /application/svnpasswd

      启动svn服务

       svnserve -d -r /application/svndata/

三、检测svn服务是否正常启动,若是能看到下图所示则证实启动成功

       第一经过进程检测

        ps -ef | grep svn

       第二经过端口3690检测

       netstat -lntup | grep 3690

       第三经过文件检测,须要root用户才能够执行

       lsof -i :3690

四、使用svnadmin创建svn项目版本库

      查看建立项目版本库命令

      svnadmin --help

      svnadmin help create

      建立sadoc版本库

       svnadmin create /application/svndata/sadoc

五、配置sadoc版本可的权限

     进入sadoc版本库配置目录,并备份配置文件

    cd /application/svndata/sadoc/conf/

    cp -p svnserve.conf svnserve.conf.default

    进行详细配置

     anon-access = none //禁止匿名访问

     auth-access = write //认证后有读的权限

     password-db = /application/svnpasswd/passwd //指定密码文件

     authz-db = /appplication/svnpasswd/authz //指定权限认证文件

六、复制passwd和authz文件到sadoc的svnpasswd目录并修改权限

      执行以下命令完成操做

      cp -p authz passwd /application/svnpasswd/

      cd /application/svnpasswd/

      chmod 700 authz passwd

七、为Svn版本库建立用户并受权访问指定项目版本库

      编辑passwd文件配置用户和密码

      vi passwd 

      xingmaogou = xingmaogou

      xingyuan  = xingyuan

      编辑authz文件配置读取权限

       [<版本库>:/项目/目录]

       @<用户组名> = <权限>

       <用户名>  = <权限>

八、从新启动svn服务进行验证

      杀死svn服务

       pkill svnserve

       启动svn

       svnserve -d -r /application/svndata/

       备注:修改passwd和authz文件不须要重启svn服务而修改svnserve.conf则须要

九、最后安装客户端进行sadoc的配置是否正确

       svn --username=xingmaogou co svn://121.xxx.xxx.xx9/sadoc

4、walle发布系统搭建

Walle为专门国产开源的发布系统,能够多台主机,多种环境,多用户执行发布任务,而且能够回滚。https://walle-web.io/。相对于Jenkins搭建在公司内外,walle须要安装在生产环境的内网。安装注意参照官方文档https://walle-web.io/docs/installation.html。可是须要注意的地方有几点

一、安装SVN客户端而且可否访问前面搭建的SVN服务器

二、安装yum安装nginx,PHP,而且都用同一个用户启动,修改nginx,和PHP-fpm配置文件,启动用户都用apps。

三、yum安装php相关软性的时候,如yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-fpm,软件名字都不须要“56w”,不然会安装失败。

四、邮箱配置是在walle的PHP项目工程的config文件夹下的local.php配置,具体参照https://github.com/meolu/walle-web

五、walle配置,在管理员登陆walle以后,在项目配置中,新建项目。特别须要注意的是,“宿主机”下,“代码检出仓库”是位于walle系统所在linux主机。目标机器就是生产环境所在主机,用户为apps用户,webroot目录须要特别注意,这个路径在服务器上只须要建立到父一级,好比你填写的是“/data/www/walle”,可是在生产服务器上只能建立目录“/data/www”。

六、walle服务器的ssh公钥须要放到全部目标服务器的apps用户下,信任从而能免密码登录。

所有配置好以后,普通用户邮件申请帐号,管理员添加项目而且给普通用户授发布权限。

七、高级任务里,能够填写shell命令用于重启程序。

八、“分支/tag上线”选择“无trunk/无branches”,而后开启审核。

相关文章
相关标签/搜索