c4rt1y

jenkins 安装与使用

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页面

git01 git02 git03 git04 git05 git06 git07 git08

## 在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

git09

## 针对于线上服务器的操作,将id_rsa_jenkins.pub内容加到免登入认证
$cat .ssh/authorized_keys
...
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDoG06AWYwNU5eL8cOEMGIbZA3BbFGELDonRouvqjHTDYFO3onDWxLmRjGWC2zwaTzqm9UgSlRMW4wxZWXzbmUEfTTVayCAycBRLVvmD3Uol+lxpuFr7jbTvPWUAUsx6h6ev/lNhGg+cMZWiD16n/aYEw74znMTjiQqepCtBAVdC3/vGLRvWemyfv0I4ETFOPaIghxe/g72I3eRQz21YU70GYOKnYSugQKiUPN92PYXnZ3g5TPCw2VhQsX7YWnpK7JgLqjZXGx4Klh2edEeRfjZ7QPvIgXezZgv+5QcMnulcKzavRu2A2g/IhG5sntYcTV+lzNJkq5nDB3NbkmCw1Ld jenkins@010sec.cn

jenkins01 jenkins02 jenkins03 jenkins04 jenkins05 jenkins06 jenkins07 jenkins08 jenkins09 jenkins010 jenkins011 jenkins012 jenkins013 jenkins014

#关于以上内容,存在的问题如下

jenkins015

最后一段为 exec nuohup java -jar 

# 理解构建,会出现1箭头,了、蓝色成功,黄色编译未成功,红色代表环境失败

jenkins016

#可以通过如下方式查看报错信息,从而找到解决方案

jenkins017 jenkins018

# 本次编译为蓝色,且提示为successed,然后尝试在客户端运行下

client01

## 到此,gitlab、nexus、maven和jenkins结合发布项目结合自动发布(devops)

0x05 权限管理

## 在插件中已经安装了Role-based Authorization Strategy ,我们现在开始使用它的功能

jenkins019 jenkins020 jenkins021 jenkins022 jenkins023 jenkins024

# 上述图片中,(?i) 代表不区分大小写 、  .* 代表任意匹配 、  | 代表分隔符
# 已经使用新的登录验证模式,所以查看注册新账号登录

jenkins025 jenkins026

# 发现登录不成功,返回主账号,使用主账号修改

jenkins027 jenkins028

# 现在 c4rt1y账号可以登录

jenkins029

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/
GoTop