内网环境构建pypi仓库
来源:互联网 发布:网站如何做好seo 编辑:程序博客网 时间:2024/06/07 17:39
需求:
Python提供了大量的三方库组件,在公网环境下,用户可以通过pip install 的安装方式进行包的下载及安装。在整个持续集成阶段,为了保证环境的一致性,首先我们需要在客户端上安装上相关的依赖库组件,每次通过公网传输,容易受到公网网络环境的影响导致持续部署的整个阶段执行时间变长。为了提高持续部署的稳定性,并降低公网带宽利用率。决定采用在内网环境搭建pypi仓库。
方法:
GitHub上有非常多类似的python开源代码。本文选用了Flask_pypi_proxy工具。具体的工作方式类似于Java的Nexus仓库,pypi仓库作为一个缓存仓库,当从公网上调用过某个三方组件时,该组件即被缓存到了本地。待下次使用时,即可从本地缓存仓库中拉去。Flask作为一个轻量级的web组件,可以非常容易的通过apache的WSGI模块进行web的发布。
下面来说说具体的实现方法
环境:
Centos7.2 请先确保关闭selinux及防火墙
步骤:
1. 安装flask_pypi_proxy、httpd/mod_wsgi
首先,由于pypi仓库仅仅是通过代理的方式进行工作,所以确保你的pypi服务器能够访问外网。然后安装flask_pypi_proxy以及apache的相关功能模块。(这里不介绍httpd及httpd_wsgi的配置方式,请自行百度)
pip install flask_pypi_proxy
yum install httpd mod_wsgi -y
systemctl start httpd
yum install httpd mod_wsgi -y
systemctl start httpd
2. 修改httpd配置文件
touch pypi_proxy.conf
cat pypi_proxy.conf
<VirtualHost *:80>
ServerName pypi.domain.com
WSGIDaemonProcess pypi_proxy threads=5
WSGIScriptAlias / /var/www/cgi-bin/flask_pypi_proxy.wsgi
</VirtualHost>
cat pypi_proxy.conf
<VirtualHost *:80>
ServerName pypi.domain.com
WSGIDaemonProcess pypi_proxy threads=5
WSGIScriptAlias / /var/www/cgi-bin/flask_pypi_proxy.wsgi
</VirtualHost>
3. 编辑flask_pypi_proxy.wsgi,配置代理仓库,日志位置以及代理地址。注意:/data/pypi/simple路径需存在
mkdir -p /data/pypi/simple
mkdir -p /var/log/pypi
chown apache:apache /data/pypi/simple
chown apache:apache /var/log/pypi
vim /var/www/cgi-bin/flask_pypi_proxy.wsgi
import os
os.environ['PYPI_PROXY_BASE_FOLDER_PATH'] = '/data/pypi/simple'
os.environ['PYPI_PROXY_LOGGING_PATH'] = '/var/log/pypi/proxy.logs'
os.environ['PYPI_URL'] = 'http://pypi.python.org'
from flask_pypi_proxy.views import app as application
5. 重启apache服务
systemctl restart httpd
6. 在客户端进行配置
在~/.pip/pip.conf文件中添加或修改
[global]
index-url = http://pypi.domain.com/simple/
[install]
trusted-host=pypi.domain.com
配置完成之后,可使用pip install命令进行下载安装,若成功,则在server的代理仓库路径下会将包进行缓存,这样下次使用时即可从缓存仓库中拉取。
注:有一定概率可能会下发失败。这时可以尝试使用pip install -i http://pypi.domain.com/simple进行尝试,成功之后便可正常使用。
mkdir -p /data/pypi/simple
mkdir -p /var/log/pypi
chown apache:apache /data/pypi/simple
chown apache:apache /var/log/pypi
vim /var/www/cgi-bin/flask_pypi_proxy.wsgi
import os
os.environ['PYPI_PROXY_BASE_FOLDER_PATH'] = '/data/pypi/simple'
os.environ['PYPI_PROXY_LOGGING_PATH'] = '/var/log/pypi/proxy.logs'
os.environ['PYPI_URL'] = 'http://pypi.python.org'
from flask_pypi_proxy.views import app as application
5. 重启apache服务
systemctl restart httpd
6. 在客户端进行配置
在~/.pip/pip.conf文件中添加或修改
[global]
index-url = http://pypi.domain.com/simple/
[install]
trusted-host=pypi.domain.com
配置完成之后,可使用pip install命令进行下载安装,若成功,则在server的代理仓库路径下会将包进行缓存,这样下次使用时即可从缓存仓库中拉取。
注:有一定概率可能会下发失败。这时可以尝试使用pip install -i http://pypi.domain.com/simple进行尝试,成功之后便可正常使用。
有任何配置方面的问题,欢迎留言。
0 0
- 内网环境构建pypi仓库
- [实验]虚拟实验环境中创建内网yum仓库
- 搭建私有的PyPI仓库源
- 配置maven内网仓库
- SBT构建开发环境与代理和仓库配置
- 利用网盘构建svn代码仓库
- 使用 Vmware Player在WIndows内构建Linux环境
- maven构建本地仓库
- docker构建私有仓库
- docker私有仓库构建
- 构建Docker私有仓库
- 构建cloudera maven仓库
- nexus代码仓库,Gitlab代码仓库构建
- 构建Maven本地仓库Nexus
- Docker-构建私有仓库Registry
- maven仓库、多环境
- 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)
- 构建n2n网络,实现随时随地控制内网主机
- java基础--内存分析
- opencv的HoughLinesP( )函数
- java从控制台获得输入
- 快速找出故障机器(微软面试题)
- spring学习笔记--IOC、aop,以及随…
- 内网环境构建pypi仓库
- 单例模式、软件安装
- svn代码提交问题、swt学习总结、rc…
- 存储过程的好处,group by&nb…
- 左连接中on 后面的条件与wher…
- 最少拦截系统-动态规划
- iOS图片两种压缩方法
- sklearn主要包简介
- 嵌入式驱动开发环境搭建