gitlab+jenkins+docker 实现自动化部署(一)

目录

1.安装环境

1.1配置JDK

1.2 配置maven环境

 1.3 dokcer的安装

2. 使用docker搭建gitlab

3.使用docker部署Jenkins


此次用一台主机作为试验环境,gitlab和jenkins使用容器化的方式部署。

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,提供了数百个插件来支持构建,部署和自动化任何项目。我们可以使用Jenkins结合常用的版本控制工具(git、svn等)来实现自动部署项目,比如说我们从本地上传代码到Gitlab代码仓库,Jenkins就会帮我们自动同步代码,然后经编译打包之后推送至远程Docker仓库,再之后我们通过服务器从远程Docker仓库拉取镜像、创建及启动容器,然后就可以通过浏览器访问了,整个过程几乎都是自动完成的,而我们只需要上传代码就可以了。

1.安装环境

JDK下载路径:链接: https://pan.baidu.com/s/1HL8T7tgJnO2ZryihRVt44w 提取码: 868r 

1.1配置JDK

JDK:我们让jdk放在指定的位置就需要我们先创建文件夹  

mkdir - p  /usr/java

gitlab+jenkins+docker 实现自动化部署(一)_第1张图片

 上传jdk到服务器指定的目录进行解压

tar -zxvf jdk-8u181-linux-x64.tar.gz

配置环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_181   ///java的具体解压包路径jdk1.8.0_181替换为你解压后的文件夹名字
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

gitlab+jenkins+docker 实现自动化部署(一)_第2张图片

 加载环境变量,查验java版本是否可以使用

source /etc/profile   //加载环境变量
java -verison //查看java版本

 成功安装java(不,应该说是成功可以调用java)

1.2 配置maven环境

将文件放置在指定目录,首先创建目录,进入到该目录下:

mkdir -p /usr/maven
cd /usr/maven

然后下载,解压。

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz  //下载
tar -zxvf apache-maven-3.3.9-bin.tar.gz    //解压

设置环境变量

export MAVEN_HOME=/usr/maven/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH

gitlab+jenkins+docker 实现自动化部署(一)_第3张图片

加载环境变量,测试maven是否可以调用:

source /etc/profile   //加载环境变量
mvn -v //查看是否成功

gitlab+jenkins+docker 实现自动化部署(一)_第4张图片

 配置镜像加速+指定仓库地址, 配置jar包下载路径,自己指定路径。

gitlab+jenkins+docker 实现自动化部署(一)_第5张图片

配置阿里镜像加速,默认是从中央仓库拉取的。

gitlab+jenkins+docker 实现自动化部署(一)_第6张图片

 1.3 dokcer的安装

之前的博客有写怎样安装详情请移步二进制安装Docker_秋为春的博客-CSDN博客_docker 二进制安装

2. 使用docker搭建gitlab

拉取镜像,不指定版本,默认拉取的是最新版本。

docker pull gitlab/gitlab-ce

创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 容器启动后可以映射到本机,然后后续就可以直接在主机查看和编辑了,不用再进入容器操作,便于日后升级, 因此我们先准备这三个目录。

# 配置文件
mkdir -p /home/gitlab/etc
# 数据文件
mkdir -p /home/gitlab/log
# 日志文件
mkdir -p /home/gitlab/data

创建并启动容器

docker run --publish 8443:443 \
    --publish 8090:80 \
    --name gitlab \
    --privileged=true
    --restart unless-stopped \
    -v /home/gitlab/etc:/etc/gitlab \
    -v /home/gitlab/log:/var/log/gitlab \
    -v /home/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest;

修改配置文件,不修改配置文件,是无法访问gitlab的。

修改 /home/gitlab/etc/gitlab.rb 把external_url改成部署机器的域名或者IP地址。

gitlab+jenkins+docker 实现自动化部署(一)_第7张图片

 修改 /home/gitlab/data/gitlab-rails/etc/gitlab.yml。

vi /home/gitlab/data/gitlab-rails/etc/gitlab.yml

找到关键字 ## Web server settings ,将 host 的值改成映射的外部主机 ip 地址和端口,这里会显示在 gitlab 克隆地址。 

