Tiny multi-server automation tool.
Run command on multiple servers. Designed to be as simple as possible and play nice with Unix tools.
.. image:: https://i.imgur.com/QEQfOiv.png
pip install kitten
kitten can get IP addresses from AWS resources for you. For that you'll need to have your AWS credentials set up.
You can do that using
pip install awscli
Run command on servers
Use ``kitten run``: :: $ kitten run uptime ubuntu 184.108.40.206 220.127.116.11 18.104.22.168 run uptime 22.214.171.124 run uptime 126.96.36.199 17:11:48 up 2 days, 6:02, 0 users, load average: 0.91, 2.99, 3.49 188.8.131.52 17:11:48 up 5 days, 11:19, 0 users, load average: 6.34, 5.94, 5.72 - Replace ``ubuntu`` with the user used to log in on the servers - Use ``-i`` to specify a private key - Use ``--threads`` to specify the number of concurrent connections (defaults to 10) Get IP addresses from AWS resources
kitten ip with either
$ kitten ip asg my-tiny-asg 184.108.40.206 220.127.116.11
--publicif you prefer public IPs
If you're in a hurry, you can just paste any text that contains instance IDs:
$ kitten ip id prod-mongo-0901bc21990109ed4-eu my-hostname-06a2fc734534ef6d9 18.104.22.168 22.214.171.124
Download files from servers
Use ``kitten get``: :: kitten ip elb my-load-balancer | xargs kitten get /tmp/system.log ubuntu Upload file to servers ~~~~~~~~~~~~~~~~~~~~~~ Use ``kitten put``: :: kitten ip asg big-prod-asg | xargs kitten put -i ~/.ssh/key.pem cat.jpg /tmp ubuntu