使用docker 安装jenkins、gitlab实现devops自动部署java spring boot单体项目

软件及文件准备

  1. 虚拟机:我使用的是virtual box 以下简称VB
  2. centos7 镜像 一下简称 ISO

开始

前期准备工作

  1. 在 VB 中使用ISO安装两台 cenos系统 虚拟机 centos-01、centos-02
    在这里插入图片描述

  2. 刚安装的虚拟机是无法链接外网的,所以需要在虚拟机关机状态下配置网络,以下只展示重要步骤
    配置网络第一步:设置仅hostonly 网络连接方式,并且设置使用的网卡是宿主机网路设置中的虚拟网卡
    配置虚拟机网路第二步

  3. 配置好网络后,启动 centos-01、centos-02 并且使用root账户及对应的密码登录后分别执行命令:hostname -I 注意I 是大写的i,会出现类似如下结果
    执行hostname-I命令后的结果
    其中框出来的ip即为主机的内网ip

  4. 出于个人习惯会直接先执行 yum update -y 更新目前虚拟机中的软件包

安装docker

  1. 由于国内网络较慢,一般直接使用国内的yum源,在这里我使用的阿里的源,使用如下命令增加源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  2. 更新yum源,使用如下命令:yum makecache fast

  3. 执行如下命令安装docker 的必要软件 yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    注意:其中docker-compose-plugin插件只是为了启动docker及在不久的未来可以更好的去使用docker

  4. 启动docker命令:systemctl start docker

  5. 设置docker开机自启动:systemctl enable docker

安装gitlab并使用docker compose 插件启动

  1. 使用docker下载镜像,目前我使用的gitlab官网推荐的镜像版本
    官方文档中标注了使用的docker安装方式
    在这里插入图片描述
  2. 使用命令下载gitlab后准备docker 安装gitlab时需要的文件及目录
    1. 使用命令新建目录用于指定docker容器映射的根目录 mkdir -p /software/docker/
    2. 在上述目录下使用同样的方式创建以下目录:
      1. gitlab容器的目录 mkdir -p /software/docker/gitlab
      2. 容器与虚拟机目录映射时需要的目录:
        1. mkdir -p /software/docker/gitlab/config
        2. mkdir -p /software/docker/gitlab/logs
        3. mkdir -p /software/docker/gitlab/data
    3. 进入 /software/docker/gitlab目录 新建一个 docker-compose.yml 并写入如下内容后保存(根据需要配置)
      version: '3.6'
      services:
        web:
          image: 'gitlab/gitlab-ee:latest'
          restart: always
          container_name: gitlab
          environment:
            GITLAB_OMNIBUS_CONFIG: |
              external_url 'http://192.168.1.11'
              gitlab_rails['gitlab_shell_ssh_port'] = 2224
              # Add any other gitlab.rb configuration here, each on its own line
          ports:
            - '3000:80'
            - '3443:443'
            - '322:22'
            - '3929:8929'
            - '3224:2224'
          volumes:
            - '/software/docker/gitlab/config:/etc/gitlab'
            - '/software/docker/gitlab/logs:/var/log/gitlab'
            - '/software/docker/gitlab/data:/var/opt/gitlab'
          shm_size: '256m'
      

重要的命令解释
3. 启动gitlab 容器,在docker-compose.yml所在的目录下执行 命令:docker compose up -d
4. 打开浏览器访问 http://192.168.1.11:3000 即可
5. 后续建立自己的仓库并上传代码即可

安装jenkins并使用docker compose 启动

  1. 使用docker下载镜像,目前我使用的jenkins镜像是docker社区中的jdk 1.8版本,有需要的话,可以根据自己的jdk版本下载即可
    官网页面

  2. 下载后与gitlab安装的方式一致,创建好对应的目录,在目录中创建一个docker-compose.yml文件,文件内容如下:

    version: '3.6'
    services:
      web:
        image: 'jenkins/jenkins:lts-centos7-jdk8'
        restart: always
        container_name: jenkins
        ports:
          - '4080:8080'
          - '50000:50000'
        volumes:
          - '/software/docker/jenkins/jenkins-data:/var/jenkins_home'
          - '/software/docker/jenkins/maven:/usr/local/maven'
    

    相应的配置

  3. 使用docker compose up -d 启动

  4. 此时启动时查看日志,会发现出现没有权限,那么就需要使用 chown -R 1000:1000 /home/docker/jenkins修改权限。该路径为jenkins容器映射的宿主机目录

  5. 再次启动就可以启动成功了。

  6. 访问时使用 ip:port即可进入jenkins的配置页面,其他步骤可自行百度

  7. 如果需要更新jenkins版本可以使用如下步骤

    1. 将新版本的jenkins.war下载好
    2. 使用ssh工具将war包上传到 jenkins 容器映射的虚拟机目录中
    3. 在虚拟机中使用root权限登录到jenkins容器中,命令:docker exec -it -u root jenkins /bin/bash 其中jenkins 可以用任何容器名代替
    4. 在容器中使用cd 命令进入新版本jenkins.war包存在的与虚拟机目录有映射关系的目录
    5. jenkins容器中旧版本的war包的目录在容器的 /user/share/jenkins中,所以需要将新版本的war包与旧版本的war包替换掉
    6. 重启jenkins即可成功升级jenkins
      注意:jenkins + jdk1.8 版本的镜像 升级的话必须注意有的jenkins版本不支持升级

配置jenkins

  1. 配置页面完成后,进入插件管理下载git parameter (用于拉取gitlab仓库中的代码)、publish over ssh(用于推送代码到web服务器)
    git parameter 插件
    publish over ssh 插件
  2. 安装完成后开始配置jenkins中需要的环境
    1. maven 环境配置:点击全局工具配置后下拉找到maven,点击新增maven,输入maven的名称(随便填写),输入maven的路径(该路径是jenkins容器中的目录),点击应用,保存
      jenkins 全局配置
    2. 配置好后暂时还无法使用,需要使用root账户进入jenkins容器并且给mvn 命令授权,否则报错没有权限
      chmod a+x /usr/local/apache-maven-3.5.2/bin/mvn (a:所有用户 +:增加权限 x:执行权限)
    3. Publish over SSH配置:点击系统配置,下拉后找到Publish over SSH 并且在ssh servers 选项中设置web服务器相关信息。如下图
      publish over ssh 配置
      注意:romote directory 中填写的目录必须现在centos-02 中先新建好/www/ 目录

创建任务实现dev-ops

  1. 新建名为devops-test任务并选择构建一个自由风格的软件项目

  2. 选择源码管理中的git并填写远程仓库的url
    配置

  3. 使用git账号密码登录
    配置账号密码
    账号密码
    输入了账号密码后,点击确定
    选中刚配置的账号密码

  4. 继续下拉直到看到构建,点击增加构建步骤
    新增构建步骤

  5. 选择构建时使用的maven工具
    构建步骤的执行命令

  6. 继续下拉直到 构建后操作
    构建后操作
    注意:其中构建后使用的脚本文件使用的是远程服务器的绝对路径,不使用相对路径

  7. 最后保存,然后回到我的视图就可以看到刚新建的任务,然后直接点击开始构建就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值