文章目录
- 环境
- pipeline
- 建立任务,Pipeline Script方式
- gitlab http方式
- gitlab ssh方式
- 建立任务,Pipeline script from SCM方式
环境
主机名 | IP |
---|---|
jenkis | 10.20.80.96 |
jenkis-agent | 10.20.80.95 |
gitlab | 10.20.80.91 |
code | 10.20.80.93 |
pipeline
首要条件:jenkins需要安装git、pipeline插件
- Pipeline Script方式
- Pipeline script from SCM方式
建立任务,Pipeline Script方式
-
新建任务
,选择pipeline
-
流水线
中,编写脚本定义
:Pipeline Script
# 脚本内容
pipeline {
agent {
label 'jenkins-agent-95'
}
stages {
stage('检测环境') {
steps {
echo '检测环境'
sh label: '', script: '''java -version
mvn -v
git version
docker -v'''
}
}
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('部署项目') {
steps {
echo '部署项目'
}
}
}
}
gitlab http方式
-
添加凭据
类型
:Username with password用户名
:luxun密码
:12345678描述
:gitlab-95-http -
流水线语法
中,选择check out
SCM
:GitRepository URL
:填写gitlab项目http地址Credentials
:选择刚刚创建的http方式凭据Branches to build
:指定分支 -
生成流水线脚本
# 修改拉取代码部分脚本
stage('拉取代码') {
steps {
echo '拉取代码'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'c44dbd78-c248-4e6e-a1b0-6efd819994ae', url: 'http://10.20.80.91/lx/']]])
}
}
gitlab ssh方式
gitlab(10.20.80.91)免密登录项目代码运行服务器(10.20.80.93)
# 在93上生成私钥
ssh-keygen -t rsa
# 查看公钥信息,并复制
cat /root/.ssh/id_rsa.pub
# 在gitlab上配置公钥
点击`右上角管理员`旁边小三角 -> `settings` -> `SSH Keys`,然后把公钥复制进去,`Add Key`
# 在jenkins上配置凭据
`添加凭据`
`类型`:SSH Username with private key
`用户名`:luxun
`密码`:12345678
`描述`:code-93-ssh
选中`Enter directly`,`Add`,把93的私钥粘贴进去
`保存`
# 去生成流水线脚本
`流水线语法`中,选择`check out`
`SCM`:Git
`Repository URL`:填写gitlab项目ssh地址
`Credentials`:选择刚刚创建的ssh方式凭据
`Branches to build`:指定分支
# 修改拉取代码部分脚本
stage('拉取代码') {
steps {
echo '拉取代码'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '3abd05fa-3c33-4086-8220-f23de9e5d552', url: 'ssh://git@10.20.80.91:222/lx/']]])
}
}
建立任务,Pipeline script from SCM方式
先复制Pipeline Script方式生成的脚本
在项目的根目录新建Jenkinsfile,把脚本内容复制进去定义
:Pipeline script from SCMSCM
:Git脚本路径
:Jenkinsfile
# Jenkinsfile
pipeline {
agent {
label 'jenkins-agent-95'
}
stages {
stage('检测环境') {
steps {
echo '检测环境'
sh label: '', script: '''java -version
mvn -v
git version
docker -v'''
}
}
stage('拉取代码') {
steps {
echo '拉取代码'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '3abd05fa-3c33-4086-8220-f23de9e5d552', url: 'ssh://git@10.20.80.91:222/lx/']]])
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('部署项目') {
steps {
echo '部署项目'
}
}
}
}