Metadata-Version: 1.1
Name: rctl
Version: 0.1
Summary: Executing task recipes on remote servers
Home-page: https://github.com/aogaeru/rctl
Author: Mark Fink
Author-email: mark@mark-fink.de
License: GNU LESSER GENERAL PUBLIC LICENSE, Version 3
Download-URL: http://pypi.python.org/pypi/rctl
Description: rctl is a tool for automating tasks on remote servers. Instead of logging into the remote server via ssh and running the commands manually the commands are contained in a recipe file that can be reused.
        
        rctl was first written as part of a performance testing tool in 2011. At that time I was unaware of tools such as capistrano, fabric and chef.
        
        When I realized that I should automate tasks on remote servers more consequently I wanted to replace rctl with fabric. At that time I realized that fabric has a different focus than rctl:
        
        http://docs.fabfile.org/en/1.2.2/faq.html#why-can-t-i-run-programs-in-the-background-with-it-makes-fabric-hang
        
        To my knowledge rctl has no such limitations and for that reason I continued using rctl and recently decided to released it as a Python package.
        
        
        Connecting to remote servers
        ============================
        
        rctl uses ssh to execute the task recepes on the remote servers. Please make sure you can connect to each server via ssh (this includes uploading your SSH key to your server).
        
        
        environments.ini file
        =====================
        
        The environmets.ini file contains the configuration of your server environments in the following form:
        
        [host1]
        usr = usr1
        setting1.1 = setting1.1
        setting1.2 = setting1.2
        
        [host2]
        usr = usr2
        setting2.1 = setting2.1
        setting2.2 = setting2.2
        
        
        Help on rctl
        ============
        
        $ rctl -h
        usage: rctl [-h] -H HOSTS -r RECIPE [-e ENV]
        
        Run task recipes on remote hosts
        
        optional arguments:
          -h, --help            show this help message and exit
          -H HOSTS, --hosts HOSTS
                                List of hosts (comma separated)
          -r RECIPE, --recipe RECIPE
                                Name of the recipe to run
          -e ENV, --env ENV     Environment settings file (optional)
        
        
        Using rctl
        ==========
        
        The following sample runs uname on the remote machine. 
        
        The uname recipe is contained in recipes/demo.py:
        def uname(env, ssh):
            puts('Query remote system information')
            run(ssh, 'uname -a')
        
        $ rctl -e mark_office.ini -r uname -H vm-ubuntu
        Query remote system information
        executing: uname -a
        Linux vm-ubuntu 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:36:13 UTC 2013 i686 i686 i686 GNU/Linux
        
        
        Writing and using your own recipes
        ==================================
        
        If you know python it will be very easy to write your own recipes. If you are new to Python it wouldn't be too difficult either.
        
        In your working directory where you want to use rctl create a "recipes" folder with that name. Just put your .py files into that folder.
        
        Add a "__init__.py" file to the recipes folder which imports all your recipes like the following:
        from demo import uname
        
Platform: any
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Operating System :: OS Independent
Classifier: Topic :: System :: Systems Administration
Classifier: Natural Language :: English
