aws ec2 配置jenkins和gitlab
创始人
2024-01-15 08:52:33
0

环境搭建

下载jenkins的war包,启动jenkisn

nohup java -jar jenkins.war --httpPort=8091 > jenkins.log  2>&1 &

docker安装gitlab

默认情况下,Omnibus GitLab 会自动为初始管理员用户账号 (root) 生成密码,并将其存储到 /etc/gitlab/initial_root_password 至少 24 小时

mkdir /home/ec2-user/gitlab
export GITLAB_HOME=/home/ec2-user/gitlab
sudo docker run --detach \--hostname gitlab.com \--publish 8443:443 --publish 8092:80 --publish 8022:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:/var/opt/gitlab \--shm-size 256m \gitlab/gitlab-ee:latest

初始化过程可能需要很长时间

sudo docker logs -f gitlab

获取密码

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
TJQ5Bx7yl8a+/JQlhe33hZgrfig+PTUIYaIzjapJ2HA=

部署简单项目

使用idea的springboot initializer创建一个sprintboot项目,https://cloud.tencent.com/developer/article/1594258

创建简单的restapi接口,日后逐步完善

package com.weiz.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/hello")public String hello() {return "Hello Spring Boot!";}
}

启动项目

在这里插入图片描述
在gitlab中创建项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j8kgPQai-1666505675600)(assets/image-20221022232639189.png)]

创建完毕之后有详细说明,clone或者加入现有仓库,这里要注意如果修改端口也要添加,例如我是8092

cd existing_repo
git remote add origin http://gitlab.com:8092/root/java-project.git
git branch -M main
git push -uf origin main

在jenkins中创建maven项目,主要配置项目为gitlab仓库名称和maven路径

在这里插入图片描述

在jenkisn机器上安装maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hNB9ga5a-1666505675603)(assets/image-20221022235911806.png)]

安装 publish ssh插件,通过ssh连接进行发布,在系统配置下添加SSH Servers作为部署的目标

在Pre Steps阶段自定义执行命令,例如删除之前的部署包

