企业项目开发和自己写程序区别之一可能就是上线发布,新老项目版本的更替同时做到用户产品的无缝连接也是行业追寻的一种标准,放大来说当你想玩游戏,打开客户端看到通知是几点——几点维护更新,还是心情不好的。
搭建Jenkins
开源,免费的CI&CD,构建伟大,无所不能,官网下载。
下载后安装,支持windows,Linux以及IOS版本,以Linux为例,安装前提需要安装JDK,安装方式有很多,这里讲一种war包的安装方法,如图1,下载好tar包以后,上传到/usr/jenkins/目录下,网络允许的话也可以直接在该目录下wget。
#!/bin/bash
# import sysconfig settings and set defaults
[ "${JENKINS_HOME}" == "" ] &&
JENKINS_HOME=/usr/jenkins
[ "${JENKINS_LOG}" == "" ] &&
JENKINS_LOG=/usr/jenkins/logs/jenkins.log #设置存logs的地方,启动出错可以来查logs
[ "${JENKINS_JAVA}" == "" ] &&
JENKINS_JAVA=/usr/bin/java #安装好JDK后验证下此处/usr/bin/java的快捷方式链接,一般是安装好jdk后会自动生成
[ "${JENKINS_JAVAOPTS}" == "" ] &&
JENKINS_JAVAOPTS=""
[ "${JENKINS_IP}" == "" ] &&
JENKINS_IP=0.0.0.0
[ "${JENKINS_PORT}" == "" ] &&
JENKINS_PORT=9090 #按自己的要求设置jenkins端口,不要和已存在的port重合即可
[ "${JENKINS_ARGS}" == "" ] &&
JENKINS_ARGS=""
JENKINS_WAR=${JENKINS_HOME}/jenkins.war
export JENKINS_HOME=$JENKINS_HOME
# check for config errors
JENKINS_ERRORS=()
[ ! -f ${JENKINS_WAR} ] &&
JENKINS_ERRORS[${#JENKINS_ERRORS[*]}]="JENKINS_HOME : The jenkins.war could not be found at ${JENKINS_HOME}/jenkins.war"
[ ! -f $JENKINS_JAVA ] &&
JENKINS_ERRORS[${#JENKINS_ERRORS[*]}]="JENKINS_JAVA : The java executable could not be found at $JENKINS_JAVA"
# display errors if there are any, otherwise start the process
if [ ${#JENKINS_ERRORS[*]} != '0' ]
then
echo "CONFIGURATION ERROR:"
echo " The following errors occurred when starting Jenkins."
echo " Please set the appropriate values at /etc/sysconfig/jenkins"
echo ""
for (( i=0; i<${#JENKINS_ERRORS[*]}; i++ ))
do
echo "${JENKINS_ERRORS[${i}]}"
done
echo ""
exit 1
else
echo "starting service"
echo "nohup nice $JENKINS_JAVA $JENKINS_JAVAOPTS -jar $JENKINS_WAR --httpListenAddress=$JENKINS_IP --httpPort=$JENKINS_PORT > $JENKINS_LOG 2>&1 &"
nohup nice $JENKINS_JAVA $JENKINS_JAVAOPTS -jar $JENKINS_WAR --httpListenAddress=$JENKINS_IP --httpPort=$JENKINS_PORT > $JENKINS_LOG 2>&1 &
fi
可以利用一下代码查了下进程:
ps -ef|grep jenkins
如果不能正常启动,请查看logs下的jenkins.logs,看看是啥错误,正常启动后,在/usr/jenkins目录下会出现很多新的文件家和文件,具体如图2,其中有几个比较常用的folder:
1.logs:存放操作的日志
2.jobs:存放构建的jinkens jobs
3.plugins:存放jenkins上安装的插件,为啥需要安装插件,有了插件后许多功能系统能帮你完成,不需要自己写命令去实现,如安装了git相关的插件后使用git前会帮你自动git fetch,此外,针对有些比较保守的服务器不能联外网安装下载插件的,你可以在可联网的机器下载好对应的插件后,上传到此folder下,再重启下jenkins服务,也是可以的
4.secrets:存放者启动http的jenkins端口后第一次登录需要的初始密码
5.user:jenkins里面的所有用户信息
http://你安装了jenkins服务的IP:9090
会提示你密码在图2的secrets里面,登录进来的界面如图3所示,1处是对应的Jinkens操作lists,多把玩几次就熟了,2处是建立的Jinkens的items,3处是登录的用户名和注销,1处的Manage Jenkins管理Jenkins的信息,包括配置和插件凭据等管理。
新建调度任务
- 点击图1处的新建Item,跳转到图4处,选择Freestyle project,输入项目的名字,点击确定即可;
- 配置Freestyle project,具体如图5,描述写项目简介,源码管理选用Git,按需配置构建触发器和构建环境以及构建和构建后操作,以配置Git源码为例,讲述涉及的一些常用配置。
关于如何配置gitlab,可参考博客拥抱开源——轻量级的代码版本控制神器Gitlab
Repository URL:写git储备库的URL,点进网页的Git项目内,有个Clone按钮,可获取;
Credentials:配置见图7,类型选择SSH Username with private key,Private Key选择Enter directly Key,把自己在git上使用的私钥,注意是私钥写道这里,点击添加即可,相了解git配置ssh key可参考git的使用教程和项目开发规范,如果私钥不准确,回到图4的时候会有红色字体报错权限不对;
Branches to build:写自己想要获取的分支;
源码库浏览器:选gitlab
URL:写对应的git储备库的URL
Version:在网页的git上有个help键,可以点进去看,如图8所示。
按需勾选构建环境,如图10,构建其实就是对应的需要跑的命令,如利用linux调用kettle包;构建后操作一般是错误后发邮件报警。
图11 项目的基本信息