在CI/CD环境中部署Jenkins
Posted 最懂产品的运维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在CI/CD环境中部署Jenkins相关的知识,希望对你有一定的参考价值。
前言
我们此次要部署的Jenkins,主要用于CI/CD
, 因此除了要安装Jenkins
外, 还需要安装docker
。
本文含有代码块, 建议在电脑上阅读。
安装JAVA 1.8
每个节点都执行:
#使用rpm安装
rpm -ivh --prefix=/usr/local/java/ https://mirror.its.sfu.ca/mirror/CentOS-Third-Party/NSG/common/x86_64/jdk-8u144-linux-x64.rpm
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
export JRE_HOME=/usr/local/java/jdk1.8.0_144/jre
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java -version
安装Maven
访问Apache Maven
下载页面获取最新稳定版:
https://maven.apache.org/download.cgi
#下载二进制的tar.gz包
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
mkdir /usr/local/maven
tar apache-maven-3.5.2-bin.tar.gz
mv apache-maven-3.5.2 /usr/local/maven
cat > /etc/profile << EOF
export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2
EOF
source /etc/profile
mvn --version
安装Docker
由于需要使用docker build
, 需要在Jenkins上安装docker。
设置Docker加速器
为什么要设置一个加速器? 国内无法通过
docker pull
或者docker run
直接下载dockerhub
上的镜像, 需要使用国内一些服务商的加速服务来提高下载镜像速度.
如果你没有自己的私有docker镜像仓库,比如harbor
, 那insecure-registries
这一行可以移除,同时删掉上一行末尾的,
(逗号)。insecure-registries
可以设置多个, 使用逗号分割:sudo mkdir -p /etc/docker
sudo cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://h9vtw6kz.mirror.aliyuncs.com"],
"bip": "10.0.0.1/16",
"ipv6": false,
"insecure-registries": ["172.20.10.10", "172.20.20.20"]
}
EOF
sudo systemctl daemon-reload注意: 如果是使用旧版的
docker
, 比如版本1.13.1
, 上述方式设置有差异, 有需要的童鞋可以留言。安装 Docker
# 对于Jenkins、harbor等, 可以安装新版docker
# yum 会查询并安装依赖
verion=17.12.1
yum -y install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-${version}.ce-1.el7.centos.x86_64.rpm
systemctl enable docker && systemctl start docker
# 对于Rancher、 Kubernetes等,需要安装指定版本
安装Jenkins
访问Jenkins
官方下载页面获取最新稳定版:
https://jenkins.io/download/
#选择使用`war`包
wget http://mirrors.shu.edu.cn/jenkins/war-stable/2.89.3/jenkins.war
export JENKINS_HOME=/data/jenkins
mkdir -p /data/jenkins
nohup java -jar jenkins.war &
#对于C3项目来说, 需要给Jenkins加一些启动参数:
nohup java \
-Djava.awt.headless=true \
-Dpermissive-script-security.enabled=true \
-Dhudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true \
-DJENKINS_HOME=/data/jenkins \
-jar /data/jenkins/jenkins.war \
--logfile=/data/jenkins/jenkins.log \
--webroot=/data/jenkins/war \
--httpPort=8081 --debug=5 \
--handlerCountMax=100 --handlerCountMaxIdle=20 &
配置Jenkins
在Web上配置Jenkins
登录 http://ip:8080 ,填写Jenkins启动时生成的临时密码, 登录Jenkins, 设置新的用户和密码, 再选择安装默认插件, 完成后进入到Jenkins管理页面
系统设置
在
系统管理
->系统设置
中配置Java
,maven
环境变量,如下:image Ldap配置
我们这里对接的是openLDAP
。
如果要让用户能够通过域账户登录,我们需要配置Ldap
连接,需要在插件中心安装Ldap
的插件。
在系统管理
->全局安全配置
中,勾选启用安全
并在安全域
下点选LDAP
, 按照如下配置:image
安装插件
推荐插件列表
Docker plugin
docker相关支持Git plugin
Git相关支持LDAP Plugin
LDAP相关支持Maven Metadata Plugin
从nexus等仓库获取jar包及版本号Simple Theme Plugin
提供扁平化主题支持Workspace Cleanup Plugin
清理WorkspaceParameterized Trigger plugin
参数化构建中将变量传递到下一个jobEnvironment Injector
注入环境变量,并在Job执行结束后提供查看环境变量的页面pipeline utility steps
可以使用readyml等工具类方法。Permissive Script Security Plugin
Role-based Authorization Strategy
基于角色的权限管理
shell设置
Jenkins
自带的shell
行为异常诡异, 经常出现出现文件存在, 但就是提示找不到相应的文件或目录, 因此我们在系统设置中, 修改了Jenkins的默认shell为系统的bash, 避免这些异常的问题.
以上是关于在CI/CD环境中部署Jenkins的主要内容,如果未能解决你的问题,请参考以下文章
CI/CD技术专题「Jenkins实战系列」全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
CI/CD之jenkins结合ansible部署apache
CI/CD之jenkins结合ansible部署apache