项目运行环境配置
首先我们来看一下,你提交的代码都放在了服务器的什么位置
进入到workspaces目录下,可以看到提交的项目代码
但是,这时候,项目还不能运行起来,因为没有安装对应的环境依赖,接下来我们进入到jenkins所在的容器,安装python环境
进jenkins容器
docker exec -it -u root 容器id /bin/bash
查看当前操作系统
cat /etc/issue
这里查到的是Debian系统(不是ubuntu, 也不是centos),这里yum是没有的,所以不能用yum安装了,这里用apt-get代替yum
先执行更新apt-get
apt-get update
下载python3安装包,我这边安装的是3.8.10版本
root@3be4b6cd9b8c:/var/jenkins_home# cd /var/jenkins_home/
root@3be4b6cd9b8c:/var/jenkins_home# mkdir python3
root@3be4b6cd9b8c:/var/jenkins_home# cd python3/
root@3be4b6cd9b8c:/var/jenkins_home#apt-get install wget
root@3be4b6cd9b8c:/var/jenkins_home/python3# wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# tar -xvf Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# ls
Python-3.8.10 Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# cd Python-3.8.10
root@3be4b6cd9b8c:/var/jenkins_home/python3/Python-3.8.10# ./configure --prefix=/var/jenkins_home/python3
执行 ./configure --prefix=/var/jenkins_home/python3时报上面错:configure: error: no acceptable C compiler found in $PATH,这个是因为缺少gcc相关依赖包,下边使用apt-get代替yum安装相关依赖包
安装依赖包
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
apt-get install sudo
sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libxpm-dev libxext-dev
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev
编译安装
# 需要在python目录下执行
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make && make install
# 添加软链接,检查环境
ln -s /var/jenkins_home/python3/bin/python3.8 /usr/bin/python3
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
python3 --version
pip3 --version
# 升级PIP
/var/jenkins_home/python3/bin/python3.8 -m pip install --upgrade pip
如果你的linux系统需要python2和3并存,请继续往下看
python的ssl模块需要openssl 1.1.1,所以我们需要卸载旧版本的openssl,再手动安装新的openssl
# 卸载 openssl
rpm -qa | grep openssl 查看已安装的openssl
yum -y remove openssl-1.0.2k-25.el7_9.x86_64 卸载
# 手动安装 openssl
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
./config --prefix=/usr/local/openssl
yum -y install perl
./config --prefix=/usr/local/openssl
make && make install
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[spark@spark2 openssl-1.1.1]#
[root@qa openssl-1.1.1]# openssl version
OpenSSL 1.1.1 11 Sep 2018
# 安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
# 下载压缩包
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
tar -xvf Python-3.8.10.tgz
# 配置python文件存放目录,便于统一管理
./configure --prefix=/home/work/python/python3 --with-openssl=/usr/local/openssl/
# 编译安装
make && make install
# 配置软链接
ln -s /home/work/python/python3/bin/python3 /usr/bin/python3
ln -s /home/work/python/python3/bin/pip3 /usr/bin/pip3
# 查看pip配置
cat ~/.pip/pip.conf
# 升级PIP
/home/work/python/python3/bin/python3.8 -m pip install --upgrade pip
# 安装项目依赖
pip3 install -r requirements.txt
安装allure
# 安装Java环境
# 同样使用rz -be上传
# oracle官网 下载linux版本包
# https://www.oracle.com/java/technologies/downloads/#java8
# 在/usr/目录下创建java目录
mkdir /usr/local/java
cd /usr/local/java
# 把下载的文件 jdk-8u151-linux-x64.tar.gz 放在/usr/local/java/目录下
# 解压 JDK
tar -zxvf jdk-8u151-linux-x64.tar.gz
# 设置环境变量,修改
vi /etc/profile
## 在 profile 文件中添加如下内容并保存:
#set java environment
JAVA_HOME=/usr/local/java/jdk1.8.0_151
JRE_HOME=/usr/local/java/jdk1.8.0_151/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASS_PATH PATH
# 注意:其中 JAVA_HOME, JRE_HOME 请根据自己的实际安装路径及 JDK 版本配置。
# 让修改生效:
source /etc/profile
# 测试
java -version
# 显示 java 版本信息,则说明 JDK 安装成功
# 创建node文件,安装node
mkdir node
wget https://npm.taobao.org/mirrors/node/v15.8.0/node-v15.8.0-linux-x64.tar.gz
tar -zxvf node-v15.8.0-linux-x64.tar.gz
# 创建软连接
ln -s /home/work/node/node-v15.8.0-linux-x64/bin/npm /usr/bin/npm
ln -s /home/work/node/node-v15.8.0-linux-x64/bin/node /usr/bin/node
# 安装allure
npm install -g allure-commandline --save-dev
# 如以上方法不行,使用rz命令上传
yum install lrzsz -y
rz -be
tar -zxvf allure-commandline-2.13.0.tgz
cd package/
chmod 777 package
ln -s /home/work/allure/package/bin/allure /usr/bin/allure
rz命令扩展
-
-+, --append:将文件内容追加到已存在的同名文件
-
-a,–ascii:以文本方式传输
-
-b, --binary:以二进制方式传输,推荐使用
-
–delay-startup N:等待N秒
-
-e, --escape:对所有控制字符转义,建议使用
-
-E, --rename:已存在同名文件则重命名新上传的文件,以点和数字作为后缀
-
-p, --protect:对ZMODEM协议有效,如果目标文件已存在则跳过 -
-
q, --quiet:安静执行,不输出提示信息
-
-v, --verbose:输出传输过程中的提示信息
-
-y, --overwrite:存在同名文件则替换
-
-X, --xmodem:使用XMODEM协议
-
–ymodem:使用YMODEM协议
-
-Z, --zmodem:使用ZMODEM协议
-
–version:显示版本信息
-
–h, --help:显示帮助信息
到这步环境就搭建完成了,接下来说下我过程中遇到的坑,以及如何解决的
这里我遇到了一个坑,启动项目报错
多放查阅后,发现是我的python版本和openssl版本号不匹配,导致在运行python的时候,找不到ssl模块,下边说一下解决办法:
- 修改python配置
打开python的安装目录,找到setup文件
cd python/Python-3.8.10/Modules/
vi Setup
找到这五行代码,把注释取消掉(截图是我修改后的路径)
找到我们上边安装openssl的地址,python3.9以上版本这里的路径是openssl,我这里安装的是3.8版本,路径是SSL,所以找到我们SSL的实际安装目录,修改后保存
- 重新安装python
找到我们之前的python安装目录文件夹
rm -rf 删除
回到安装包路径下,重新编译安装
./configure --prefix=/home/work/python/python3
make && make install
问题解决,验证成功
继续安装python项目虚拟环境,防止服务器多个python项目的情况下,发生依赖冲突
- 方法1
pip3 install pipenv # 全局安装,如果只想在当前用户模式下安装,可添加参数:--user
如需更新可使用
pip3 install --user --upgrade pipenv
pip3 install pipenv
找到pipenv的安装路径
find / -name pipenv
##### 创建软连接
ln -s /home/work/python/python3/bin/pipenv /usr/bin/pipenv
##### 项目目录下创建虚拟环境
pipenv shell
pipenv install -r requirements.txt
pipenv run python3 run.py
pipenv graph 虚拟环境依赖
- 方法2
[root@qa skr_autotest]# python3 -m venv venv
[root@qa skr_autotest]# source venv/bin/activate
(venv) [root@qa skr_autotest]# pip list