为了加快devstack脚本的安装速度,所以必须解决PYPI的本地源制作。为了长远打算,把整个python官方都mirror到本地,类似Ubuntu 12.04的源,定期同步就可以。
要想让Devstack几分钟装完,你必须在本地
- 本地的ubuntu 12.04源
- 本地Openstack git源
- 本地PYPI源
我自己不会写代码,这种活,就比较适合我来做,帮助同事提高一下开发环境搭建速度,这是我能做的事情。目前Ubuntu本地源,已经搞定,稳定运行快1年。git Openstack代码,我打算用gitlab来实现,后面再研究,难度不大。这次重点搞定PYPI。
搞一个本地pypi,其实就是安装python的这个包bandersnatch就可以,如果你是在Ubuntu下,那么估计就很简单,对着文档,应该就几分钟就可以搞定。由于我的Cobbler是在Centos下,日后也打算切换到Centos下,所有就希望在Centos 下去搞定,这样就变得很复杂,因为Centos6.x的Python是2.6.6,而这个软件是必须Python 2.7。
下载一个Python2.7,本地安装,本来也不是复杂的事情,不过自己手工安装,导致mirror的时候,出现https无法使用的问题。今天干净安装了一个centos 6.4,重复多次,总算是搞定。这次作法也比较专业,系统里有两个python版本.
2013年7月30日:基本把bandersnatch跑起来。
开发工具
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel \
ncurses-devel sqlite-devel readline-devel tk-devel
Python2.7.5
当前Python的2.7的最新版本是2.7.5
cd /opt
wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar zxvf Python-2.7.5.tgz
cd Python-2.7.5
./configure --prefix=/usr/local
make && make altinstall
Python2.7的库
centos默认带的是Python2.6的库,不同的版本有不同的库。
https://pypi.python.org/pypi/distribute
Python的网站,很多都是通过https下载,wget无法直接使用https,懒得折腾,下载本地上传到opt目录下.
cd /opt unzip distribute-0.7.3.zip cd distribute-0.7.3 python2.7 setup.py install
安装virtualenv
easy_install-2.7 virtualenv
Bandersnatch
https://pypi.python.org/pypi/bandersnatch/1.0.5
安装过程,其实是参考官方文档
cd /opt virtualenv-2.7 bandersnatch cd bandersnatch bin/pip install -r https://bitbucket.org/ctheune/bandersnatch/raw/stable/requirements.txt
有可能运行出现中断和各种错误,多重复运行几次就ok.
设置bandersnatch
cd /opt/bandersnatch bin/bandersnatch mirror
会出现一个提示
2013-07-30 12:56:45,925 WARNING: Config file '/etc/bandersnatch.conf' missing, creating default config. 2013-07-30 12:56:45,926 WARNING: Please review the config file, then run 'bandersnatch' again.
你就编辑 /etc/bandersnatch.conf 文件就可以。默认应该就可以,我也只是修改了一下pypi存放的位置,改成在/home 目录下。
#directory = /srv/pypi directory = /home/pypi
设置Apache
我只需要把 /home/pypi/web 目录链接到apache目录下显示就可以
ln -s /home/pypi/web /var/www/html/pypi
设置客户端
假设你的Pypi目录是 http://10.1.199.5/pypi
在用户主目录下,
mkdir $HOME/.pip vi $HOME/.pip/pip.conf
输入下面内容
[global] index-url = http://10.1.199.5/pypi/simple
参考文档
http://toomuchdata.com/2012/06/25/how-to-install-python-2-7-3-on-centos-6-2/
https://pypi.python.org/pypi/bandersnatch
刚好今天下午在尝试搭建pypi镜像,就看到你的blog,太好了。
我是昨晚开始搞,现在正在下载中,速度还不错,估计需要明天晚上才能全部下载完。
太麻烦,直接pypi-server
已经够简单了。直接pypi,太慢了。
请问 pypi源同步下来要占多少磁盘容量
50G
试过了devpi, pep381client, pipy-server, bandersnatch才看到这个blog。