0x01 jenkins介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
0x02 环境介绍
#一共1台服务器
jenkins.010sec.com 10.10.10.30
maven.010sec.com
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
#下载第三方依赖环境包
yum -y install epel-release
#设置host
cat >>/etc/hosts <<EOF
10.10.10.30 jenkins.010sec.com
EOF
#关闭selinux,需要重启
sed -i 's:SELINUX=enforcing:SELINUX=disabled:g' /etc/selinux/config
#临时关闭seLinux
setenforce 0
#重启
reboot
0x03 服务器环境安装
## 安装基础软件,jdk,tomcat安装
# 下载java
wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz
# 解压
tar zxf jdk-8u121-linux-x64.tar.gz
mv jdk1.8.0_121/ /opt/xxx/java
# 设置环境变量
vi /etc/profile/jdk.sh
export JAVA_HOME=/opt/xxx/java/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 启动环境变量
source /etc/profile
# 测试java环境变量
java -version
# 下载tomcat
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.77/bin/apache-tomcat-7.0.77.tar.gz
# 解压tomcat
tar zxf apache-tomcat-7.0.77.tar.gz
mv apache-tomcat-7.0.77 /opt/xxx/tomcat
# 设置启动脚本
cp -p /opt/xxx/tomcat/bin/catalina.sh /etc/init.d/tomcat
# 设置启动脚本环境变量
vi /etc/init.d/tomcat
JAVA_HOME=/opt/xxx/java/
CATALINA_HOME=/opt/xxx/tomcat
# 给启动脚本增加权限却设置为自启
chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on
# 启动tomcat
service tomcat start
# 下载jenkins
wget http://mirrors.jenkins.io/war/2.80/jenkins.war
# 将jenkins.war 放到 /opt/xxx/tomcat/webapps/ 目录下面,默认tomcat开启自动解压操作
0x04 环境搭建
## jenkins服务器上需要配置专门作为jenkins使用ssh
ssh-keygen -C "jenkins@010sec.cn" -t rsa -f ~/.ssh/id_rsa_jenkins
cat ~/.ssh/id_rsa_jenkins.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDoG06AWYwNU5eL8cOEMGIbZA3BbFGELDonRouvqjHTDYFO3onDWxLmRjGWC2zwaTzqm9UgSlRMW4wxZWXzbmUEfTTVayCAycBRLVvmD3Uol+lxpuFr7jbTvPWUAUsx6h6ev/lNhGg+cMZWiD16n/aYEw74znMTjiQqepCtBAVdC3/vGLRvWemyfv0I4ETFOPaIghxe/g72I3eRQz21YU70GYOKnYSugQKiUPN92PYXnZ3g5TPCw2VhQsX7YWnpK7JgLqjZXGx4Klh2edEeRfjZ7QPvIgXezZgv+5QcMnulcKzavRu2A2g/IhG5sntYcTV+lzNJkq5nDB3NbkmCw1Ld jenkins@010sec.cn
## 操作github web页面
## 在jenkins服务上的操作
# 测试
$ssh -T git@git.010sec.cn
Welcome to GitLab, jenkins!
# 下载代码github代码,准备传到个人gitlab上去
mkdir springboot && cd springboot
git clone https://github.com/dyc87112/SpringBoot-Learning.git
# 下拉个人gitlab仓库内容
git clone git@git.010sec.cn:springboot/HelloSpringBoot.git
Cloning into 'HelloSpringBoot'...
warning: You appear to have cloned an empty repository.
# 把hellospring放入我们git仓库提交
cp -r SpringBoot-Learning/Chapter1/* HelloSpringBoot/
cd HelloSpringBoot && git add -A && git commit -m 'helloworld' && git push -u origin master
## 针对于线上服务器的操作,将id_rsa_jenkins.pub内容加到免登入认证
$cat .ssh/authorized_keys
...
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDoG06AWYwNU5eL8cOEMGIbZA3BbFGELDonRouvqjHTDYFO3onDWxLmRjGWC2zwaTzqm9UgSlRMW4wxZWXzbmUEfTTVayCAycBRLVvmD3Uol+lxpuFr7jbTvPWUAUsx6h6ev/lNhGg+cMZWiD16n/aYEw74znMTjiQqepCtBAVdC3/vGLRvWemyfv0I4ETFOPaIghxe/g72I3eRQz21YU70GYOKnYSugQKiUPN92PYXnZ3g5TPCw2VhQsX7YWnpK7JgLqjZXGx4Klh2edEeRfjZ7QPvIgXezZgv+5QcMnulcKzavRu2A2g/IhG5sntYcTV+lzNJkq5nDB3NbkmCw1Ld jenkins@010sec.cn
#关于以上内容,存在的问题如下
最后一段为 exec nuohup java -jar
# 理解构建,会出现1箭头,了、蓝色成功,黄色编译未成功,红色代表环境失败
#可以通过如下方式查看报错信息,从而找到解决方案
# 本次编译为蓝色,且提示为successed,然后尝试在客户端运行下
## 到此,gitlab、nexus、maven和jenkins结合发布项目结合自动发布(devops)
0x05 权限管理
## 在插件中已经安装了Role-based Authorization Strategy ,我们现在开始使用它的功能
# 上述图片中,(?i) 代表不区分大小写 、 .* 代表任意匹配 、 | 代表分隔符
# 已经使用新的登录验证模式,所以查看注册新账号登录
# 发现登录不成功,返回主账号,使用主账号修改
# 现在 c4rt1y账号可以登录
0x06 资料来源
http://blog.csdn.net/reblue520/article/details/76287541
http://blog.csdn.net/jamenew/article/details/54864542
http://blog.csdn.net/csolo/article/details/78159521
https://github.com/liangdas/mqant
https://www.cnblogs.com/ceshi2016/p/6529453.html
https://www.cnblogs.com/jwrwst/p/6520114.html
http://www.yiibai.com/jenkins/jenkins_metrics_and_trends.html
http://blog.51cto.com/abcdocker/2136114 Jenkins 自动化部署上线
http://mirrors.jenkins.io/war-stable/