Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jedi4ever/cloudrunner
Run a command based on your cloud
https://github.com/jedi4ever/cloudrunner
Last synced: about 2 months ago
JSON representation
Run a command based on your cloud
- Host: GitHub
- URL: https://github.com/jedi4ever/cloudrunner
- Owner: jedi4ever
- Created: 2014-04-17T10:25:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-11-17T11:48:31.000Z (about 7 years ago)
- Last Synced: 2023-04-10T14:21:37.609Z (almost 2 years ago)
- Language: JavaScript
- Size: 5.86 KB
- Stars: 7
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Description
generic way of exucting concurrent commands based on information of your cloud (currently AWS)# Installation
`npm install -g cloudrunner`# Usage
- This project allows you to use moustache syntax when you specify your command to run.
- Available are {{ ip }}, {{ name }}
- It runs the command local , but you can use ssh to run things remotely
- If any of the commands on any vms is not 0 , the run will end!
- You can do canary runs (test a few and continue on the rest)
- You can specify the concurrency to speed up parallel execution# Example Usage
## Export your aws credentials
```
export AWS_ACCESS_KEY=
export AWS_SECRET_ACCESS_KEY=
```
## Example usage### Show ip of all members of elb
```
cloudrunner run --select-lb-members 'echo {{ ip }}'
```### Show ip of all members of elb per 5 host
```
cloudrunner run --select-lb-members --concurrency 5 'echo {{ ip }}'
```### Show Name of all vms with a name prefix
```
cloudrunner run --select-name-prefix production-frontend 'echo {{ name }}'
```## Print hostname of all vms by ssh in vm
```
cloudrunner run --select-name-prefix production-frontend 'ssh ubuntu@{{ name }}'
```## Curl to webpages on all vms
```
cloudrunner run --select-name-prefix production-frontend 'curl -I http://{{ name }}'
```## Curl to webpages on all vms (but test one first)
```
cloudrunner run --canary 1 --concurrency 5 --select-name-prefix production-frontend 'curl -I http://{{ name }}'
```## Restart all apache services on all selected vms (test one first and verify if it works)
```
cloudrunner run --canary 1 --concurrency 5 --select-name-prefix production-frontend 'ssh ubuntu@{{ ip }} restart apache' --verify 'curl http://{{ ip }}
```## Help
```Usage: run [options]
Options:
-h, --help output usage information
--verify [command] Command to verify
-c,--concurrency [number] Number of concurrent executions
--canary [number] Number of canary executions
--provider Cloud Provider (default=aws)
--aws-region [region] AWS Region (default=eu-west-1)
--namespace [namespace] namespace for names
--aws-access-key [key] AWS Access Key
--aws-secret-access-key [key] AWS Secret Access Key
--select-lb-members [elbname] Select vms that are member of ELB
--select-name-prefix [prefix] Select vms where name begins with prefix
--select-ids [ids] Select vms where the id matches (Comma Separated)
--select-ips [ips] Select vms where the ips matches (Comma Separated)
```