Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/serverspec/syllabus
Configuration Management Tool for Immutable Infrastructure
https://github.com/serverspec/syllabus
Last synced: 3 months ago
JSON representation
Configuration Management Tool for Immutable Infrastructure
- Host: GitHub
- URL: https://github.com/serverspec/syllabus
- Owner: serverspec
- License: mit
- Created: 2013-12-01T08:22:21.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2013-12-09T17:58:40.000Z (almost 11 years ago)
- Last Synced: 2024-05-02T12:38:51.654Z (7 months ago)
- Language: Ruby
- Homepage:
- Size: 159 KB
- Stars: 32
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Syllabus [![BuildStatus](https://travis-ci.org/serverspec/syllabus.png)](http://travis-ci.org/serverspec/syllabus)
Syllabus is a configuration management tool for the era of "immutable infrastructure." which just provides a thin abstraction layer onto plain shell script.
## Commands
### `init`
`init` sets up files to start configuration management with Syllabus.
```
$ syllabus init
```This creates `syllabus.rb` into the current working directory.
### `exec`
`exec` reads the configuration from the file specified by `--file` option and executes commands along with the type specified `--type` option.
```
$ syllabus exec --file examples/mac.rb --type Exec
````--type` can be either one of the type which are provided by [SpecInfra](https://github.com/mizzy/).
## Configuration
Syllabus provides a simple DSL to configure servers like below:
```
hosts %[app1.example.com app2.example.com]
path '/path/to/bin'install 'httpd'
install 'git'
# ...
```### Configuration for Syllabus
There are serveral methods to configure Syllabus itself.
* `hosts`: Servers to be configured by Syllabus
* `path`: `PATH` environment variable to be set on the servers### Configuration for Servers
* `install`: Specifies a package to be installed
* (TODO)## Installation
Add this line to your application's Gemfile:
gem 'syllabus'
And then execute:
$ bundle
Or install it yourself as:
$ gem install syllabus
## 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