一.简介

Jenkins是一个开源软件项目,是基亍 Java 开发的一种持续集成工具,用亍监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。安装与使用中文官方地址。

二.安装

0.安装jdk

#配置yum源
cd /etc/yum.repos.d/
gzip CentOS-*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#卸载原有的openjdk-1.8
rpm -qa | grep jdk*
yum -y remove java-1.8.0-openjdk*
#安装openjdk 11
yum list | grep java-11
yum -y install java-11

1.安装Jenkins

#上传jenkins的rpm到任意目录
rz jenkins-2.361.4-1.1.noarch.rpm
#安装jenkins
yum -y localinstall jenkins-2.361.4-1.1.noarch.rpm
#启动jenkins
systemctl start jenkins
#进程和端口查看
ss -tlunp | grep java
ps -ef | grep java
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2.浏览器访问 http:192.168.77.150:8080  输入初始密码

代码发布之Jenkins  安装 执行命令 拉取代码_拉取代码

跳过安装插件 直接×掉,后续使用web页面选择与安装或离线导入插件

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_02

开始使用jenkins

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_03

修改admin密码    设置---密码

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_04

3.导入插件

#将已下载的插件包导入到/var/lib/jenkins/plugins
tar xf jenkins-2.361-plugins.tar.gz -C /var/lib/jenkins/plugins
#重启jenkins
systemctl restart jenkins
#查看加载后的插件,被加载的插件都有个蓝色的目录
ll /var/lib/jenkins/plugins

插件管理    系统管理---插件管理---已安装插件

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_05

三.jenkins简单使用 执行shell脚本和命令

0.修改配置文件,使jenjins使用root用户

#修改配置文件,使jenjins使用root用户
sed -i 's/User=jenkins/User=root/g'  /usr/lib/systemd/system/jenkins.service
sed -i 's/Group=jenkins/Group=root/g'  /usr/lib/systemd/system/jenkins.service
#检查
egrep -i '^user|^group' /usr/lib/systemd/system/jenkins.service
#重新加载jenkins.service
systemctl daemon-reload
#重启jenkins
systemctl restart jenkins

1.创建文件夹  即项目所在文件夹

新建任务---自定义任务名称---任务类型---文件夹,创建一个dev测试环境为例

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_06

点dev测试环境---新建item   即项目名称

代码发布之Jenkins  安装 执行命令 拉取代码_拉取代码_07

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_08

自定义item的名字---选构建一个自由风格的软件项目

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_09

general---参数化构建---选项参数    脚本传参配置

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_10

定义变量和可选的值

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_11

build steps---执行shell    shell脚本和命令配置

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_12

执行shell中写入脚本和命令  保存

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_13

运行这个工程   运行脚本

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_14

选参数为dev---开始勾选   构建后再构建历史中可以看到构建过程

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_15

控制台输出---查看任务执行详情   脚本运行结果

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_16

代码发布之Jenkins  安装 执行命令 拉取代码_拉取代码_17

丢弃旧的构建  自定义保留天数和最大个数

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_18

四.jenkins简单使用   jenkins从代码仓库拉取代码,将拉取的代码打成压缩包

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_19

0.gitlab创建项目

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_20

1.推送本地代码到远程代码仓库   前提windows已安装git,随便下载一个项目

在本地项目文件内  空白处鼠标右键---Open Git Bash here

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_21

#Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
#推送现有的 Git 仓库
#初始化本地文件目录
git init
#添加到缓存区并提交到本地仓库
git add .
git commit -m "V0.1"
#打标签
git tag -a "v0.1" -m "v0.1"
#重命名远程认证
git remote rename origin old-origin
#添加远程认证
git remote add origin http://192.168.77.147/root/shell_script.git
#推送本地代码到远端代码仓库 会让输入gitlab的用户root和口令
git push -u origin --all
git push -u origin --tags

本地仓库代码已推送到远程仓库

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_22

2.jenkins从远程仓库拉取代码

jenkins的web页面配置私钥,免密从远程仓库拉取代码,因为windows的公钥已经配置在了gitlab上,windows可以免密登录gitlab,jenkins也要免密登录,就需要将windows的私钥配置在jenkins的web页面。

dev测试环境---新建一个工程

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_23

源码管理---Git---输入远程仓库地址---添加凭证选jenkins

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_24

全局凭证   SSH私钥

代码发布之Jenkins  安装 执行命令 拉取代码_jenkins_25

私钥key 添加  将windows的私钥复制粘贴到里面

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_26

代码发布之Jenkins  安装 执行命令 拉取代码_拉取代码_27

构建Build Steps---添写压缩命令

#就在这个目录下执行的命令
/var/lib/jenkins/workspace/dev测试环境/02-Shell_Script-freestyle-job/
#打包
tar -zcf /tmp/Shell_Script.tar.gz .
#分发代码 
#for+scp  ansible  dockerfile镜像

代码发布之Jenkins  安装 执行命令 拉取代码_拉取代码_28

立即构建

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_29

查看控制台输出

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_30

五.故障处理

报错Command "git ls-remote -h git@192.168.77.147:root/shell_script.git HEAD" returned status code 128

代码发布之Jenkins  安装 执行命令 拉取代码_gitlab_31

无法连接仓库:Command "git ls-remote -h git@192.168.77.147:root/shell_script.git HEAD" returned status code 128:stdout:stderr: No ECDSA host key is known for 192.168.77.147 and you have requested strict checking.Host key verification failed.fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.

解决:

#jenkins后台输入这条命令,然后输入yes即可
git ls-remote -h git@192.168.77.147:root/shell_script.git HEAD
#输入yes后,不用输入密码,ctrl+c退出即可

#hosts解析 使用IP不用配置
#jenkins服务上配置 jenkins和gitlab的域名解析

先选无然后重新选取即可

代码发布之Jenkins  安装 执行命令 拉取代码_执行命令_32