在jenkins的maven项目中配置Post Steps为**Send files or execute commands over SSH**[ ](http://52.81.54.188:8091/job/first/configure#)

点击立即构建可以看到jar包发到目标主机,并执行相应shell命令

在这里插入图片描述

查看部署成功

$ jps
13155 Jps
12772 TestSpringbootCICD-0.0.1-SNAPSHOT.jar
$ curl 127.0.0.1:8080/hello
Hello Spring Boot!

集群和并发构建

jenkins可以配置集群,master通过向节点发送agent配置,将构建任务转移到子节点上

创建节点

在这里插入图片描述

配置节点,这里使用ssh的方式
在这里插入图片描述

节点加入日志

在这里插入图片描述

加入成功

在这里插入图片描述

查看目录

$ tree remoting
remoting
├── jarCache
│   ├── 03
│   │   └── E3B418DE52CE1D126971EC175B672C.jar
│   ├── 08
│   │   └── 82AD55682C95773C875C27C9159397.jar
│   ├── 0F
│   │   └── 3B4B41FA3E95DE9A5D0B01F64C9835.jar
│   ├── 28
│   │   └── B0BD31A429FA04C24972CEC2D8FDDC.jar
│   ├── 52
│   │   └── 0A72C518A90310D212D3EFACFEDA8D.jar
│   ├── 66
│   │   └── 6F8BD601D4FB03360D91033FA9F010.jar
│   ├── B3
│   │   └── 0F63788978A11629EABC8579E5C70F.jar
│   ├── DD
│   │   └── CA0DD5CB00EB03D2A10BDCB467FE34.jar
│   └── FD
│       └── C3016DEDE06111EBD459F70877F57B.jar
└── logs├── remoting.log.0└── remoting.log.0.lck

之后创建的构建,将按照配置选择启动在子节点上

创建简单流水线

在这里插入图片描述

示例pipeline脚本,不是很好写一般也没必要,可以使用流水线片段生成器

pipeline {agent anytools {maven "M3"}stages {stage('Build') {steps {git 'https://github.com/jglick/simple-maven-project-with-tests.git'sh "mvn -Dmaven.test.failure.ignore=true clean package"}
、post {success {junit '**/target/surefire-reports/TEST-*.xml'archiveArtifacts 'target/*.jar'}}}}
}

生成片段

在这里插入图片描述

这里使用publish over ssh,可选的很多

在这里插入图片描述

生成的片段如下,还是比较复杂,按照需要回填到pipeline中即可

sshPublisher(publishers: [sshPublisherDesc(configName: '172.31.26.66', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'nohup jar -jar springboot.jar 2>&1 &', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/home/ec2-user/', remoteDirectorySDF: false, removePrefix: '/home/ec2-user/first', sourceFiles: '**/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

相关内容

热门资讯

申请进入学生会申请书 申请进入学生会申请书(精选13篇)  在当今社会生活中,申请书与我们不再陌生,我们在写申请书的时候要...
一般纳税人申请书 一般纳税人申请书范文  对符合一般纳税人条件但不申请办理一般纳税人认定手续的纳税人,应按销售额依照增...
奖学金的申请理由怎么写 奖学金的申请理由怎么写  一、什么是奖学金  奖学金是提供给特定学生的金钱奖励,颁发对象包括学业成绩...
职位申请书 职位申请书(通用15篇)  随着社会在进步,用到申请书的地方很多,正确运用申请书可以达到事半功倍的效...
装修工程竣工验收申请书 装修工程竣工验收申请书(精选5篇)  在法律不断完善的社会中,申请书与我们不再陌生,正确运用申请书可...
教师资格认定申请书 教师资格认定申请书范文  在眼下市场经济活跃的社会,我们会经常使用申请书,请注意不同种类的申请书有着...
仲裁申请书 有关仲裁申请书范文5篇  当下市场经济活跃,交易频繁,我们会经常使用申请书,正确运用申请书可以达到事...
行政再审申请书 行政再审申请书  再审申请书的含义  再审申请书是司法文书的一种。再审申请书,是民事案件的当事人对地...
价格调整的申请书 价格调整的申请书范文  在当今不断发展的世界,申请书出现的次数越来越多,我们可以将自己的愿望和请求写...
建设项目选址意见书 建设项目选址意见书  建设项目选址意见书是怎样的?包括了哪些内容?那么,下面就随CN人才公文网小编一...
银行借款申请书 银行借款申请书范文6篇  随着时代在进步,申请书与我们的关系越来越密切,利用申请书我们可以表达自己的...
协会成立申请书 协会成立申请书模板集合五篇  在经济飞速发展、人们往来越来越密切的今天,我们都会用到申请书,我们在写...
产假的申请书 产假的申请书模板(精选20篇)  在人们物质精神需求不断增长的今天,我们会使用上申请书,请注意不同的...
员工辞职报告申请书 员工辞职报告申请书范文汇编六篇  在一家公司工作了一段时间后,有可能我们会选择辞职,这时候写好辞职报...
岗位调动的申请书 岗位调动的申请书(精选15篇)  在市场经济发展迅速的今天,申请书使用的次数愈发增长,申请书是我们提...
个人贷款申请书 个人贷款申请书范文(精选11篇)  申请书是个人或集体向组织、机关、企事业单位或社会团体表述愿望、提...
内部人员转岗申请书   申请书的使用范围广泛,申请书也是一种专用书信,它同一般书信一样,也是表情达意的工具。下面小编为大...
升职的申请书 升职的申请书(通用15篇)  在市场经济发展迅速的今天,申请书与我们不再陌生,我们在写申请书的时候要...
工作申请书英文版 工作申请书范文英文版  在法律不断完善的.社会中,很多场合都离不了申请书,请注意不同种类的申请书有着...
教师职称晋级申请书 2022教师职称晋级申请书(精选9篇)  在人们物质精神需求不断增长的今天,我们每个人都可能要用到申...