aws ec2 配置jenkins和gitlab

news2025/1/12 12:15:03

环境搭建

下载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 any

    tools {
        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)])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS系统中内核实现温湿度采集方法

大家好,今天主要来聊一聊,如何使用鸿蒙系统中的温湿度传感器方法。 第一:温湿度传感器基本原理 大部分的传感器是在环境温度变化后会产生一个相应的延伸,因此传感器可以以不同的方式对这种反应进行信号转换。常见的大部分是电阻…

gitlab cicd 5分钟快速入门搭建私人代码仓库

gitlab 是企业级私有服务器 本文章采用docker搭建gitlab 如有不懂可微信我号yizheng369 环境准备 购买阿里云服务器,或者其他服务器 注意:本文章是用阿里云的centos 7.6作为服务器 搭建步骤 1.设置环境变量 export GITLAB_HOME/srv/gitlab2.编写dock…

今天面了个阿里拿27k出来的小哥,让我见识到了什么是天花板

2022年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎! 计算机IT行业薪资高,平均薪资是文科其他岗位的3…

PLC NAND 虽来但远

前言 图片来源: 存储随笔 2022年8月份在美国FMS峰会上,Solidigm公司(前身为 Intel NAND 部门) 展示了全球第一款基于PLC NAND研发的SSD。这也标志着,PLC时代已正式拉开序幕。出于对 PLC 的好奇,本文分享PLC NAND 知识&#xff0…

C/C++描述 - 矩阵乘积的计算

矩阵运算是现代科学及工程计算的基石之一,而矩阵乘法则是其中最常见一种运算。对于二维矩阵A、B,如果A的列数等于B的行数,则矩阵A、B可乘,其结果矩阵C的行数等于A的行数,列数等于B的列数。 本文引用自作者编写的下述图…

ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?

目录 01 加载RGB影像数据 02 分别将三个波段进行保存 03 将RGB三色图像转化为HSI(HSB或者叫HSV)图像 04 转换的HSI图像拆分成H、S、I三个影像 首先,需要明确,手机拍摄的影像即是Red、Green、Blue三波段影像; 另外,由于方法十分…

视觉合集3

这次的合集是找到了几个论文... 一起来说下 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a cat a cat? Prompt-to-Prompt Ima…

【论文阅读】Pre-training Methods in Information Retrieval

文章目录前言Abs1.Intro2.Background2.1.A Hierarchical View of IR2.1.1.The Core Problem View of IR2.1.2.The Framework View of IR2.1.3.The System View of IR2.2.A Brief Overview of PTMs in IR前言 因为文章篇幅较长,因此还在持续阅读中原文(F…

科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码

前情提要 如果有人看了我之前发的乱七八糟的博客的话,应该就能了解到,我之前是计算机专业大三的学生,好不容易get到了保研的名额,前段时间就一直在操练LeetCode,到处报夏令营啊,预推免什么的,最…

应该了解的网络知识

今天上午10:00参加了一个新华三杯,是关于计算机网络的,100道题,发现没有一道是自己会的,好歹也是学过一学期的计算机网络,到头来发现啥也不会,然后现在就又去复习一下网络。 OSI七层模型 *应用层…

VUE | “面包屑”的原理

最近我在写一个“项目”?遇到了以前没有接触到的一个知识点——“面包屑”。 写下来,我所理解的思路,一是为了看能不能帮助到大家,二是自己肯定不是已经完全理解、印在脑子里了,所以方便自己随时复习~ 我们先来看一下…

自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目

相关文章 [ >.<] 自动化测试项目学习笔记(一)&#xff1a;unittest简单运行&#xff08;初始化&#xff0c;清除&#xff0c;设置测试行为&#xff09;[ >.<] 自动化测试项目学习笔记(二)&#xff1a;学习各种setup、tearDown、断言方法[ >.<] 自动化测试项…

启发式算法之蚁群算法

&#x1f63b;今天我们来学习启发式算法中的蚁群算法&#xff0c;据说&#xff0c;蚁群算法是路径规划算法中’最好’的群智能算法。快让我们开始吧&#xff01; 目录1. 蚁群算法基本介绍1.1 算法简介1.2 算法原理2.蚁群算法的基本流程2.1 路径构建2.2 蚂蚁信息素的更新3. scik…

使用POI和EasyExcel实现Excel导入和导出功能

需求场景 开发中经常会设计到excel的处理&#xff0c;需求场景如下所示&#xff1a; 1、将用户信息导出为excel表格&#xff08;导出数据&#xff09; 2、将Excel表中的信息录入到数据库中&#xff08;导入数据&#xff09; 操作Excel目前比较流行的就是 Apache POI 和 阿里…

单片机通过WIFI模块(ESP8266)获取网络时间与天气预报

前几天发布了开源4.3寸触摸屏的文章 《开源4.3寸触摸屏》&#xff0c;里面有WIFI获取时间和天气预报相关的功能&#xff0c;今天就来介绍一下这个功能是怎样实现的。 1.底层驱动 首先&#xff0c;硬件上&#xff0c;单片机通过串口AT指令访问WIFI模块&#xff08;ESP12S&#x…

有营养的算法笔记(七)

字符串消除 1.题目描述 给定一个只由’a’和’b’组成的字符串str&#xff0c;str中"ab"和"ba"子串都可以消除&#xff0c; 消除之后剩下字符会重新靠在一起&#xff0c;继续出现可以消除的子串…你的任务是决定一种消除的顺序&#xff0c;最后让str消除到…

(附源码)计算机毕业设计SSM基于人脸识别和测温的宿舍管理系统

&#xff08;附源码&#xff09;计算机毕业设计SSM基于人脸识别和测温的宿舍管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09…

Redis 集群安装-Centos

Redis 集群安装-Centos Redis3.0以后的版本虽然有了集群功能&#xff0c;提供了比之前版本的哨兵模式更高的性能与可用性&#xff0c;但是集群的水平扩展却比较麻烦&#xff0c;今天就来带大家看看redis高可用集群如何做水平扩展&#xff0c;原始集群(见下图)由6个节点组成&am…

【图灵MySQL】MySQL索引优化实战(上)

【图灵MySQL】MySQL索引优化实战&#xff08;上&#xff09; 数据准备-SQL CREATE TABLE employees (id int(11) NOT NULL AUTO_INCREMENT,name varchar(24) NOT NULL DEFAULT COMMENT 姓名,age int(11) NOT NULL DEFAULT 0 COMMENT 年龄,position varchar(20) NOT NULL DEF…

1024程序员节带你玩转图片Exif信息获取之JavaScript

目录 一、前言 二、背景 三、Exif.js 1、Exif.js 简介 2、Exif.js 引入 四、多场景展示数据获取 1、原始图片直接获取 2、base64 编码文件加载 3、文件上传的方式加载 五、总结 一、前言 1024是2的十次方&#xff0c;二进制计数的基本计量单位之一。1G1024M&#xff0c;而…