linux 配置git
yum install  -y git

git config --global user.name "yangcheng"
git config --global user.email "414017224@qq.com.com"
#1在头像,编辑个人资料配置ssh秘钥git以后添加公钥到gitlab
#2配置ssh秘钥后才能clone,不要权限拒绝
git clone git@192.168.71.12:root/demo.git #基于ssh方式
cd demo #进入仓库
#3代码移动到仓库里
git add . git add --all # 添加所有修改文件到暂存区
git commit -m "Commit message" # 提交并添加提交信息
git push origin main #推送本地提交到远程的 GitLab 仓库:
#error: src refspec master does not match any. #分支别写错了
-------------------------------------------------------------------------
git branch #git branch
git checkout branch-name #切换分支:
git commit -m "Your commit message" #提交更改
git pull origin mian1 #拉取最新代码:
git remote -v #查看远程仓库信息
gitlab创建组,创建用户,创建项目

0d23a0671e61f5f4da2a0efe50537508

2cdc35bddd0edba6cf8fd8ead3281268

6f2d3abdcec6a3ccce44b53965be2278

288d21b64d15bd225c092c1a7a942767

65f8fb8b0bbe0272fd62da07ecba0c11

0eafac2613fe2d64d845528533a9fe1e

3fc623223e562fc27f7827a3e2ed4cd2

b8baa7cff1d8c09af91b1aa8752d5631

0eafac2613fe2d64d845528533a9fe1e

0a5c53d02d03426345545dbac3f72dfc

jenkins配置

cat  /var/lib/jenkins/secrets/initialAdminPassword
#直接安装推荐插件
#修改插件下载地址
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json
--------------------------------------------------------------------------------------
进入 系统管理 -> 插件管理 -> Advanced settings 最下面有 Update Site升级站点 设置为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
#重启
http://192.168.16.165:8080/restart
--------------------------------------------------------------------------------------
#安装location插件若汉化没有成,请继续以下步骤:
#系统管理->系统配置
将【zh_CN】改成【zh_US】,点击应用->保存,再重启,然后再次将【zh_US】改成【zh_CN】点击应用->保存
-------------------------------------------------------------------------------------
jienkins权限管理,新建角色,添加用户
#Role-based Authorization Strategy安装插件
创建用户
#0系统管理->管理用户创建用户,新用户没有角色
--------------------------------------------------------
创建角色
#2系统管理->系统全局配置->授权策略->Role-based Strategy-保存
#3系统管理->Manage and Assign Roles(管理角色)
#Global roles(默认admin)g管理员角色,Item roles(项目角色)
------------------------------------------------------

8d30ffce7a56018d310e1603648dc97d

分配角色
#系统管理->Manage and Assign Roles

be8fb2b82278c580dae9585464bf69d8

凭证管理
#凭证可以用来存储密文需要的密码gitlab密码,harbor仓库密码等等
#Credentials Binding插件要在Jenkins使用凭证管理功能

5d61028c18d48ee29dceafe3b43a8107

8b0f1fe1827d164b7ffdb0acb01ab0b2

18f870812903af3a1ec5dbe3b833bf39

#基于http方式拉取gitlab
#1安装git插件
#2yum install -y git
#3全局配置git

e0dc24e39ac348878fdedfa9b80a7fce

abace89b39131f9a0c2c4814b5b260da

fa89251c21f7ddeca9fb23207c02d22a

adabd52c9332e6fb0e7a1127967303ef

#基于ssh免密方式拉取gitlab代码
#1安装git插件
#2yum install -y git
#3全局配置git
ssh-keygen #jenkins 生成公私钥
ssh-copy-id -i root@gitlab服务器 #与gitlab做免密
#4jenkins上的id_rsa私要做成ssh凭证 #构建项目的时候直接可以做凭证
#5gitlab->编辑个人资料->ssh秘钥-配置jenkins——>id_rsa.pub公钥
#jenkins视图可以分组构建

自由风格与maven风格构建方式配置

#自由风格
#1全局配置maven和JDK1.8
#2mvn编译直接配置在构建后执行shell中即可其他都一样
#3jenkins自由风格读不到mvn可以软连接
ln -s /usr/local/apache-maven-3.8.1/bin/mvn /usr/sbin/mvn
--------------------------------------------------------------------------------------------------------
#maven风格
#1全局配置maven和JDK1.8
#安装插件Maven Integration

7892d737c1dab85aaf7617d3b7f5f4c2

00b6a565b4f464e72c72babaf232bd53

0740bdde88c381a222ee5f5d8f3ef6b2

de982935cbed47d06503dbba49f56721

参数化构建
#Boolean Parameter参数     
#1jenkins打完版后会清空工作区
#2把打完版的包放到指定目录或者其他服务器
#3设置Boolean Parameter参数构建后shell脚本使用环境变量选择要打的包名
#4jenkins build点勾兑上可以执行一起打版和指定打版jar包
---------------------------------------------------------------------------------------------------
#Boolean Parameter参数
bulid
deploy
rollback
#可以设置打版回退等配置
pipline构建方式
#脚本写在gitlab代码里一起拉过来,还有一种就是在jenkins里配置pipline有脚本式声明式,声明式方便
pipeline {
// 指定任务在哪个节点执行(Jenkins支持分布式)
agent any
// 配置全局环境,指定变量名=变量值信息
//environment{
// JAVA_HOME = /usr/local/jdk-11.0.22/
//}
// 存放所有任务的合集
stages {
// 单个任务
stage('查看镜像重复删除id删除') {
steps {
sh '''images=`docker images|grep -i java_image_web|awk \'{print $3}\'`
if [ ! -n $images ];then
echo "$images是空的"
else
docker rmi -f $images
fi'''
}
}
// 单个任务
stage('拉取Git代码') {
steps {
git branch: 'main', credentialsId: 'a59c4a5f-fd25-4a5a-9562-6d188b90e656', url: 'git@192.168.1.6:root/demo.git'
}
}
// 单个任务
stage("maven构建代码jar包"){
steps {
sh 'mvn clean install'
}
}
// 单个任务
stage("运行dockerfile构建镜像"){
steps {
sh 'docker build -f Dockerfile -t java_image_web .'
}
}
// 单个任务
stage("发布到harbor"){
steps {
sh '''docker login 106.15.137.239 --username=admin --password=Harbor123456
docker tag java_image_web 106.15.137.239/yangcheng/java_image_web
docker push 106.15.137.239/yangcheng/java_image_web
docker logout
'''
}
}
}
}

nexus私服配置
#Nexus:maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:中央仓库、私服、其它公共库。
#私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上
#查看插件是否安装
Role-based Authorization Strategy 插件来管理Jenkins用户权限
Credentials Binding插件要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
Maven Integration
Maven Integration plugin
gitlab
gitlab api Plugin
pipeline
location插件