首页 > 其他分享 >从0-1搭建一个自动化部署平台

从0-1搭建一个自动化部署平台

时间:2024-03-10 09:33:21浏览次数:30  
标签:部署 sudo apt 构建 自动化 Jenkins Docker docker 搭建

以Java服务为例,说明如何搭建一个自动化部署平台DevOps。

第一步:准备基础设施

  1. 服务器:准备至少一台用于部署的服务器,推荐使用云服务提供商的虚拟机或容器服务。
  2. 操作系统:安装Linux操作系统,如Ubuntu、CentOS等。
  3. 网络:确保服务器可以访问互联网,以便下载所需的软件和工具。

第二步:安装和配置必要的软件

  1. 安装Java Development Kit (JDK):

    sudo apt update  
    sudo apt install openjdk-11-jdk  # 安装Java 11,可以根据需要选择其他版本

    配置环境变量(如果需要):

    echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc  
    echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc  
    source ~/.bashrc
  2. 安装Maven(如果项目使用Maven构建):

    sudo apt install maven
  3. 版本控制系统:安装Git,用于代码管理。

    sudo apt install git
  4. 安装Docker(用于容器化部署):

    sudo apt update  
    sudo apt install apt-transport-https ca-certificates curl software-properties-common  
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  
    sudo apt update  
    sudo apt install docker-ce

    启动Docker服务:

    sudo systemctl start docker  
    sudo systemctl enable docker

    将用户添加到docker组(以便非root用户执行Docker命令):

    sudo usermod -aG docker $USER

    重新登录或重启系统以使组更改生效。

  5. 安装Docker Compose(用于多容器编排):

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  
    sudo chmod +x /usr/local/bin/docker-compose

    注意:上面的命令安装的是特定版本的Docker Compose,请根据实际情况选择最新版本。

