自动化运维工具Fabric安装配置使用(CentOS6.3)

来源:互联网 发布:淘宝模拟装机 编辑:程序博客网 时间:2024/06/09 18:57

1.安装

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyum install -y python26 python26-devel gcc python-setuptoolswget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.pypython ez_setup.pywget https://raw.github.com/pypa/pip/master/contrib/get-pip.pypython get-pip.pypip install --upgrade setuptoolsyum install -y python-pippip install fabricrpm -Uvh ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/dalgaaf:/ceph:/extra/CentOS_CentOS-6/x86_64/python-pycrypto-2.5-22.1.x86_64.rpm


2.配置sshkey

以root登录fabric server
ssh-keygen
cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxdbib0/5Iraisu9KMslDWP6+VGiyL5aif4CLb1DFtddDVQiXzdpfsqjwEioZwtZuttQwVZludVhKv9QBUEqs5MByUZBEmV82LR5iM2TEsuyIXNGlEikorfWmandEVRw2NA70pY/o4Ba3P+EAkcH3zEWPARUGTzmieqJnHFyQzsVqLA+2lrXgByf5HtSPK1sYdKdrvI4RzL8n26izhZtvK1yYk5bEPKG8NH0LeKA+AvDRjPgtMHTnzLfo9mM5ZJlfJ2UYyLfw5FEN51FZWwQhbujeLFsgEptbhFCLz+7Liv4kW7PrgZ6m5PpkeWzgde37V2yl+2RWvodhs+wyxjLzYw== root@mahf2slm085

以root登录想要用fabric管理的远程server (ip:10.224.68.84)
vi ~/.ssh/authorized_keys
填入以下内容
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxdbib0/5Iraisu9KMslDWP6+VGiyL5aif4CLb1DFtddDVQiXzdpfsqjwEioZwtZuttQwVZludVhKv9QBUEqs5MByUZBEmV82LR5iM2TEsuyIXNGlEikorfWmandEVRw2NA70pY/o4Ba3P+EAkcH3zEWPARUGTzmieqJnHFyQzsVqLA+2lrXgByf5HtSPK1sYdKdrvI4RzL8n26izhZtvK1yYk5bEPKG8NH0LeKA+AvDRjPgtMHTnzLfo9mM5ZJlfJ2UYyLfw5FEN51FZWwQhbujeLFsgEptbhFCLz+7Liv4kW7PrgZ6m5PpkeWzgde37V2yl+2RWvodhs+wyxjLzYw== root@mahf2slm085

3.配置sftp作为sshd的sub-system

以root登录想要用fabric管理的远程server
vi /etc/ssh/sshd_config
增加一行
Subsystem   sftp   /usr/libexec/openssh/sftp-server


4.执行fabric脚本来管理远程server

以root登录fabric server
vi /root/fabfile.py
填入以下脚本

#!/usr/bin/pythonfrom fabric.contrib.files import *from fabric.api import *from fabric.colors import *from fabric.tasks import *output['debug'] = Truedef host_os():        run('uname -s')        print(red(" my ") + green(" name ") + blue(" is ") + yellow(" test "))        put('/tmp/test.py', '/tmp/')        get('/tmp/cdpr.log', '/tmp/')

执行fabric脚本
fab -f fabfile.py host_os -H root@10.224.68.84

得到一下结果,执行成功
Using fabfile '/root/fabfile.py'
Commands to run: host_os
Parallel tasks now using pool size of 1
[root@10.224.68.84] Executing task 'host_os'
[root@10.224.68.84] run: /bin/bash -l -c "uname -s"
[root@10.224.68.84] out: Linux
[root@10.224.68.84] out:

 my  name  is  test
[root@10.224.68.84] put: /tmp/test.py -> /tmp/test.py
[root@10.224.68.84] download: /tmp/cdpr.log <- /tmp/cdpr.log

Warning: Local file /tmp/cdpr.log already exists and is being overwritten.


Done.
Disconnecting from 10.224.68.84... done.




原创粉丝点击