gitlab+jenkins+docker 实现自动化部署(一)_第8张图片

修改之后,我们重启一下 gitlab

docker restart gitlab 

 就可以访问了

gitlab+jenkins+docker 实现自动化部署(一)_第9张图片

 但是不知道密码是啥,直接改吧,改为了wzj123456。

进入容器命令:docker exec -it <容器id> bash  
执行 gitlab-rails console   //进入中终端
user = User.where(username: 'root').first  //查找用户
user.password = 'wzj123456'  //更改密码
user.password_confirmation = 'wzj123456'    //
user.save!


必须同时更改密码和password_confirmation才能使其正常工作,别忘了保存更改

gitlab+jenkins+docker 实现自动化部署(一)_第10张图片

 进来了,啊哦,舒服。gitlab+jenkins+docker 实现自动化部署(一)_第11张图片

 操作

界面是英文的,如果想改中文的话,在设置里面改就好了,在这里就不多阐述这个了。

 新建空白项目gitlab+jenkins+docker 实现自动化部署(一)_第12张图片

 gitlab+jenkins+docker 实现自动化部署(一)_第13张图片

 clone一下代码

gitlab+jenkins+docker 实现自动化部署(一)_第14张图片

 如果没有Git命令,就需要yum安装一下

yum -y install git

 拉取

git clone http://192.168.17.153:8090/root/ceshi.git

由于我没有创建任何东西,所以拉的话是个空版本库,拉的期间还需要用户和密码。 

3.使用docker部署Jenkins

拉取Jenkins镜像

docker pull jenkins/jenkins:lts

运行Jenkins

docker run --name=jenkins --privileged=true \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v $(which docker):/usr/bin/docker \
-v /etc/sysconfig/docker:/etc/sysconfig/docker \
-v /usr/java/jdk1.8.0_181:/usr/java/jdk1.8.0_181 \
-v /usr/maven/apache-maven-3.3.9:/usr/local/maven \
-v /usr/maven/repo:/usr/local/maven_repository \
-v /usr/jenkins-data:/var/jenkins_home \
jenkins/jenkins:lts

gitlab+jenkins+docker 实现自动化部署(一)_第15张图片

 浏览器打开:http://192.168.17.153:8080

gitlab+jenkins+docker 实现自动化部署(一)_第16张图片

 在docker中查密码

docker logs jenkins

gitlab+jenkins+docker 实现自动化部署(一)_第17张图片 我们选择推荐的插件

gitlab+jenkins+docker 实现自动化部署(一)_第18张图片

 安装完成了吖

gitlab+jenkins+docker 实现自动化部署(一)_第19张图片

进行实例地址配置,该地址将作为将来Jenkins的访问地址:

gitlab+jenkins+docker 实现自动化部署(一)_第20张图片 

Maven配置修改,依次进入:系统管理 > 全局工具配置

①首先是顶部的Maven,我们选择文件系统中的setting文件,文件路径使用创建容器时指定的Maven路径/usr/maven/

/usr/maven/apache-maven-3.3.9/conf/settings.xml

gitlab+jenkins+docker 实现自动化部署(一)_第21张图片

②然后拉到最下边Maven节点,点击新增Maven,起一个名字,然后指定maven路径,去掉自动安装的选项,然后应用>保存

gitlab+jenkins+docker 实现自动化部署(一)_第22张图片 创建项目

gitlab+jenkins+docker 实现自动化部署(一)_第23张图片

 点击确定之后会跳入配置界面,接下来就是配置我们的自动化操作,首先是配置项目的拉取地址,在这我是基于Gitlab的。

gitlab+jenkins+docker 实现自动化部署(一)_第24张图片

报错是因为没有认证,需要添加GitLab的账号和密码

gitlab+jenkins+docker 实现自动化部署(一)_第25张图片

 添加后就没有报错gitlab+jenkins+docker 实现自动化部署(一)_第26张图片

后续接着爆肝~~

 

 

 

 

 

 

 

你可能感兴趣的:(云原生,jenkins,docker,运维,gitlab)