基于jenkins的自动化部署(适合初学者)

基于jenkins的自动化部署(适合初学者)

前置条件

需要配置:centos7

安装配置前置应用

安装并配置maven

<!--
当前maven仓库地址/data/maven/repository
maven中需要在<pluginGroups>中配置
-->

<pluginGroup>com.spotify</pluginGroup>

安装并配置docker,安装docker-compose

vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
systemctl daemon-reload
service docker restart

安装registry(镜像仓库)

registry latest 2d4f4b5309b1 4 months ago 26.2MB

安装gitlab

创建目录

/usr/local/docker/gitlab/config
/usr/local/docker/gitlab/data
/usr/local/docker/gitlab/logs

使用docker compose

version: '3'
services:
  gitlab:
    image: 'twang2218/gitlab-ce-zh'
    restart: always
    hostname: 'ip'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url= 'http://ip'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        gitlab_rails['gitlab_shell_ssh_port']= 22
        unicorn['port']= 8888
        nginx['listen_port']= 80
    ports:
      - '8089:80'
      - '8443:443'
      - '2222:22'
    volumes:
      - /home/gitlab/config:/etc/gitlab
      - /home/gitlab/data:/var/opt/gitlab
      - /home/gitlab/logs:/var/log/gitlab
twang2218/gitlab-ce-zh latest 18da462b5ff5 2 years ago 1.61GB

端口号:8089 8443 2222
主账户名和密码
账户名:root
密码:rootroot
访问:http://ip:8089

安装Jenkins

因为主要是自动化部署,有些可能不走docker安装,这里Jenkins安装直接用yum安装,需要使用docker安装的直行百度

yum -y install jenkins

#vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8090"
JENKINS_HOME="/home/jenkins/jenkins"

设置并自启动

systemctl start jenkins
systemctl status jenkins
systemctl restart jenkins

图片
密码 123456

安装git

yum install -y git
#配置git
git config --global user.name "ganghang"
git config --global user.email "ganghang@ganghang.com"
ssh-keygen -t rsa -C "ganghang@ganghang.com"

生产公钥和私钥

在这里插入图片描述
设置ssh连接的密码是123456,可以不设置,看个人
公钥:/root/.ssh/id_rsa.pub
私钥:/root/.ssh/id_rsa
将公钥配置到gitlab上
将私钥配置到jenkins上

配置Jenkins

按装插件:maven,gitlab

配置jenkins全局工具配置

在这里插入图片描述

配置jdk和maven

在这里插入图片描述
在这里插入图片描述

测试 在jenkins中运行项目

前提:gitlab仓库中有项目,并且私钥已经配置到gitlab上

  1. 创建一个名为 test 的maven项目
  2. 将gitlab中的ssh地址复制过来粘贴在Git上ssh://git@ip:2222/root/bladex.git
  3. 配置Credentials在centos中查看镜像在浏览器运行 http://ip:5000/v2/_catalog

配置持续集成,持续交付,持续部署

单模块构建,实例:blade-gateway

配置gitlab:

在这里插入图片描述

删除镜像,容器,启动容器脚本:以网关为例:
关闭并删除容器(该脚本在构建容器之前执行)

#!/bin/bash
appName="xxx_gateway"
word="1"
echo "$word"
word=`docker ps -a -q --no-trunc --filter name="$appName"`;
echo "$word"
if [ -z "$word" ];
then
echo "当前不存在该容器,直接进行启动该操作"
elif [ -n "$word" ];
then
echo "当前已存在容器,停止并移除该容器:docker stop $word ----- docker rm $word"
docker stop "$word"
docker rm "$word"
elif [ "$word" == "1" ];
then
echo "查询的信息有误,执行默认操作: docker stop $word ----- docker rm $word"
docker stop "$word"
docker rm "$word"
fi

删除镜像(该脚本在构建容器之前执行)

#!/bin/bash
appName="ip:5000/xxx-gateway"
word="1"
echo "$word"
word=`docker images -q --filter reference="$appName"`;
if [ -z "$word" ];
then
echo "当前镜像不存在,直接启动该操作"
elif [ -n "$word" ];
then
echo "当前已存在镜像,移除该镜像 docker rmi $word"
docker rmi "$word"
elif [ "$word" == "1" ];
then
echo "查询的信息有误,执行操作:docker rmi $word"
docker rmi "$word"
fi

构建镜像步骤

在这里插入图片描述
创建并启动容器(该脚本在构建容器之后执行)

#!/bin/bash
oldAppName="ip:5000/blade-gateway"
newAppName="blade_gateway"
port="80"
word="1"
echo "$word"
word=`docker images -q --filter reference="$oldAppName"`;
if [ -z "$word" ];
then
echo "当前镜像不存在"
elif [ -n "$word" ];
then
echo "启动镜像 : docker run -id --name $newAppName -p $port:$port $word"
docker run -id --name $newAppName -p "$port":"$port" "$word"
elif [ "$word" == "1" ];
then
echo "查询的信息有误,执行操作:docker run -id --name $newAppName -p $port:$port $word"
docker run -id --name $newAppName -p "$port":"$port" "$word"
fi

当然还有多模块一起启动,这里不做脚本啦 ,需要的朋友可以直行写脚本安装啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值