`
j2ee_yohn
  • 浏览: 172178 次
  • 性别: Icon_minigender_1
  • 来自: 湖南/株洲
社区版块
存档分类
最新评论

fabric 自动化部署 python

阅读更多
1、安装python-devel yum install python-devel

2、pip python安装管理
       a、下载安装setuptools包 curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
            python ez_setup.py
       b、下载安装pip包 curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
             python get-pip.py

3、安装fabric pip install fabric
          如果出现encode异常设置 /usr/bin/pip添加 sys.setdefaultencoding('utf8')

http://docs.fabfile.org/en/1.4.0/index.html
Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。
让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。可以写这样一个Fabric脚本:
from fabric.api import run
def host_type():
    run('uname -s')


=====================================================

Python fabric实践操作
前面学习了理论,下面该练练手了。两台机器:10.1.6.186、10.1.6.159。fabric部署在10.1.6.186上面。

1  执行一个简单的task任务,显示两台机器的/home/guol/目录下的文件
#!/usr/bin/python
from fabric.api import *
from fabric.context_managers import *


env.hosts=['10.1.6.186','10.1.6.159']
env.password='xxxxxx'


def task1():
    with cd('/home/guol'):
        run('ls -l')


##结果
root@vm11:/tmp# fab task1
[10.1.6.186] Executing task 'task1'
[10.1.6.186] run: ls -l
[10.1.6.186] out: total 0
[10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local
[10.1.6.186] out:

[10.1.6.159] Executing task 'task1'
[10.1.6.159] run: ls -l
[10.1.6.159] out: total 0
[10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 159-remote
[10.1.6.159] out:


Done.
Disconnecting from 10.1.6.159... done.
Disconnecting from 10.1.6.186... done.


2  执行和1相同的任务,不过排除掉10.1.6.159这台机器
#!/usr/bin/python
from fabric.api import *
from fabric.context_managers import *


env.hosts=['10.1.6.186','10.1.6.159']
env.password='xxxxxx'

env.exclude_hosts=['10.1.6.159']


def task1():
    with cd('/home/guol'):
        run('ls -l')


##执行
root@vm11:/tmp# fab task1
[10.1.6.186] Executing task 'task1'
[10.1.6.186] run: ls -l
[10.1.6.186] out: total 0
[10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local
[10.1.6.186] out:




Done.
Disconnecting from 10.1.6.186... done.


更多请看:http://www.fabfile.org/
分享到:
评论

相关推荐

    Linux redhat python fabric自动化部署脚本

    settings.ini配置文件: [group_weblogicgp] group = weblogicgp group_id = 1001 [user_weblogic] group = weblogicgp user = weblogic user_id = 1001 home_dir = /weblogic shell = /bin/bash ...

    Python自动化部署工具Fabric的简单上手指南.pdf

    Python自动化部署工具Fabric是一个强大的用于远程服务器自动化执行任务的库,它基于SSH协议,使得开发者可以用Python语言编写脚本来管理和部署应用程序。Fabric简化了传统SSH命令行工具的操作,提高了效率和可读性。...

    python自动化运维

    总的来说,Python自动化运维是一个广泛涵盖多个领域的主题,包括系统管理、网络通信、配置管理、监控报警、自动化部署、故障排查等多个方面,通过学习和掌握这些知识,运维人员可以构建高效、可靠的自动化运维体系,...

    devops持续集成自动化部署常用功能

    3. **Python**:Python在自动化部署中也有广泛的应用,它提供了许多强大的库,如Fabric、Ansible和SaltStack,用于远程系统管理、自动化配置和部署。Python脚本可以用来执行复杂逻辑,如动态生成配置文件、自动化...

    自动化部署教程.docx

    Fabric 是一个 Python 库,用于简化自动化部署和管理的过程。Fabric 提供了一个简单的方式来执行远程命令、上传和下载文件、重启远程主机等。 下面是一个使用 Fabric 的示例代码: ``` from fabric.api import run...

    Python Linux系统管理与自动化运维

    2. 自动化部署:通过`Fabric`或`Ansible`实现远程服务器的自动化部署和配置。 3. 脚本化故障排查:Python脚本可以自动化执行诊断任务,如检查服务状态、网络连通性等。 4. 邮件通知:Python可以结合SMTP发送邮件,...

    Python Linux系统管理与自动化运维_opt1

    首先,它介绍了Python在Linux环境中的基础应用,包括安装Python环境、常用Linux系统管理模块的使用,如paramiko用于远程控制,fabric用于自动化部署等。其次,书中深入探讨了Python在监控、日志分析、性能调优等系统...

    Python自动化运维和部署项目工具Fabric使用实例

    Fabric是一个用Python编写的开源库,主要用于简化系统管理员的任务——实现远程服务器上的自动化部署、管理等操作。它通过SSH协议来与远程服务器交互,允许开发者编写简洁且易于理解的Python脚本来完成一系列复杂的...

    Ganymed实现自动化部署接口

    这个库的主要功能包括安全的远程登录、文件传输、命令执行等,为自动化部署提供了便利。在“Ganymed实现自动化部署接口”这一主题中,我们将深入探讨如何利用Ganymed库来实现这些功能。 1. **SSH2协议介绍**:SSH...

    使用Fabric自动化部署Django项目的实现

    【使用Fabric自动化部署Django项目的实现】 Fabric是一个Python库,用于编写可执行于远程服务器的命令,主要用于自动化运维任务,包括但不限于部署Web应用程序。在这个场景中,Fabric将帮助我们简化Django项目的...

    Python应用自动化部署工具Fabric原理及使用解析

    Fabirc是基于python实现的SSH命令行工具,非常适合应用的自动化部署,或者执行系统管理任务。 python2:pip3 install fabric python3:pip3 install fabric3 简单的例子: root@openstack:~# cat fabfile.py def ...

    Python自动化运维::技术与最佳实践

    - **广泛的库支持**:Python拥有丰富的第三方库,如Fabric、Ansible等,这些库大大简化了自动化脚本的开发过程。 - **跨平台性**:Python可以在多种操作系统上运行,这使得它可以用于管理和监控不同类型的服务器。 -...

    Python项目自动化多服务器部署的工具

    2. 配置管理:了解如何编写配置文件,如Ansible的playbooks或Fabric的任务函数,是实现自动化部署的关键。 3. 版本控制:Git等版本控制系统用于跟踪代码更改,确保每次部署的都是最新的、经过测试的代码。 4. 环境...

    如何利用Fabric自动化你的任务.pdf

    Fabric 是一个基于 Python 的工具,用于自动化部署和管理远程服务器任务。它允许你编写简单的 Python 函数,这些函数可以在多台主机上执行,极大地简化了命令行操作。这个框架特别适合开发者和运维人员进行批量处理...

    Python实现javaweb项目远端自动化更新部署-内含源码以及设计说明书(可以自己运行复现).zip

    2. **远程操作**:远程自动化部署通常会使用SSH(Secure Shell)协议,通过Python的paramiko库或Fabric库来实现在远程服务器上的文件传输和命令执行。 3. **Java Web项目**:Java Web项目通常包括Servlet、JSP、...

    python fabric实现远程部署

    python fabric实现远程部署 需求描述 在多人协同开发项目的过程中,几乎每天我们都要提交代码到git服务器,然后部署到测试服务器,每天都在敲那重复的几行命令,实在是无...借助Python的fabric模块可以将自动化部署或者

    Python-Fabric是一款django2Fabric3python3开源的代码部署工具

    Python Fabric 是一个强大的自动化部署和任务执行框架,尤其在Python开发环境中被广泛使用。它结合了Django2、Fabric3和Python3等技术,旨在简化服务器管理任务,如代码部署、系统配置、运行命令等。这个开源工具因...

    Python-python自动化运维技术与最佳实践书中示例及案例

    9. **持续集成/持续部署(CI/CD)**:Jenkins、Travis CI等工具的Python API,用于构建自动化测试和部署流程。 10. **监控与报警**:Python可以接入各种监控系统,如Nagios、Zabbix,实现自定义检查和报警功能。 11....

    Python Linux系统维护与自动化运维

    此外,还会有章节介绍自动化部署工具,如Ansible,它能让系统部署和更新变得简单且可重复。 故障排查和日志分析是运维工作中的重要环节。本书将教授如何使用Python解析和处理日志文件,以及如何通过Python进行性能...

Global site tag (gtag.js) - Google Analytics