使用fabric测试服务器环境。

envassert的Python项目详细描述


使用fabric测试服务器环境。

要求

  • python 2.6或更高版本
  • 面料

如何使用

  1. 安装

    % pip install envassert
    
  2. 写fabfile.py。

    from fabric.api import env, task
    from envassert import file, process, package, user, group, port, cron, detect
    
    env.use_ssh_config = True
    
    @task
    def check():
        env.platform_family = detect.detect()
    
        assert file.exists("/etc/hosts")
        assert file.is_file("/etc/hosts")
        assert file.is_dir("/tmp/")
        assert file.dir_exists("/tmp/")
        assert file.has_line("/etc/passwd", "sshd")
        assert file.owner_is("/bin/sh", "root")
        assert file.group_is("/bin/sh", "root")
        assert file.mode_is("/bin/sh", "777")
    
        if env.platform_family == "freebsd":
            assert file.is_link("/compat")
        else:
            assert file.is_link("/usr/tmp")
    
        assert package.installed("wget.x86_64")
    
        assert user.exists("sshd")
        assert user.is_belonging_group("shirou", "users")
        assert group.exists("wheel")
    
        assert port.is_listening(22)
        assert port.is_listening(80, "tcp")
    
        assert process.is_up("http") is False
        assert service.is_enabled("httpd")
    
        assert cron.has_entry('shirou', 'python')
    
        assert filesystem.is_type('ext4', '/')
    
  3. 运行fab

    % fab -H somehost check
    [somehost] Executing task 'check'
    
    Done.
    Disconnecting from root@192.168.22.98... done.
    

    您可以使用任何其他fabric参数,如hosts或parallel。

检测操作系统

detect.detect()函数可以检测目标操作系统和 分配。将此变量设置为env.platform_family, 函数可以根据该值进行调度。

此函数是Ohai的最小端口。

目前,可以检测到这些平台。(但尚未测试)

  • RHEL(Redhat、CentOS、Oracle、Scientific、EnterpriseeEnterprise、Amazon)
  • debian(debian,ubuntu,linuxmint,raspbian)
  • 软呢帽
  • 苏西
  • 格图
  • 拱门
  • FreeBSD
  • 上网本
  • openbsd
  • 达尔文

但是,并不是所有的功能都可以实现 站台。欢迎拉取请求。

这项工作所依靠的巨人们

许可证

麻省理工学院许可证

仅供参考

  • 美食:BSD
  • 服务器规格:MIT
  • Ohai:Apache2

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库