搭建背景:公司让我在内网环境下搭建Jenkins,在配置docker时出了点问题,后续解决Bug后会更新。新人第一篇不足之处,请批评指正 持续更新中这段时间比较忙我会尽快完善,最后更新时间->20190827 12:53。。。。所以看到的是一部分
Jenkins背景(没有兴趣的朋友可以跳过)
可以去参考下面这位大哥的这里不过多解释了
持续集成、持续交付、持续部署(CI/CD)简介
jenkins介绍
Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。
Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson
Jenkins官网:https://jenkins.io/Jenkins
下载:http://updates.jenkins-ci.org/
jenkins的全部镜像:http://mirrors.jenkins-ci.org/status.html
第一步jenkins的安装
Jenkins 自身采用 Java 开发,所以要必须安装 JDK;
卸载openjdk
查询 rpm -qa|grep java
删除 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
安装jdk
链接:https://pan.baidu.com/s/1Tedaf1GMHqwcDxm-xTdw2g
提取码:sshl
解压jdk文件到当前文件夹
cd /usr/local/java
tar -zvxf jdk-8u211-linux-x64.tar.gz
设置环境变量(修改/etc/profile文件)
vim /etc/profile
(博客写到这里的时候遇到个$不显示的问题加个\ 就好了)
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
重启
shutdown -r now 或 reboot
安装环境linux
以下四种方法任选一种
1.离线安装
http://pkg.jenkins-ci.org/redhat/wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm
下载(也可以Windows下载再转过来)
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key
公钥sudo yum -y install jenkins-*.noarch.rpm
2.在线安装
http://pkg.jenkins-ci.org/redhat/sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keysudo yum -y install jenkins
3基于Tomcat
安装并启动 Tomcat;从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署;浏览器访问:http://centos:8080/jenkins/
4.免安装wget http://mirrors.jenkins.io/war-stable/latest/jenkins.warsudo
java -jar jenkens.war ## 启动服务,直至看到日志
Jenkins is fully up and running
curl http://localhost:8080/ ## Jenkins 已就绪
我采用的是第二种方式添加yum源下载安装Jenkins
[root@git ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo
[root@git ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@git ~]# yum -y install jenkins
DeltaRPMs disabled because /usr/bin/applydeltarpm not installed.
安装deltarpm :
yum provides ‘*/applydeltarpm’
yum install deltarpm
yum -y install jenkins
NoPresto metadata available for jenkins
https://pkg.jenkins.io/redhat/
下载对应的jenkins-2.191-1.1.noarch.rpm
rpm -ivh jenkins-2.76-1.1.noarch.rpm
为了防止端口冲突,修改Jenkins的默认端口8090
[root@git ~]# vim /etc/sysconfig/jenkins
JENKINS_USER=“root” ## 原值 “jenkins” 必须修改,否则权限不足;
安装目录: /usr/lib/jenkins;
工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME);
启动Jenkins
[root@git ~]# systemctl start jenkins
可能会出现
根据提示查看状态发现是没找到java
可能一jdk安装问题可能二jdk安装目录非默认
我的java环境没问题所以是jenkins 没能找到正确的 java 目录,解决办法:
[root@localhost jenkins]# which java
/usr/local/java/jdk1.8.0_211/bin/java
先找到java位置,修改/etc/init.d/jenkins文件
[root@localhost jenkins]# vim /etc/init.d/jenkins
加入/usr/local/java/jdk1.8.0_211/bin/java
[root@localhost jenkins]# systemctl daemon-reload
[root@localhost jenkins]# service jenkins start
再次启动,问题解决
查看状态
[root@git ~]# systemctl status jenkins
查看日志文件: sudo tail -f /var/log/jenkins/jenkins.log 启动后会生成文件
如果浏览器首次进入时卡在“Jenkins 正在启动,请稍后…”修改hudson.model.UpdateCenter.xml
cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
systemctl restart jenkins
远程访问,主机需要开放端口8090(上文配置中指定的端口)
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
可能会出现 iptables文件不存在,关掉防火墙在安装就有了
systemctl stop firewalld
systemctl mask firewalld
yum install -y iptables
yum install iptables-services
开启服务
systemctl start iptables.service
systemctl restart iptables.service
systemctl enable iptables.service
检查iptables
service iptables status
ok了在使用上文开放端口即可
重启生效: sudo systemctl restart iptables
http://localhost:8090首次登陆需要解锁Jenkins
密码已写入到日志中,该文件在服务器上:
/var/lib/jenkins/secrets/initialAdminPassword查看密码
[root@git ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
自定义Jenkins选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装,骚等即可
完事之后创建个用户就能看到首页了,就像你看到的功能很多很好很强大我也只是用到了其中一部分
jenkins配置
默认情况下,任何用户都可以使用 Jenkins 进行发布。 可以进入相关设置:Manage Jenkins / Configure Global Security
是否允许用户注册默认禁止如果想要创建用户可以勾上返回登录界面创建用户
访问权限默认登录用户有所有权限,匿名用户没有任何权限
代理和端口默认禁用设置为随机
进入Manage Jenkins /Global Tool Configuration 配置相关环境所有工具取消自动安装
3.gradle
#添加插件:Manage Jenkins/pluginManager
如果在可选插件中看不到插件,点击高级:高级下有个提升站点:
站点地址:http://mirror.xmission.com/jenkins/updates/update-center.json
如果还是在线安装不了插件,也可以离线进行安装,下载好插件后,选择插件上传。
#需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter等(如果出现错误提示)依赖错误:部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启 Jenkins。
Pipeline version 2.6workflow-multibranch version 2.20 is missing. To fix, install version 2.20 or later.
原因版本低解决办法去官网下载能够使用的版本上传重启(可能会有多个版本低的情况)
在这个网站下载就行http://updates.jenkins-ci.org/download/plugins/
没有安装GitLab的朋友可以参考下面博文
https://blog.csdn.net/duyusean/article/details/80011540
接下来我们到gitLab创建Access Tokens,打开gitlab进入setting
拿到token后进入jenkins
token可以在下图中管理
出现错误-》检查端口、ip
生成访问gitLab的ssh密钥
ssh-keygen -t rsa
查看公钥
cat /root/.ssh/id_rsa.pub
将公钥拷贝到authorized_keys文件
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
进入gitLab创建SSH key
设置邮件模板
sonarqube整合jenkins
安装sonarqube之前需要注意
1、准备jdk环境,版本1.8.102
2、准备mysql数据库,版本5.6以上
3、创建sonar连接数据库信息:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@‘localhost’ IDENTIFIED BY ‘sonar’;
两个版本我装的是6.7最新的是7.9,1.19是6.7的中文插件
百度网盘:
链接:https://pan.baidu.com/s/1NPlZKQZELcpzif9gwlHbOg
提取码:tivy
配置sonarqube连接数据库文件
vi /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
特别说明:从SonarQube 6.6开始,升级到了Elasticsearch 5,禁止了root权限,也就是通过root启动SonarQube 6.7的服务被禁止了。因此,需要新建一个linux用户,并赋权,再通过该用户启动soanr服务,就可以解决该问题。
#新建一个linux用户:
useradd sonar
#新建一个用户组,名为“et”:
groupadd et
给用户赋权文件夹下的操作权限
chown linux用户名 安装目录 -R
查看端口9000
netstat -nptl
启动sonarqube
cd /usr/local/software/sonarqube-6.7.7/bin/linux-x86-64
su sonar
./sonar.sh start
./sonar.sh status
访问:http://192.168.1.59:9000/ admin/admin
生成: d091ac0180f8b703ac0a5768062adfa07d626a1e #整合jenkins时需要使用
把中文插件放到这个directory
重启完成
官方插件库:https://docs.sonarqube.org/display/PLUG/Plugin+Library
jenkins需要的插件
SonarQube Scanner for Jenkins
Git plugin
Email Extension Plugin
配置SonarQube Server
先到sonar中设置权限
生成token
需要的插件:
SonarQube Scanner for Jenkins
Git plugin
Email Extension Plugin
Docker配置
插件安装:
Docker
SSH
配置TCP访问接口
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
重新加载配置文件
systemctl daemon-reload
systemctl restart docker
开放端口
jenkins配置docker
未完待续。。。