一、centos7安装docker
建议先把用户切换成root用户来执行命令,用su命令来切换;
1、查看本机内核:uname -r
2.使用 root 权限更新 yum 包(生产环境中此步操作需慎重,看自己情况,学习的话随便搞)
yum -y update
这个命令不是必须执行的,看个人情况,后面出现不兼容的情况的话就必须update了
注意
yum -y update:升级所有包同时也升级软件和系统内核;
yum -y upgrade:只升级所有包,不升级软件和系统内核
3.卸载旧版本(如果之前安装过的话)
yum remove docker docker-common docker-selinux docker-engine
4.安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
5.更新yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6.查看版本以及安装
yum list docker-ce --showduplicates | sort -r
7.安装docker,可以安装最新版,可以选择指定的版本安装(根据自己来选择)
(1)yum -y install docker-ce 安装最新版本的docker,下面不加上-y的意思是找到安装包之后会询问is this ok?,需要手动输入y继续,加上-y之后就不会询问而是自动按选y处理
(2)yum -y install docker-ce-20.10.9-3.el7 安装指定版本
8.启动/重启/关闭docker
#启动
systemctl start docker
#重启
systemctl restart docker
#关闭
systemctl stop docker
#验证docker是否启动成功
docker version
二、Docker下安装jenkins
1.下载jenkins镜像(如果没设置docker开机自启动的话,请先启动docker服务先)
docker search jenkins
第一个是官方版本,但是已标明废弃了,让用第二个jenkisn/jenkins代替,那我们就用第二个安装,用如下命令下载镜像;中间可能由于网络原因会报错或者中断,一般重新试多几次问题不大的,剩下就是等待安装的时间;
docker pull jenkins/jenkins
查看docker拉取的jenkins镜像
docker images
2.创建jenkins容器
(1)宿主机创建挂载目录,方便拉取/查看文件,以及给这个文件添加权限
mkdir -p /var/jenkins_home
chmod -R 777 /var/jenkins_home
(2)创建容器并启动
docker run -d -uroot -p 80:8080 --name jenkins_rain -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins
# -d 是后台启用jenkins服务
# -p 是端口映射
# -v 是数据挂载
# --name 是为容器命名
安装成功,查看创建的jenkins容器
# 查看运行中的容器
docker ps
# 查看全部的容器
docker ps -a
3.访问jenkins
查看本机ip地址:ifconfig
浏览器直接访问:http://192.168.223.134/,因为前面我创建jenkins时用的是80的端口,所以这里我没加端口号,你也可以自定义端口号来创建jenkins,访问格式:ip地址+端口号;
注意:可能会遇到访问失败,有可能是你本机的防火墙打开了
# 关闭防火墙
systenctl stop firewalld
获取密码有两种方式:
(1)直接命令
cat /var/jenkins_home/secrets/initialAdminPassword
(2)直接用xftp连接宿主机访问:/var/jenkins_home/secrets/initialAdminPassword(用记事本打开复制即可)
安装插件,可以选择推荐插件安装,也可以自己选择插件安装(我这里选择后者)
更改插件下载源,复制这个网址进去:http://mirror.esuni.jp/jenkins/updates/update-center.json
安装gitlab、allure两个插件,直接搜索,安装过程中可能某些必备的插件会安装失败,我们可以选择手动安装
直接搜索安装插件allure、gitlab
插件下载失败,需要手动下载,手动下载插件网址:https://updates.jenkins-ci.org/download/plugins/
手动下载例子
下载成功之后,直接去jenkins手动去上传刚刚下载的插件文件
上面就是手动安装的教程,根据jenkins提示去下载对应的插件版本,再去上传文件,最后重启jenkins;
三、jenkins容器安装python3环境
1.先用wget下载最新的python3文件 ,建议先进入存放python3的文件夹里面执行,方便找到下载的路径在哪
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
2.下载完成后将下载的文件复制到容器内的/usr/src目录下
docker cp Python-3.9.9.tgz jenkins_rain:usr/src
3.进入容器
docker exec -it -uroot jenkins_rain bash
4.查看刚刚复制的文件是否在容器/usr/src目录下
5.查看系统版本,有的系统要固定的命令来安装软件包,这里最好先确认下你本机的系统
我这里是Debian,可以用 apt-get命令安装软件,按如下命令顺序执行,完成py3的安装
#同步索引,这样才能获取最新的软件包,执行的结果是会更新
# /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引
apt-get update
#升级已安装的软件包
apt-get upgrade
#安装依赖包(命令一条一条执行)
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
#切换目录到复制的python3文件所在位置
cd /usr/src
#解压缩python安装包
tar -zxvf Python-3.9.9.tgz
#将解压缩后的Python-3.9.9重命名为py3
mv Python-3.9.9 py3
#进入py3目录
cd py3
#make编译安装(命令一条一条执行)
./configure --prefix=/usr/src/py3
make
make install
#添加软链接
ln -s /usr/src/py3/bin/python3.9 /usr/bin/python3
ln -s /usr/src/py3/bin/pip3.9 /usr/bin/pip3
6.验证python环境和pip3是否安装正常,如下图表示安装完成
四、jenkins容器安装allure
1.先用wget下载最新的allure文件 ,建议先进入存放allure的文件夹里面执行,方便找到下载的路径在哪
docker cp allure-2.17.3.tgz jenkins_rain:usr/src
3.进入容器
docker exec -it -uroot jenkins_rain bash
4.查看刚刚复制的文件是否在容器/usr/src目录下
5.安装allure
#解压缩allure包
tar -zxvf allure-2.17.3.tgz
#重命名
mv allure-2.17.3 allure
#设置环境变量
cat >> /root/.bashrc << "EOF"
export PATH=/usr/src/allure/bin:$PATH
EOF
#更新环境变量
source /root/.bashrc
#安装完成
6.验证allure是否安装正常,如下图表示安装完成
五、jenkins配置与启动项目
1.上面的插件安装完之后,进去jenkins配置jdk、git、allure环境变量,以及配置邮件
配置JDK,不知道jdk路径的可以用命令 echo $JAVA_HOME 查看
配置GIT,不知道git路径的,可以用which git查看
配置ALLURE, alllure的安装目录为jenkins容器下安装allure时的安装目录
配置邮件
配置完点击应用,保存
2.手动更新项目(目前方案没有gitlab,后续采用该方案),大概步骤如下:
#1- 先把项目的自动化脚本文件夹放到--宿主机与容器挂载的目录下
#2- 使用xftp工具,放到--宿主机与容器挂载的目录下,容器下查看下
cd /var/jenkins_nome
ls
#3- jenkins创建工程
#4- 新建任务
#5- 构建一个自由风格的软件项目
#6- 进入工程--点击配置
#7- 选择构建--操作shell 执行pytest 运行脚本
#8- 增加邮件--构建后操作
(1)先把项目的自动化脚本文件夹放到–宿主机与容器挂载的目录下
(2)jenkins创建工程
(3)配置工程,在完成系统设置后,还需要给需要构建的项目进行邮件配置。
选择配置构建后操作模块,进入系统配置页面后,点击上方的构建后操作选项,配置内容如下:
(4)执行shell命令启动项目
#!/bin/bash
rm -rf allrue-results
cd Delivery_System/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
exit 0
点击保存,去工程中点击构建,如下图构建成功,如果构建失败,请查看控制台输出的日志来进行排查
3.jenkins关联git实现自动化流程
(1)docker安装gitlab容器
# 查看gitlab版本
docker search gitlab
# 拉取gitlab镜像文件
docker pull gitlab/gitlab-ce
# 由于是docker镜像运行, 所以我们需要把gitlab的配置, 数据, 日志存到容器外面, 即将其挂载到宿主机。先准备三个目录:
# 切到srv目录
cd /srv
# 创建gitlab文件夹
mkdir gitlab
# 切换到gitlab文件夹中分别创建config,logs,data三个文件夹
cd gitlab
mkdir config logs data
# 创建gitlab容器
docker run -di -p 443:443 -p 9001:80 -p 8022:22 --hostname 虚拟机的Ip --name mygitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v
/srv/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce
(2)启动gitlab容器创建项目
输入你电脑ip:9001就可进入gitlab
root用户的初始密码可以进入容器内查看
如果要修改root用户的密码,请参考这个链接:修改root用户密码
(3)gitlab关联jenkins
先在gitlab上创建一个项目
创建完项目之后,本机上传代码到git项目上,具体的方法可以百度下
jenkins新建一个项目,也可以用上面手工更新的那个项目,然后直接关联git即可
每一次推送代码到git仓库时,就会自动构建一次,也会有对应的allure报告