web自动化jenkins持续集成_centos版
- 01 python环境
- 1.1 完全卸载原有python3
- 1.1 安装依赖
- 1.2 下载python
- 1. 下载tag包并解压(tgz包方式)
- 2. make编译安装
- 3. 添加软链接
- 4. 环境验证
- 5. 创建虚拟环境
- 02 chrome和chromedriver
- 03 jenkins安装和配置
- 3.1 安装jdk
- 3.2 安装并配置jenkins
- 3.2.1 安装jenkins
- 3.2.2 升级jenkins-war包方式(有的插件无法安装)
- 3.2.3 安装jenkins插件
- 1. 修改jenkins下载源,
- 2. 下载中文插件
- 3. 用户权限管理
- 4. 凭证管理插件
- 04 jenkins项目构建触发
- 4.1 触发远程构建
- 4.2 其他工程构建后触发
- 4.3 定时构建(常用)
- 4.4 轮询SCM
- 4.5 Git hook自动触发构建(重点)
- 4.5.1 安装Generic Webhook Trigger插件
- 4.5.2 jenkins设置自动构建
- 4.5.3 Gitlab配置webhook
01 python环境
1.1 完全卸载原有python3
#卸载python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
#删除所有残余文件
whereis python3 |xargs rm -frv
#查看现有安装的python,验证是否删除干净
whereis python3
1.1 安装依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc
1.2 下载python
1. 下载tag包并解压(tgz包方式)
下载链接:https://www.python.org/downloads/release/python-373/
cd /usr/local
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
tar -zxvf Python-3.8.6.tgz
mkdir -p /usr/local/python3
chmod 777 /usr/local/python3
2. make编译安装
cd Python-3.8.6
./configure --prefix=/usr/local/python3
make && make install
3. 添加软链接
添加python软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
添加pip3软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
4. 环境验证
python3 -V
pip3 --help
pip3 -V
5. 创建虚拟环境
- 升级setuptools
pip3 install --upgrade setuptools -i https://pypi.doubanio.com/simple/
- 安装virtualenv包
pip3 install virtualenv -i https://pypi.doubanio.com/simple/
pip3 install virtualenvwrapper -i https://pypi.doubanio.com/simple/ # 命令优化工具包
# 如安装失败升级pip pip install pip --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
3. 创建virtualenv
软链接
find / -name virtualenv
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
virtualenv
4. 编辑virtualenvwrapper.sh
文件
vim /usr/local/python3/bin/virtualenvwrapper.sh
5. 配置环境变量
vi ~/.bashrc
export WORKON_HOME=~/.virtualenvs
source /usr/local/python3/bin/virtualenvwrapper.sh
source ~/.bashrc
6. 测试虚拟环境使用
mkvirtualenv 虚拟环境名称 # python2写法
kvirtualenv -p python3 虚拟环境名称 # python3写法
workon # 查看当前虚拟环境
workon 虚拟环境名称 # 进入虚拟环境
deactivate # 退出当前虚拟环境
- 本地代码调试
python3 -m pip install --upgrade pip
pip3 install -r requests.txt -i https://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pytest -v -s test_pytest[::类名[::函数名]]
02 chrome和chromedriver
03 jenkins安装和配置
3.1 安装jdk
yum install java-1.8.0-openjdk* -y
which java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
# java路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre/bin/java
3.2 安装并配置jenkins
3.2.1 安装jenkins
1)获取jenkins安装包
下载链接:https://www.jenkins.io/zh/download/ 2) 把安装包上传到192.168.66.101服务器,进行安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
- 修改Jenkins配置
- vi /etc/syscofig/jenkins
- 修改用户名、端口
JENKINS_USER="root"
JENKINS_PORT="8090"
4)把端口添加防火墙或关闭防火墙(二选1)
- 添加端口到防火墙
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload
- 关闭防火墙(企业工作中谨慎操作)
systemctl stop firewalld.service
systemctl disable firewalld.service
5)添加jdk安装路径
vi /etc/init.d/jenkins
添加如下内容
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre/bin/java
4)重新加载配置文件并启动Jenkins
systemctl daemon-reload # 命令重新加载配置文件
systemctl start jenkins # 命令启动Jenkins
systemctl status jenkins.service # 命令查看Jenkins服务的状态
- 浏览器访问
ifconfig
http://192.168.132.30:8090
- 获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
7)跳过插件安装
因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安
装
8)添加一个管理员账户,并进入Jenkins后台
3.2.2 升级jenkins-war包方式(有的插件无法安装)
rpm -ql jenkins # 查看jenkins所有目录
cd /usr/share/java/
mkdir /var/lib/jenkins/temp
mv jenkins.war /var/lib/jenkins/temp/
wget http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.349/jenkins.war # 根据提示下载相应版本war包
/etc/init.d/jenkins restart # 重启jenkins
# 报/usr/share/java/jenkins.war not installed,需要将war报移动到/usr/share/java/下
mv jenkins.war /usr/share/java
/etc/init.d/jenkins restart
systemctl restart jenkins # 系统重启jenkins
3.2.3 安装jenkins插件
1. 修改jenkins下载源,
有的版本是https://updates.jenkins.io/download有的是https://updates.jenkins-ci.org/download,根据情况修改
vim hudson.model.UpdateCenter.xml
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
2. 下载中文插件
- Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
- 重启Jenkins后,就看到Jenkins汉化了!(PS:但可能部分菜单汉化会失败)
3. 用户权限管理
- 插件下载
-
Role-based Authorization Strategy
插件来管理Jenkins用户权限 - 授权策略切换为"Role-Based Strategy",保存
- 创建角色
- 在系统管理页面进入
Manage and Assign Roles
,点击"Manage Roles" -
Global roles(全局角色)
:管理员等高级用户可以创建基于全局的角色
-Project roles(项目角色)
:针对某个或者某些项目的角色 -
Slave roles(奴隶角色)
:节点相关的权限 - 添加三个用色
-
baseRole
:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑
定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is
missing the Overall/Read permission -
dev_role
:该角色为项目角色。使用正则表达式绑定"dev.*",意思是只能操作itcast开头的项目。 -
test_role01
:该角色也为项目角色。绑定"test.*",意思是只能操作itheima开头的项目
3. 给用户分配角色
- 系统管理页面进入Manage and Assign Roles,点击Assign Roles
绑定规则如下: -
zhagnsan
用户分别绑定baseRole和role1角色 lisi
用户分别绑定baseRole和role2角色
4. 凭证管理插件
1. 安装Credentials Binding
插件
- 安装插件后,左边多了"凭证"菜单,在这里管理所有凭证
- 可以添加的凭证有5种:
- Username with password:用户名和密码
- SSH Username with private key: 使用SSH用户和密钥
- Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径
设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。 - Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
- Certificate:通过上传证书文件的方式
- 常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH
密钥)
2. 安装git工具
- centos安装git工具
查看此篇: - 查看git版本:
yum info git
- 安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
- 卸载git旧版本:
yum remove git
- 在线下载源码包:
wget https://github.com/git/git/archive/v2.9.2.tar.gz
- 解压git工具包:
tar -xzvf v2.9.2.tar.gz
- 编译
cd git-2.9.2
make prefix=/usr/local/git all
- 安装:
make prefix=/usr/local/git install
- 添加环境变量
vim /etc/profile
export PATH="/usr/local/git/bin:$PATH"
source /etc/profile
- 安装后查看版本:
git --version
3. 安装git和github插件
4. 用户密码类型
- 创建凭证:Jenkins->凭证->系统->全局凭证->添加凭证,选择"Username with password",输入Github的用户名和密码,点击"确定"。
- 测试凭证是否可用
- 创建一个FreeStyle项目:新建Item->FreeStyle Project->确定,找到"源码管理"->“Git”,在Repository URL复制Gitlab中的项目URL
- 找到"源码管理"->“Git”,在Repository URL复制Gitlab中的项目URL
- 保存配置后,点击构建”Build Now“ 开始构建项目
- 查看/var/lib/jenkins/workspace/目录,发现已经从Github成功拉取了代码到Jenkins中
3. ssh密钥类型
- git生成秘钥
- 将秘钥添加到git个人账号
git config --global user.name 'JSonliuJ'
git config --global user.email "492224300@qq.com"
kdir ~/.ssh
chmod 700 ~/.ssh
git --help
ssh-keygen -t rsa -C "邮件地址"
- 本地代码拉取及上传调试
git init
git init --bare git_project # 初始化一个空目录
cd git_project
git clone 远程仓库地址
touch test02.sh
git add test02.sh
git commit -m '注释'
git push # 远程仓库
- 删除远程仓库调试文件
git rm test02.sh
git commit -m "说明"
git push
- 在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来
- 测试凭证是否可用
04 jenkins项目构建触发
Jenkins内置4种构建触发器
- 触发远程构建
- 其他工程构建后触发(Build after other projects are build)
- 定时构建(Build periodically)
- 轮询SCM(Poll SCM)
4.1 触发远程构建
构建url:http://127.0.0.1:8081/job/api_%E8%BF%9C%E7%A8%8B%E6%9E%84%E5%BB%BA%E8%A7%A6%E5%8F%91%E5%99%A8/build?token=6666
4.2 其他工程构建后触发
4.3 定时构建(常用)
- 定时字符串从左往右分别为: 分 时 日 月 周
- 一些定时表达式的例子
每30分钟构建一次:H代表形参 H/30 * * * *
每2个小时构建一次: H H/2 * * *
每天的8点,12点,22点,一天构建3次: (多个时间点中间用逗号隔开) 0 8,12,22 * * *
每天中午12点定时构建一次 H 12 * * *
每天下午18点定时构建一次 H 18 * * *
在每个小时的前半个小时内的每10分钟 H(0-29)/10 * * * *
每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38) H H(9-16)/2 * * 1-5
4.4 轮询SCM
- 指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建
- 注意:这次构建触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用。
4.5 Git hook自动触发构建(重点)
4.5.1 安装Generic Webhook Trigger插件
4.5.2 jenkins设置自动构建
4.5.3 Gitlab配置webhook
1. 开启webhook功能
- 点击Admin Area -> Settings -> Network
勾选"Allow requests to the local network from web hooks and services"
2. 在项目添加webhook
- 点击项目->Settings->Integrations
- Manage Jenkins->Configure System