从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

部署Jenkins以及持续集成(CI)环境

发布:蔺要红07-10分类: jenkins


Jenkins概述 :是一个开源软件项目,是基于 Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

网方网站
https://jenkins.io/ 
JAVA官网 :http://www.oracle.com/technetwork/java/javase/downloads/
 

搭建Jenkins实现持续集成
Jenkins是Java编写的,所以需要先安装 JDK ,如果对版本有需求,可以直接在Oracle官网下载JDK


安装JAVA环境

war包启动   java -jar jenkins.war --help 查看帮助

 

[program:jenkins]
process_name=%(program_name)s
user=root
command=/usr/bin/java -Xms256m -Xmx1024m  -jar jenkins.war  --httpPort=8081
#command=/usr/bin/java -Xms256m -Xmx1024m  -jar jenkins.war  --httpPort=8081 --webroot=/data/jenkins
directory=/data/server/jenkins/
redirect_stderr=true
stdout_logfile=/data/logs/jenkins.log
autostart=true
autorestart=true
startsecs=10

yum安装 添加yum源 下载安装Jenkins

wget -O /etc/yum.repos.d/jenkins.repo  http://pkg.jenkins.io/redhat/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key 
yum -y install jenkins
修改配置文件
[root@git ~]#  vim  /etc/sysconfig/jenkins  #配置文件目录
# 修改25行 用户为root
JENKINS_USER="root"
# 修改56行 端口81,默认为8080和我的项目冲突
JENKINS_PORT="8181"
#Jenkins日志文件目录
/var/log/jenkins/jenkins.log 
# 启动
systemctl start jenkins
systemctl enable jenkins  #加入开机自启动(jenkins不是系统服务会加入到chkconfig)
chkconfig                 #可以查看开机自启动的软件
cat /var/lib/jenkins/secrets/initialAdminPassword #安装完成默认的密码
Tomcat方式安装
# 也可以yum-不过太慢了/ java用1.8版本/有一些插件不支持java11
[ -d /data/server ]||mkdir -p /data/server
wget https://mirrors.linyaohong.com/src/apache-tomcat-8.5.51.tar.gz
tar zxvf apache-tomcat-8.5.51.tar.gz
ln -s /data/server/apache-tomcat-8.5.51 /usr/local/tomcat
cd /usr/local/tomcat/webapps
rm -rf /usr/local/tomcat/webapps/*
# 下载war包/放到 webapps下/会自动解压/
wget https://mirrors.huaweicloud.com/jenkins/war/latest/jenkins.war

# 配置JENKINS_HOME 存储目录
export JAVA_HOME=/usr/local/jdk1.8.0_241
# 配置jenkins工作目录
export JENKINS_HOME=/data/jenkins
export M2_HOME=/srv/app/apache-maven-3.6.2 

/usr/local/tomcat/bin/startup.sh # 启动tomcat-jenkins
/usr/local/tomcat/bin/shutdown.sh # 关闭tomcat-jenkin
至此安装完毕 :IP+端口访问 -> 输入默认管理员密码
# 登陆web 管理界面:
安装——输入密码——跳过插件安装-设置管理员-设置jenkins URL—开始使用Jenkins
# 首先jenkins更改插件下载地址为清华大学镜像地址(没什么鸟用,没见加快)
:https://updates.jenkins.io/update-center.json
系统管理——插件管理——高级——修改升级站点的地址为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
安装插件
# 安装插件**********:
Localization: Chinese (Simplified)      # 中文包
Build Pipeline                          # 流水线构建/多个项目构建后/可以在一个界面显示
    # 创建新的视图——如果第一个视图后面还触发其他job/则就形成一条流水线
Role-based Authorization Strategy       # 用户安全矩阵插件
    #说明:
        # 如果人数不多使用
        01:Jenkin——全局安全配置—— 项目矩阵授权策略	
        # 权限配置相关(多人)
        01:Jenkin——全局安全配置——Role-Based Strategy
        02:Jekins——Manage and Assign Roles

Parameterized Trigger plugin    # 用于构建后/构建其他job #
Generic Webhook Trigger Plugin  # TOKEN 让git验证
Gitlab Hook                     # 与git互通
Build Authorization Token Root  (ruby-runtime|Git plugin)# 与git互通
Git Parameter Plug-In           # git参数化构建 选择tag/branch
Command Agent Launcher Plugin   # 上默认依赖此插件/命令相关
Maven Integration plugin        #  上默认依赖此插件/命令相关
Pipeline   Pipeline: Supporting APIs  
Extended Choice Parameter            # 参数化构建
Git Parameter                        # 获取git分支的插件               
Folders                             # 文件夹插件
Pipeline: Multibranch                  # 多分支流水线
Pipeline                            # 总-包含很多依赖


# 手动下载地址
https://updates.jenkins-ci.org/download/plugins/

Pipelin脚本相关
# pipline获取 参数变量
node {
    currentBuild.displayName = "#${BUILD_NUMBER}_在${env.MYENV}环境发布${env.PROJECT}: ${env.BRANCH_NAME}"
    stage('deploy') {
        if (env.MYENV == 'sho') {
            sh "sh -x /data/tools/pipeline/jy_core.sh  ${params.BRANCH_NAME} ${params.USER_NAME}  ${params.PROJECT}  ${params.MYENV}"
        } else {
            echo 'Ignore the build'
        }
    }
}



# pipeline 获取 Generic Webhook Trigger 变量
node {
    currentBuild.displayName = "#${BUILD_NUMBER}-${USER_NAME}发布项目:${PROJECT}:${refs}"
    stage('deploy') {
        sh "echo $refs $USER_NAME  $USER_NAME"
    }
}




 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站