目录
1. 安装jenkins
2. 安装maven
3. 安装svn
3.1 代码库创建:
3.2 配置版本库:
3.3 查看:
3.4 查看SVN进程:
3.5 停止重启SVN:
3.6 测试连接:
4. jenkins 配置
4.1 系统管理-->系统设置
4.2 系统管理-->全局工具设置
4.3 系统管理-->插件管理
4.3.1 自动安装
4.3.2 手动安装
5. 创建快照:
5.1 新建一个任务
5.2 构建历史
5.3 源码管理,此处选择svn
5.4 maven 编译
5.5 远程部署,需要安装Publish Over SSH插件
6. shell脚本
7. 邮件发送配置
7.1 开通qq邮箱的SMTP服务 (其他邮箱同理)
7.2 jenkins默认邮件测试
7.3 JOB构建时发送邮件
7.4 安装插件
7.5 邮件拓展
8. 拓展
下载地址:下载地址
上传到linux 任意位置
安装命令 :sudo rpm -ih jenkins-1.562-1.1.noarch.rpm
设置环境:vim /etc/rc.d/init.d/jenkins
添加java路径, 注意: 路径不是到最外层,要到bin文件夹的java文件
访问: ip:8080
复制/var/lib/jenkins/secrets/initialAdminPassword 的密码登录
工作空间:/var/lib/jenkins/workspace/
下载地址:http://maven.apache.org/download.cgi 注意下载bin文件
解压:tar -zxvf apache-maven-3.5.4-bin.tar.gz
创建指向: ln -s /home/yangguang/utils/apache-maven-3.5.4 /var/maven
添加环境变量:
export MAVEN_HOME=/var/maven
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
加载资源文件:source /etc/profile
安装:yum install subversion
查看是否安装成功:svnserve --version
安装完成后要建立SVN库
#mkdir -p /opt/svn/repositories
#svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
a.进入上面conf文件夹下,进行配置:
用户密码passwd配置:
#vi + passwd //+表示光标放在文件最低端
修改passwd为一下内容:
[users]
#harry = harryssecret
#sally = sallyssecret
admin=123456
b. 权限控制authz配置:
#vi + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
admin=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
admin=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
权限配置文件中出现的用户名必须已在用户配置文件中定义。
对权限配置文件的修改立即生效,不必重启svn。
c. 服务svnserve.con配置:
vi + svnserve.conf
添加一下内容:
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
d. 配置防火墙端口(如果需要):
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
service iptables restart
a. 启动SVN
svnserve -d -r /opt/svn/repositories
#ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
检测SVN端口
#netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
#killall svnserve //停止
#svnserve -d -r /opt/svn/repositories // 启动
svn 地址:svn://IP(47.94.167.75)
上传代码
远程部署的Publish Over SSH插件下载之后需要在此处设置部署
TOMCAT_HOME=/home/yangguang/utils/tomcat8/apache-tomcat-8.5.24
#查看进程并杀掉进程
ID=`ps -ef | grep "$TOMCAT_HOME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
for id in $ID
do
kill -9 $id
echo "killed $id"
done
#删除旧的war包等
cd $TOMCAT_HOME/webapps
rm -rf *.war
#拷贝新war包到Tomcat下
cd ../../history/
cp ROOT.war $TOMCAT_HOME/webapps
cd ../apache-tomcat-8.5.24/bin
#启动tomcat
nohup ./startup.sh
Email-ext plugin
Default Content 发送内容可以自定义
(本邮件是程序自动下发的,请勿回复!)
项目名称:$PROJECT_NAME
构建编号:$BUILD_NUMBER
svn版本号:${SVN_REVISION}
构建状态:$BUILD_STATUS
触发原因:${CAUSE}
构建日志地址:${BUILD_URL}console
构建地址:$BUILD_URL
变更集:${JELLY_SCRIPT,template="html"}
点击高级
构建配置
也可以选择 Failure-Any 给部署失败的情况发送
字段解释
①Disable Extended Email Publisher:勾选后,邮件就不发送,看自己的情况喽,如果你想调试某些东西,又不想发邮件出去就可以勾选这个。
②Project Recipient List:收件人地址;多个收件人邮件地址用逗号进行分割;想使用全局默认配置的话,可以使用$DEFAULT_RECIPIENTS。
③Project Reply-To List:允许回复人的地址;想使用系统设置中的默认值的话,可以使用$DEFAULT_REPLYTO;
④Content Type:邮件文档的类型,可以设置HTML等格式;
⑤Default Subject:默认主题,也就是邮件标题;同理可以使用$DEFAULT_SUBJECT
⑥Default Content:默认邮件内容;这里是关键;我这里使用的是模板${SCRIPT, template="groovy-html.template"};后面会讲;当然不想使用模板的话,可以通过使用jenkins自身提供的变量来自己定义;
⑦Attach Build Log:发送的邮件是否包含日志;
下面几个默认就好,最后一个Triggers非常关键;
一定要自己再添加一个Recipient List。
SMTP 使用的端口有:
25 SMTP
25 SMTP STARTTLS
465 SMTP SSL (此端口有加密服务,比较安全)
587 SMTP TLS/STARTTLS