skip to navigation
skip to content

envassert 0.1.10

Test your servers environments by using fabric.

Test your servers environments by using fabric.


  • python 2.6 or later
  • fabric

How to Use

  1. install

    % pip install envassert
  2. write

    from fabric.api import env, task
    from envassert import file, process, package, user, group, port, cron, detect
    env.use_ssh_config = True
    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")
            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. run fab

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

    You can use any other fabric arguments like hosts or parallel.

Detecting OS

The detect.detect() function can detect target OS and distribution. Setting this variable to env.platform_family, functions can dispatch according to that value.

This function is a minimal port of ohai.

Currently, these platform can be detected. (but not tested yet)

  • rhel (redhat, centos, oracle, scientific, enterpriseenterprise, amazon)
  • debian (debian, ubuntu, linuxmint, raspbian)
  • fedora
  • suse
  • gentoo
  • arch
  • freebsd
  • netbsd
  • openbsd
  • darwin

However, every functions are not implemented for these all platform. Pull Requests are welcome.

The giants on whose shoulders this works stands


MIT License


  • cuisine: BSD
  • serverspec: MIT
  • ohai: Apache 2
File Type Py Version Uploaded on Size
envassert-0.1.10.tar.gz (md5) Source 2016-12-05 7KB