需求:
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
yum install httpd mod_wsgi -y