第三步:安装和配置Jenkins

  1. 下载Jenkins:从Jenkins官网下载适用于你的操作系统的Jenkins WAR文件。

    wget https://get.jenkins.io/war-stable/latest/jenkins.war
  2. 运行Jenkins:由于Jenkins可以作为一个独立的Java应用程序运行,你可以使用以下命令启动它(在生产环境中,你可能会将其配置为服务):

    java -jar jenkins.war --httpPort=8080

    首次启动时,Jenkins会生成一个初始密码,你需要从控制台输出或日志文件中检索它。

  3. 配置Jenkins:通过浏览器访问Jenkins的URL(通常是http://<服务器IP>:8080),并按照设置向导完成安装和配置。这包括安装推荐的插件、创建管理员用户等。

  4. 安装必要的Jenkins插件:通过Jenkins的插件管理界面安装所需的插件,如Git插件、Maven插件、Docker插件等。

第四步:配置自动化流程

  1. 在Jenkins中创建一个新任务:配置源代码管理为Git,并提供你的Java项目的仓库URL。

  2. 配置构建触发器:设置轮询SCM或Webhook,以便当代码变更时自动触发构建。

  3. 配置构建步骤:添加Maven构建步骤,指定pom.xml文件和构建目标(如clean package)。

  4. 配置后构建步骤:添加Docker构建和发布步骤。编写Dockerfile以定义你的Java应用的容器镜像,并在Jenkins中配置Docker构建和推送镜像到Docker仓库的命令。

    例如,Dockerfile可能如下所示:

    FROM openjdk:11-jre-slim  
    COPY target/myapp.jar /usr/app/myapp.jar  
    WORKDIR /usr/app  
    CMD ["java", "-jar", "myapp.jar"]

    在Jenkins中,你可以使用Docker插件来构建和推送镜像,或者使用Shell执行Docker命令。

  5. 部署应用:配置Jenkins以使用Docker Compose或Kubernetes部署应用。编写必要的部署文件(如docker-compose.yml或Kubernetes部署YAML),并在Jenkins中添加相应的部署步骤。

  6. 保存并应用配置:保存Jenkins任务的配置并应用更改。

第五步:测试和优化

  1. 进行构建和部署测试:手动触发Jenkins任务以执行完整的构建和部署流程。观察控制台输出和日志以确认每个步骤是否按预期执行。

  2. 优化构建和部署过程:根据测试结果调整构建脚本、Jenkins配置和部署文件,以优化构建和部署过程。这可能包括减少构建时间、提高部署可靠性等。

  3. 设置持续监控和日志收集:配置监控工具以收集服务器和应用的性能指标、日志等信息。这有助于及时发现问题并进行故障排除。

  4. 文档化和培训:编写文档记录自动化部署平台的搭建过程和配置细节,并对团队成员进行培训,以确保他们了解如何使用和维护该平台。

请注意,上述步骤是一个简化的示例,实际搭建过程中可能涉及更多的细节和复杂性。务必根据你的具体需求和项目规模进行调整和扩展。

标签:部署,sudo,apt,构建,自动化,Jenkins,Docker,docker,搭建
From: https://www.cnblogs.com/zaevn00001/p/18063742

相关文章

  • 从零开始用Hexo+GithubPage搭建个人网站(保姆级)
    写在前面:猫世界-个人博客-GPT4订阅保姆级教程1.准备阶段1.1了解系统类型按WIN+R,输入cmd,回车输入以下内容并按下回车systeminfo我的电脑就是x64系统1.2Git下载点此处下载Git根据系统类型选择,因此我选64-bitGitforWindowsSetup注:下载后安装,安装过程除了安......
  • 三.接口自动化项目1
    一.接口自动化需求分析:接口自动化测试用例:1.用例写在excel表格里面,定义函数获取excel表格中数据并加入到用例列表中进行返回a.Excel表格中的数据只有url/请求方式、请求参数、headers、是否json、预期结果才是有效数据b.请求参数定义格式是"xxx=123,sss>456,phone=<phone>"......
  • 00环境搭建
    目录前言一、环境搭建1.arm-none-eabi-gcc2.openocd三、创建stm32标准库工程1.创建工程目录2.修改stm32_flash.ld文件3.写makefile文件4.修改core_cm3.c5.写main函数并下载到板子上最后前言我在那天终于说服自己将系统换成了linux系统了,当换成了linux系统后我发现,keil5这个软件......
  • 使用docker搭建环境:安装tomcat、部署war包
     拉取上一步push的tomcat镜像,详见:https://www.cnblogs.com/uncleyong/p/18062439dockerpullregistry.cn-hangzhou.aliyuncs.com/qzcsbj/tomcat:v1.0  war包传到服务器(war包在网盘) 运行容器dockerrun\--nameqzcsbj_tomcat4\-p8184:8080\-v/root/my_do......
  • 搭建一个Java项目可直接拿去使用的通用工具类
    1、通用枚举类importlombok.Getter;/***@Description状态码定义约束,共6位数,前三位代表服务,后3位代表接口*比如商品服务210,购物车是220、用户服务230,403代表权限**/publicenumBizCodeEnum{/***短链分组*/GROUP_REPEAT(23001,"分组名......
  • 多节点oceanbase 集群部署
    安装前准备硬件要求CPU最少2核磁盘最少19G文件系统EXT4戓XFS关闭透明大页echonever>/sys/kernel/mm/redhat_transparent_hugepage/enabled确认操作系统版本是否支持[root@innodb-cluster01~]#cat/etc/redhat-releaseRedHatEnterpriseLinuxServerrelease7.9......
  • python+pytest接口自动化之测试函数、测试类/测试方法的封装
    前言今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才能被测试框架识别执行。例如单个接口的请求代码如下:importrequestsheaders={"user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,l......
  • 如何从0开始做自动化测试?
    自动化测试是使用软件工具在应用程序上自动运行测试的过程,无需任何人为干预。这可以通过减少手动测试的需要来保存时间并提高软件开发过程的效率。由于人为错误或不一致性,手动测试可能容易出错,这可能导致错误未被检测到。自动化测试通过提供一致和可靠的方法来测试应用程序,从而消......
  • [NCS] nrf5340 VS Code环境搭建
    1、安装工具链(nRF5xcommandlinetools)nRF5xcommandlinetools包括Jlink驱动以及Nordic自己开发的一些命令行工具,具体包括Jlink驱动,nrfjprog,nrfutil以及mergehex等。下载链接为:https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools/Do......
  • app自动化测试环境安装和原理解析
    1.移动测试的基本介绍定义:测试手机程序:appApp程序测试点:功能测试安装卸载测试升级测试兼容性测试不同的手机的系统使用测试环境不同androidios其他:基于Android二次开发系统华为:鸿蒙系统小米:澎湃系统网络切换网络终端使用中来电,短信横竖屏切换健壮性......