Tiny multi-server automation tool.
Run command on multiple servers. Designed to be as simple as possible and play nice with Unix tools.
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
$ kitten run uptime ubuntu 126.96.36.199 188.8.131.52 184.108.40.206 run uptime 220.127.116.11 run uptime 18.104.22.168 17:11:48 up 2 days, 6:02, 0 users, load average: 0.91, 2.99, 3.49 22.214.171.124 17:11:48 up 5 days, 11:19, 0 users, load average: 6.34, 5.94, 5.72
ubuntuwith the user used to log in on the servers
-ito specify a private key
--threadsto 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 126.96.36.199 188.8.131.52
- By default only private IP addresses are returned. Use
--publicif you prefer public IPs
- You can change region using
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 184.108.40.206 220.127.116.11
Download files from servers
kitten ip elb my-load-balancer | xargs kitten get /tmp/system.log ubuntu
Upload file to servers
kitten ip asg big-prod-asg | xargs kitten put -i ~/.ssh/key.pem cat.jpg /tmp ubuntu