mirror of
https://github.com/inspec/inspec
synced 2024-11-23 13:13:22 +00:00
commit
2a88ba125e
2 changed files with 104 additions and 10 deletions
113
README.md
113
README.md
|
@ -1,18 +1,113 @@
|
|||
# vulcanosec cli
|
||||
# Vulcano CLI
|
||||
|
||||
CLI tool for vulcanosec.
|
||||
Test your Server, VM, or workstation.
|
||||
|
||||
## Development
|
||||
|
||||
You can get a console within your evaluation context. Example:
|
||||
Small example: Write a your checks in `test.rb`:
|
||||
|
||||
```ruby
|
||||
rule "sth-new" do
|
||||
binding.pry
|
||||
...
|
||||
describe file('/proc/cpuinfo') do
|
||||
it { should be_file }
|
||||
end
|
||||
|
||||
describe ssh_config do
|
||||
its('Protocol') { should eq('2') }
|
||||
end
|
||||
```
|
||||
|
||||
Once you run `vulcano check myprofile/` you will get a CLI context.
|
||||
Run this file locally:
|
||||
|
||||
```bash
|
||||
vulcano exec test.rb
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
Requires Ruby ( >1.9 ).
|
||||
|
||||
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:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
Copyright 2015 Chef Software Inc. All rights reserved.
|
||||
Copyright 2015 Vulcano Security GmbH. All rights reserved.
|
||||
Copyright 2015 Dominik Richter. All rights reserved.
|
||||
|
|
|
@ -20,7 +20,6 @@ Gem::Specification.new do |spec|
|
|||
|
||||
spec.add_development_dependency 'bundler', '~> 1.5'
|
||||
spec.add_development_dependency 'minitest', '~> 5.5'
|
||||
spec.add_development_dependency 'rspec', '~> 3.3'
|
||||
spec.add_development_dependency 'rake', '~> 10'
|
||||
spec.add_development_dependency 'pry', '~> 0.10'
|
||||
spec.add_development_dependency 'rubocop', '~> 0.33.0'
|
||||
|
|
Loading…
Reference in a new issue