2015-09-07 15:18:44 +00:00
|
|
|
# Vulcano CLI
|
2015-04-09 15:34:05 +00:00
|
|
|
|
2015-09-07 15:18:44 +00:00
|
|
|
Test your Server, VM, or workstation.
|
2015-04-09 15:34:05 +00:00
|
|
|
|
2015-09-07 15:20:39 +00:00
|
|
|
Small example: Write a your checks in `test.rb`:
|
2015-06-10 15:38:24 +00:00
|
|
|
|
|
|
|
```ruby
|
2015-09-07 15:18:44 +00:00
|
|
|
describe file('/proc/cpuinfo') do
|
|
|
|
it { should be_file }
|
2015-06-10 15:38:24 +00:00
|
|
|
end
|
2015-09-07 15:18:44 +00:00
|
|
|
|
|
|
|
describe ssh_config do
|
|
|
|
its('Protocol') { should eq('2') }
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
2015-09-07 15:20:39 +00:00
|
|
|
Run this file locally:
|
2015-09-07 15:18:44 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
vulcano exec test.rb
|
|
|
|
```
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2015-09-07 15:24:07 +00:00
|
|
|
Requires Ruby ( >1.9 ).
|
2015-09-07 15:18:44 +00:00
|
|
|
|
2015-09-07 15:24:07 +00:00
|
|
|
To simply run it without installation, you must install [bundler](http://bundler.io/):
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle install
|
|
|
|
bundle exec bin/vulcano help
|
|
|
|
```
|
|
|
|
|
|
|
|
To install it as a gem locally, run:
|
2015-09-07 15:18:44 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
gem build vulcano.gemspec
|
|
|
|
gem install vulcano-*.gem
|
|
|
|
```
|
|
|
|
|
|
|
|
You should now be able to run:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
vulcano --help
|
|
|
|
```
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
Run tests against different targets:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# run test locally
|
|
|
|
vulcano exec test.rb
|
|
|
|
|
|
|
|
# run test on remote host on SSH
|
|
|
|
vulcano exec test.rb -t ssh://user@hostname
|
|
|
|
|
|
|
|
# run test on remote windows host on WinRM
|
|
|
|
vulcano exec test.rb -t winrm://Administrator@windowshost
|
|
|
|
|
|
|
|
# run test on docker container
|
|
|
|
vulcano exec test.rb -t docker://image_id
|
2015-06-10 15:38:24 +00:00
|
|
|
```
|
|
|
|
|
2015-09-07 15:18:44 +00:00
|
|
|
## Custom resources
|
|
|
|
|
|
|
|
You can easily create your own resources. Here is a custom resource for an
|
|
|
|
application called Gordon and save it in `gordon_config.rb`:
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
require 'yaml'
|
|
|
|
|
|
|
|
class GordonConfig < Vulcano.resource
|
|
|
|
name 'gordon_config'
|
|
|
|
|
|
|
|
def initialize
|
|
|
|
@path = '/etc/gordon/config.yaml'
|
|
|
|
@config = vulcano.file(@path).content
|
|
|
|
@params = YAML.load(@config)
|
|
|
|
end
|
|
|
|
|
|
|
|
def method_missing(name)
|
|
|
|
@params[name.to_s]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
|
|
|
Include this file in your `test.rb`:
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
require_relative 'gordon_config'
|
|
|
|
```
|
|
|
|
|
|
|
|
Now you can start using your new resource:
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
describe gordon_config do
|
|
|
|
its('Version') { should eq('1.0') }
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
1. Fork it
|
|
|
|
1. Create your feature branch (git checkout -b my-new-feature)
|
|
|
|
1. Commit your changes (git commit -am 'Add some feature')
|
|
|
|
1. Push to the branch (git push origin my-new-feature)
|
|
|
|
1. Create new Pull Request
|
|
|
|
|
2015-06-10 15:38:24 +00:00
|
|
|
|
2015-09-07 15:18:44 +00:00
|
|
|
Copyright 2015 Chef Software Inc. All rights reserved.
|
|
|
|
Copyright 2015 Vulcano Security GmbH. All rights reserved.
|
2015-04-09 15:34:05 +00:00
|
|
|
Copyright 2015 Dominik Richter. All rights reserved.
|