Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/auser/salt-cli
A ruby gem to interact with salt on different providers from a local machine
https://github.com/auser/salt-cli
Last synced: 23 days ago
JSON representation
A ruby gem to interact with salt on different providers from a local machine
- Host: GitHub
- URL: https://github.com/auser/salt-cli
- Owner: auser
- License: mit
- Created: 2013-05-12T01:17:03.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-06-20T21:57:00.000Z (over 11 years ago)
- Last Synced: 2024-10-30T07:28:10.997Z (2 months ago)
- Language: Ruby
- Size: 438 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Salt
Opinionated salt-stack deployment
## Dependencies
* rvm
* ruby 1.9.3
* rubygems
* bundler gem
## Installation
$ git clone [email protected]:auser/salt-cli.git
$ cd salt-cli
$ bundle install
$ gem build salt-cli.gemspec
$ gem install salt-cli
$ salt #should now show a list of salt-cli commands## Usage
SaltCli is an opinionated salt stack deployment. If you don't like it, make one for yourself :).
SaltStack provides a developer the ability to write salt stack states once and deploy them to various cloud providers with the same workflow.
By defining a `salt-cloud.yml` file (or a Vagrantfile, for vagrant), you can easily launch instances in the "cloud" ready to be deployed and highstated.
#### Current providers supported:
* aws
* vagrant#### Available commands
* list
* launch
* bootstrap
* teardown
* ssh
* key
* role
* command
* run
* upload
* upgrade
* highstate#### Example salt-config.yml
If you have a salt-config.yml at the current working directory, salt-cli will read this file and take care of the magic for you. The format of this file, looks like:
user: ubuntu
plans:
dev:
# In order
- master:
roles:
- master
- monitor:
roles:
- monitor
- hadoop1:
roles:
- hadoop_master
- hbase_master
- zookeeper
- elasticsearch
- hbase_slave
- hadoop2:
roles:
- hbase_slave
- zookeeper
aws:
access_key: [ACCESS_KEY]
secret_key: [SECRET_KEY]
keyname: [YOUR EC2 KEY]
# Configs
machines:
default:
flavor: m1.small
image_id: ami-0cdf4965
master:
ports:
tcp:
- 4505
- 4506
monitor:
flavor: m1.large
ports:
udp:
- 514
- 12201
tcp:
- 80
- 2003
- 2004
- 8080
- 9300
- 9200
hadoop: &hadoop
flavor: m1.xlarge
ports:
tcp:
- 54310
- 9200
- 9300
- 2181
- 60000
- 60010
- 60020
- 2888..3888
hadoop1:
<<: *hadoop
hadoop2:
api: &api
ports:
tcp:
- 80
- 8080## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request