目录
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. 拓展
1. 安装jenkins
下载地址:下载地址 上传到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/
2. 安装maven
下载地址: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
3. 安装svn
3.1 代码库创建:
安装完成后要建立SVN库
#mkdir -p /opt/svn/repositories
#svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3.2 配置版本库:
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
3.3 查看:
a. 启动SVN
svnserve -d -r /opt/svn/repositories
3.4 查看SVN进程:
#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
3.5 停止重启SVN:
#killall svnserve //停止
#svnserve -d -r /opt/svn/repositories // 启动
3.6 测试连接:
svn 地址:svn://IP(47.94.167.75)
上传代码
4. jenkins 配置
4.1 系统管理-->系统设置
远程部署的Publish Over SSH插件下载之后需要在此处设置部署
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脚本
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
7. 邮件发送配置
7.1 开通qq邮箱的SMTP服务 (其他邮箱同理)
7.2 jenkins默认邮件测试
7.3 JOB构建时发送邮件
7.4 安装插件
Email-ext plugin
7.5 邮件拓展
Default Content 发送内容可以自定义
(本邮件是程序自动下发的,请勿回复!)<br/><hr/>
项目名称:$PROJECT_NAME<br/><hr/>
构建编号:$BUILD_NUMBER<br/><hr/>
svn版本号:${SVN_REVISION}<br/><hr/>
构建状态:$BUILD_STATUS<br/><hr/>
触发原因:${CAUSE}<br/><hr/>
构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>
点击高级
构建配置
也可以选择 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。
8. 拓展
SMTP 使用的端口有:
25 SMTP
25 SMTP STARTTLS
465 SMTP SSL (此端口有加密服务,比较安全)
587 SMTP TLS/STARTTLS