软件及文件准备
- 虚拟机:我使用的是virtual box 以下简称VB
- centos7 镜像 一下简称 ISO
开始
前期准备工作
-
在 VB 中使用ISO安装两台 cenos系统 虚拟机 centos-01、centos-02
-
刚安装的虚拟机是无法链接外网的,所以需要在虚拟机关机状态下配置网络,以下只展示重要步骤
-
配置好网络后,启动 centos-01、centos-02 并且使用root账户及对应的密码登录后分别执行命令:
hostname -I
注意I 是大写的i,会出现类似如下结果
其中框出来的ip即为主机的内网ip -
出于个人习惯会直接先执行 yum update -y 更新目前虚拟机中的软件包
安装docker
-
由于国内网络较慢,一般直接使用国内的yum源,在这里我使用的阿里的源,使用如下命令增加源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新yum源,使用如下命令:
yum makecache fast
-
执行如下命令安装docker 的必要软件
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
注意:其中docker-compose-plugin插件只是为了启动docker及在不久的未来可以更好的去使用docker -
启动docker命令:
systemctl start docker
-
设置docker开机自启动:
systemctl enable docker
安装gitlab并使用docker compose 插件启动
- 使用docker下载镜像,目前我使用的gitlab官网推荐的镜像版本
- 使用命令下载gitlab后准备docker 安装gitlab时需要的文件及目录
- 使用命令新建目录用于指定docker容器映射的根目录
mkdir -p /software/docker/
- 在上述目录下使用同样的方式创建以下目录:
- gitlab容器的目录
mkdir -p /software/docker/gitlab
- 容器与虚拟机目录映射时需要的目录:
- mkdir -p /software/docker/gitlab/config
- mkdir -p /software/docker/gitlab/logs
- mkdir -p /software/docker/gitlab/data
- gitlab容器的目录
- 进入
/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'
- 使用命令新建目录用于指定docker容器映射的根目录
3. 启动gitlab 容器,在docker-compose.yml所在的目录下执行 命令:docker compose up -d
4. 打开浏览器访问 http://192.168.1.11:3000 即可
5. 后续建立自己的仓库并上传代码即可
安装jenkins并使用docker compose 启动
-
使用docker下载镜像,目前我使用的jenkins镜像是docker社区中的jdk 1.8版本,有需要的话,可以根据自己的jdk版本下载即可
-
下载后与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'
-
使用docker compose up -d 启动
-
此时启动时查看日志,会发现出现没有权限,那么就需要使用
chown -R 1000:1000 /home/docker/jenkins
修改权限。该路径为jenkins容器映射的宿主机目录 -
再次启动就可以启动成功了。
-
访问时使用 ip:port即可进入jenkins的配置页面,其他步骤可自行百度
-
如果需要更新jenkins版本可以使用如下步骤
- 将新版本的jenkins.war下载好
- 使用ssh工具将war包上传到 jenkins 容器映射的虚拟机目录中
- 在虚拟机中使用root权限登录到jenkins容器中,命令:
docker exec -it -u root jenkins /bin/bash
其中jenkins 可以用任何容器名代替 - 在容器中使用cd 命令进入新版本jenkins.war包存在的与虚拟机目录有映射关系的目录
- jenkins容器中旧版本的war包的目录在容器的 /user/share/jenkins中,所以需要将新版本的war包与旧版本的war包替换掉
- 重启jenkins即可成功升级jenkins
注意:jenkins + jdk1.8 版本的镜像 升级的话必须注意有的jenkins版本不支持升级
配置jenkins
- 配置页面完成后,进入插件管理下载git parameter (用于拉取gitlab仓库中的代码)、publish over ssh(用于推送代码到web服务器)
- 安装完成后开始配置jenkins中需要的环境
- maven 环境配置:点击全局工具配置后下拉找到maven,点击新增maven,输入maven的名称(随便填写),输入maven的路径(该路径是jenkins容器中的目录),点击应用,保存
- 配置好后暂时还无法使用,需要使用root账户进入jenkins容器并且给mvn 命令授权,否则报错没有权限
chmod a+x /usr/local/apache-maven-3.5.2/bin/mvn (a:所有用户 +:增加权限 x:执行权限)
- Publish over SSH配置:点击系统配置,下拉后找到Publish over SSH 并且在ssh servers 选项中设置web服务器相关信息。如下图
注意:romote directory 中填写的目录必须现在centos-02 中先新建好/www/ 目录
- maven 环境配置:点击全局工具配置后下拉找到maven,点击新增maven,输入maven的名称(随便填写),输入maven的路径(该路径是jenkins容器中的目录),点击应用,保存
创建任务实现dev-ops
-
新建名为devops-test任务并选择
构建一个自由风格的软件项目
-
选择源码管理中的git并填写远程仓库的url
-
使用git账号密码登录
输入了账号密码后,点击确定
-
继续下拉直到看到构建,点击增加构建步骤
-
选择构建时使用的maven工具
-
继续下拉直到
构建后操作
注意:其中构建后使用的脚本文件使用的是远程服务器的绝对路径,不使用相对路径 -
最后保存,然后回到我的视图就可以看到刚新建的任务,然后直接点击开始构建就可以了。