python + fabric 实现批量部署
2016-03-12 20:47
591 查看
Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务。它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入、中止执行等。
确保安装了pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装fabric
pip install fabric
在当前目录下新建文件fabfile.py,输入内容如下
执行操作hello:
fab hello
文件名不为fabfile.py时需进行指定,将fabfile,.py文件重命名为fab.py
fab -f fab.py hello
参数传递
执行操作hello:
fab hello:xiaoming
本地操作
执行本地操作命令使用local
执行本地命令
fab test
远程操作
执行远程操作命令使用run
例如,为远程2台服务器,安装pip
以上为多台服务器执行相同操作,当多台服务器执行不同操作时:
确保安装了pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装fabric
pip install fabric
在当前目录下新建文件fabfile.py,输入内容如下
def hello(): print("Hello fab!")
执行操作hello:
fab hello
文件名不为fabfile.py时需进行指定,将fabfile,.py文件重命名为fab.py
fab -f fab.py hello
参数传递
def hello(name): print "Hello %s" % (name)
执行操作hello:
fab hello:xiaoming
本地操作
执行本地操作命令使用local
from fabric.api import local def test(): local('cd /home/dev') local('ls')
执行本地命令
fab test
远程操作
执行远程操作命令使用run
例如,为远程2台服务器,安装pip
from fabric.api import cd, run, env, hosts env.hosts = ['192.168.101.131:22', '192.168.101.129:22'] env.user = 'root' env.password = 'toor' def install_pip(): run('mkdir -p /y01') cd('/y01') run('wget https://bootstrap.pypa.io/get-pip.py') run('python get-pip.py')
以上为多台服务器执行相同操作,当多台服务器执行不同操作时:
from fabric.api import env, roles, run, execute env.roledefs = { 'server1' : ['root@192.168.101.131:22'], 'server2' : ['root@192.168.101.129:22'] } env.user = 'root' env.password = 'toor' @roles('server1') def task1(): run('ls /home') @roles('server2') def task2(): run('du -sh /home') def test(): execute(task1) execute(task2)
相关文章推荐
- Python的MySQLdb模块安装
- python爬虫之lxml
- sum累加方式,python3.3,20160312
- python爬虫之BeautifulSoup
- [置顶] 利用python实现批量插入打印信息的方法
- Python 正整数任意进制互转换代码示例
- NLPIR2016分词的python3实现
- 用python爬取游戏图片
- python tuple整理
- python 双下划线命名
- python 判断字符串是否包含子字符串
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)
- Python RESTful API 学习(一)