Skip to main content

Test your servers environments by using fabric.

Project description

Test your servers environments by using fabric.

Requirements

  • python 2.6 or later

  • fabric

How to Use

  1. install

    % pip install envassert
  2. write 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. run fab

    % fab -H somehost check
    [somehost] Executing task 'check'
    
    Done.
    Disconnecting from root@192.168.22.98... 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

License

MIT License

FYI

  • cuisine: BSD

  • serverspec: MIT

  • ohai: Apache 2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envassert-0.1.10.tar.gz (7.7 kB view details)

Uploaded Source

File details

Details for the file envassert-0.1.10.tar.gz.

File metadata

  • Download URL: envassert-0.1.10.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for envassert-0.1.10.tar.gz
Algorithm Hash digest
SHA256 4b6c4fee34e9a7526706f7c0d0318501c51f48bb148b8bba25c89be76579a0c9
MD5 50e3ed16045b0cada4a9e9a5cd09013a
BLAKE2b-256 83b135f68f1408fee211e9ffea275f07a28d60a45e377012b27db65cc7bc62ff

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page