阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在CentOS 6.3安装Python Fabric运行环境

150次阅读
没有评论

共计 2554 个字符,预计需要花费 7 分钟才能阅读完成。

在 CentOS6.3 下安装 fabric 的时候,总是安装不成功,在执行 fab 命令的时候,总是会抛出错误。
Traceback (most recent call last):
  File “/usr/bin/fab”, line 5, in <module>
    from pkg_resources import load_entry_point
  File “/usr/lib/Python2.6/site-packages/pkg_resources.py”, line 2655, in <module>
    working_set.require(__requires__)
  File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: paramiko>=1.10

解决方案

安装 Python2.7 替代系统默认的 Python2.6, 再安装 fabric 包

Centos6.3 系统默认自带的 Python 版本是 2.6.

1、下载 Python2.7 安装包
 在 Python 的官网下载页面下载 2.7 的源码包。
wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz

2、解压,编译,安装
xz -d Python-2.7.8.tar.xz
tar xvf Python-2.7.8.tar
cd Python-2.7.8
./configure –prefix=/usr/local/python2.7
make
make install

3、创建软连接覆盖系统默认的 python
ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python

系统的 yum 依赖于 python2.6,此时系统默认的 python 已经是 2.7.* 版本,要确保 yum 能正常运行,务必修改 /usr/bin/yum
vi /usr/bin/yum

将第一行的 #!/usr/bin/python 修改为#!/usr/bin/python2.6

4、安装 pip 包管理工具

pip 是一个安装和管理 python 包的工具.
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
ln -fs /usr/local/python2.7/bin/pip /usr/bin/pip

5、安装 fabric
pip install fabric
ln -fs /usr/local/python2.7/bin/fab /usr/bin/fab

到这里 fabric 就安装完成了,可以正常运行了,折腾了好久,终于搞好了。~~~ 在 Ubuntu 下安装 fabric 就省事很多。

附上执行简单部署的一份代码例子,仅供参考。
# -*- coding: utf-8 -*
# 添加中文注释的编码
#fabfile.py
from fabric.api import *

env.user = ‘root’
env.hosts = [‘192.168.1.100’]
# 远程服务器的密码, 这个建议不要填写,宁愿在运行的过程输入,因为这是明文显示的,不安全
# 也可以将机子的 ssh 打通,这样就可以避免输入密码的麻烦
#env.password = ‘testtest’

# 从版本库取出, 并删除.svn 文件
def download():
    local(‘rm -rf /tmp/newer’)
    local(‘mkdir /tmp/newer’)
    local(‘svn checkout svn://localhost/newer /tmp/newer’)
    local(‘find /tmp/newer -name “.svn” | xargs rm -rf’)

# 压缩打包
def pack():
    with lcd(‘/tmp/’):
        local(‘tar czvf newer.tar.gz ./newer’)

# 部署远程服务器目录结构
def display():
    run(‘rm -rf /var/www/html/tmp’)
    run(‘mkdir /var/www/html/tmp’)
    # 将本地的压缩包发送到远程服务器
    put(‘/tmp/newer.tar.gz’,’/var/www/html/tmp’)

    with cd(‘/var/www/html/tmp’):
        run(‘tar xvf newer.tar.gz’)

    #都部分目录进行特别处理
    with cd(‘/var/www/html/newer/public/’):
        run(‘cp -r ueditor ../../tmp’)

    with cd(‘/var/www/html/’):
        run(‘rm -rf newer’)
        run(‘cp -r /var/www/html/tmp/newer ./’)

    with cd(‘/var/www/html/newer/public’):
        run(‘rm -rf ueditor’)
        run(‘cp -r /var/www/html/tmp/ueditor ./’)

# 执行部署
def go():
    download()
    pack()
    display()

使用 Vagrant 和 Fabric 用于集成测试 http://www.linuxidc.com/Linux/2014-07/104113.htm

Fabric:Python 远程部署工具 http://www.linuxidc.com/Linux/2014-05/101616.htm

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2554字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中