https://github.com/deric/puppet-storm
Puppet module for managing Storm
https://github.com/deric/puppet-storm
Last synced: 3 months ago
JSON representation
Puppet module for managing Storm
- Host: GitHub
- URL: https://github.com/deric/puppet-storm
- Owner: deric
- License: other
- Created: 2014-05-13T08:40:02.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2018-05-24T17:47:03.000Z (about 8 years ago)
- Last Synced: 2025-03-21T15:12:32.895Z (about 1 year ago)
- Language: Puppet
- Size: 101 KB
- Stars: 1
- Watchers: 2
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Puppet Storm
[](https://forge.puppetlabs.com/deric/storm) [](https://travis-ci.org/deric/puppet-storm) [](https://forge.puppetlabs.com/deric/storm/scores)
Puppet module for managing Storm installation.
Features:
* Hiera support
* Mesos integration
## Requirements
* binary package of Storm
* [Debian/Ubuntu](https://github.com/deric/storm-deb-packaging)
* Puppet >= 2.7
## Usage
The binary package, which is by default called `storm` will be installed on all machines. You can provide a set of packages:
```puppet
class {'storm':
packages => ['storm', 'storm-mesos', 'libjzmq']
}
```
Main Storm class includes default configuration, each component is afterwards configured individually.
On master node include Nimbus:
```puppet
class {'storm::nimbus': }
```
By default service management is disabled, to enable starting service with OS default init system (init.d/upstart/systemd/...) use parameter `manage_service`:
```puppet
class {'storm::nimbus':
manage_service => true
}
```
In order to change default service mechanism (determined by Puppet) use parameter `force_provider`:
```puppet
class {'storm::nimbus':
manage_service => true,
force_provider => 'runit'
}
```
You can adjust all the parameters directly:
```puppet
class {'storm::nimbus':
host => '192.168.1.1'
}
```
or via Hiera:
```yaml
storm::nimbus::host: '192.168.1.1'
```
Parameters:
* `manage_service` by default `false` (service not managed by OS)
* `enable` whether service should be enable (default: `true`, note `manage_service` must be also `true`)
* `force_provider` default: `undef`
* `host` address to bind, default: `localhost`
* `thrift_port` default: `6627`
* `childopts` default `-Xmx1024m`
* `task_timeout_secs` default `30`
* `supervisor_timeout_secs` default `60`
* `monitor_freq_secs` default `10`
* `cleanup_inbox_freq_secs` default `600`
* `inbox_jar_expiration_secs` default `3600`
* `task_launch_secs` default `120`
* `reassign` default `true`
* `file_copy_expiration_secs` default `600`
`jvm` array, default:
```
['-Dlog4j.configuration=file:/etc/storm/storm.log.properties','-Dlogfile.name=nimbus.log']
```
### UI
```puppet
class {'storm::ui': }
```
Parameters:
* `manage_service` by default `false` (service not managed by OS)
* `enable` whether service should be enable (default: `true`, note `manage_service` must be also `true`)
* `force_provider` default: `undef`
* `mem` JVM memory default `1024m`
* `port` default: `8080`
* `childopts` default `-Xmx768m`
### Supervisor
Each computing node should include supervisor which watches Storm's bolts and spouts.
```puppet
class {'storm::supervisor': }
```
### DRPC
```puppet
class {'storm::drpc': }
```
### Mesos
Mesos integration requires special binary package which provides `storm-mesos` service (framework).
```puppet
class {'storm::mesos': }
```
In Hiera you could define something like this:
```yaml
storm::mesos::master_url: "%{mesos::zookeeper}"
```
### Packages
Some configuration is shared between components, e.g. packages that are installed:
```yaml
storm::packages: ['storm', 'libjzmq']
```
by default just `storm` package is installed.
## Installation
puppet-librarian:
```ruby
mod 'deric/storm', :git => 'https://github.com/deric/puppet-storm.git'
```
dependencies:
* `puppetlabs/stdlib`
* `puppetlabs/concat`