vagrant-serverspec 0.1.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +10 -0
- data/README.md +72 -12
- data/WINDOWS_README.md +109 -0
- data/lib/vagrant-serverspec/error.rb +7 -0
- data/lib/vagrant-serverspec/plugin.rb +7 -1
- data/lib/vagrant-serverspec/provisioner.rb +42 -20
- data/lib/vagrant-serverspec/version.rb +1 -1
- data/lib/vagrant-serverspec.rb +1 -0
- data/locales/en.yml +4 -0
- data/test/ubuntu/.rspec +2 -0
- data/test/{Vagrantfile → ubuntu/Vagrantfile} +1 -2
- data/test/{example_spec.rb → ubuntu/sample_spec.rb} +0 -0
- data/test/ubuntu/spec_helper.rb +13 -0
- data/test/windows/.rspec +2 -0
- data/test/windows/sample_spec.rb +36 -0
- data/test/windows/spec_helper.rb +13 -0
- data/test/windows/vagrantfile +58 -0
- data/vagrant-serverspec.gemspec +3 -1
- metadata +44 -13
- data/Gemfile.lock +0 -56
- data/test/spec_helper.rb +0 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 20db8d889601aa2e8831c7b0906b5c4ba6c0b2b1
         | 
| 4 | 
            +
              data.tar.gz: ff944529738e271a2c26bffd25e5b8a7560ce9db
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0d38d751424384d513f97be5256fce742785bfcfa23b08bb1dc843b521049039ac6c899e254b68cf48e062c59cc82e41e486e39dd6d27719596eac21cdbfa2c5
         | 
| 7 | 
            +
              data.tar.gz: 20975a17b4c6a4666a6f51c95cb3183d9390a78d15f98e829843047020923897659a306cb56ca560fcaec3a7ebb54a232c2b8b9865a6d20946c9a08340dda38d
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,17 +1,35 @@ | |
| 1 1 | 
             
            # vagrant-serverspec
         | 
| 2 | 
            +
            [](http://badge.fury.io/rb/vagrant-serverspec)
         | 
| 2 3 |  | 
| 3 | 
            -
            vagrant-serverspec is a [vagrant] | 
| 4 | 
            -
            [serverspec] | 
| 4 | 
            +
            > **vagrant-serverspec is a [vagrant][vagrant] plugin that implements
         | 
| 5 | 
            +
            > [serverspec][serverspec] as a provisioner.**
         | 
| 5 6 |  | 
| 6 | 
            -
             | 
| 7 | 
            +
            ## Installing
         | 
| 8 | 
            +
            ### Standard way
         | 
| 9 | 
            +
            First, install the plugin.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ```shell
         | 
| 12 | 
            +
            $ vagrant plugin install vagrant-serverspec
         | 
| 13 | 
            +
            ```
         | 
| 14 | 
            +
            ### In case of fork usage
         | 
| 15 | 
            +
            in case of fork usage you need to build it first
         | 
| 16 | 
            +
            ```shell
         | 
| 17 | 
            +
            gem build vagrant-serverspec.gemspec
         | 
| 18 | 
            +
            ```
         | 
| 19 | 
            +
            (on windows you may use embedded vagrant ruby for that)
         | 
| 20 | 
            +
            ```shell
         | 
| 21 | 
            +
            C:\HashiCorp\Vagrant\embedded\bin\gem.bat build vagrant-serverspec.gemspec
         | 
| 22 | 
            +
            ```
         | 
| 23 | 
            +
            after that install plugin from filesystem
         | 
| 24 | 
            +
            ```shell
         | 
| 25 | 
            +
            vagrant plugin install ./vagrant-serverspec-0.5.0.gem
         | 
| 26 | 
            +
            ```
         | 
| 7 27 |  | 
| 8 28 | 
             
            ## Example Usage
         | 
| 9 29 |  | 
| 10 | 
            -
             | 
| 30 | 
            +
            Next, configure the provisioner in your `Vagrantfile`.
         | 
| 11 31 |  | 
| 12 32 | 
             
            ```ruby
         | 
| 13 | 
            -
            Vagrant.require_plugin('vagrant-serverspec')
         | 
| 14 | 
            -
             | 
| 15 33 | 
             
            Vagrant.configure('2') do |config|
         | 
| 16 34 | 
             
              config.vm.box = 'precise64'
         | 
| 17 35 | 
             
              config.vm.box_url = 'http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box'
         | 
| @@ -27,15 +45,17 @@ Vagrant.configure('2') do |config| | |
| 27 45 | 
             
            end
         | 
| 28 46 | 
             
            ```
         | 
| 29 47 |  | 
| 30 | 
            -
            You | 
| 48 | 
            +
            You may want to override standard settings; a file named `spec_helper.rb` is usually used for that. Here are some examples of possible overrides.
         | 
| 31 49 |  | 
| 32 50 | 
             
            ```ruby
         | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
            require 'net/ssh'
         | 
| 51 | 
            +
            # Disable sudo
         | 
| 52 | 
            +
            # set :disable_sudo, true
         | 
| 36 53 |  | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 54 | 
            +
            # Set environment variables
         | 
| 55 | 
            +
            # set :env, :LANG => 'C', :LC_MESSAGES => 'C' 
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            # Set PATH
         | 
| 58 | 
            +
            # set :path, '/sbin:/usr/local/sbin:$PATH'
         | 
| 39 59 | 
             
            ```
         | 
| 40 60 |  | 
| 41 61 | 
             
            Then you're ready to write your specs.
         | 
| @@ -56,3 +76,43 @@ describe port(22) do | |
| 56 76 | 
             
              it { should be_listening }
         | 
| 57 77 | 
             
            end
         | 
| 58 78 | 
             
            ```
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            ## Versioning
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            Test Kitchen aims to adhere to [Semantic Versioning 2.0.0][semver].
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            ## Development
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            * Source hosted at [GitHub][repo]
         | 
| 87 | 
            +
            * Report issues/questions/feature requests on [GitHub Issues][issues]
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            Pull requests are very welcome! Make sure your patches are well tested.
         | 
| 90 | 
            +
            Ideally create a topic branch for every separate change you make. For
         | 
| 91 | 
            +
            example:
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            1. Fork the repo
         | 
| 94 | 
            +
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 95 | 
            +
            3. Commit your changes (`git commit -am 'Added some feature'`)
         | 
| 96 | 
            +
            4. Push to the branch (`git push origin my-new-feature`)
         | 
| 97 | 
            +
            5. Create new Pull Request
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            ## Authors
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            Created and maintained by [Jeremy Voorhis][jvoorhis] (<jvoorhis@gmail.com>) and
         | 
| 102 | 
            +
            a growing community of [contributors][contributors].
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            ## License
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            MIT license (see [LICENSE][license])
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            [vagrant]: http://vagrantup.com
         | 
| 109 | 
            +
            [serverspec]: http://serverspec.org
         | 
| 110 | 
            +
            [semver]: http://semver.org/
         | 
| 111 | 
            +
             | 
| 112 | 
            +
            [repo]: https://github.com/jvoorhis/vagrant-serverspec
         | 
| 113 | 
            +
            [issues]: https://github.com/jvoorhis/vagrant-serverspec/issues
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            [jvoorhis]: https://github.com/jvoorhis
         | 
| 116 | 
            +
            [contributors]: https://github.com/jvoorhis/vagrant-serverspec/graphs/contributors
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            [license]: https://github.com/jvoorhis/vagrant-serverspec/blob/master/LICENSE
         | 
    
        data/WINDOWS_README.md
    ADDED
    
    | @@ -0,0 +1,109 @@ | |
| 1 | 
            +
            # vagrant-serverspec Windows readme
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            vagrant-serverspec is a [vagrant](http://vagrantup.com) plugin that implements
         | 
| 4 | 
            +
            [serverspec](http://serverspec.org) as a provisioner.
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            It now supports Windows guests through WinRM.
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            ## Installing
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            First, you'll need to install the plugin as described in README.md
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ## Example Usage
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            Next, configure the provisioner in your `Vagrantfile`.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ```ruby
         | 
| 17 | 
            +
            Vagrant.require_version ">= 1.6.2"
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Vagrant.configure("2") do |config|
         | 
| 20 | 
            +
                config.vm.define "windows"
         | 
| 21 | 
            +
                config.vm.box = "windows"
         | 
| 22 | 
            +
                config.vm.communicator = "winrm"
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                # Admin user name and password
         | 
| 25 | 
            +
                config.winrm.username = "vagrant"
         | 
| 26 | 
            +
                config.winrm.password = "vagrant"
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                config.vm.guest = :windows
         | 
| 29 | 
            +
                config.vm.communicator = "winrm"
         | 
| 30 | 
            +
                config.windows.halt_timeout = 15
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                config.vm.network :forwarded_port, guest: 3389, host: 3389, id: "rdp", auto_correct: true
         | 
| 33 | 
            +
                config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              config.vm.provision :serverspec do |spec|
         | 
| 36 | 
            +
                spec.pattern = '*_spec.rb'
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            end
         | 
| 40 | 
            +
            ```
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            You may want to override standart settings, file named `spec_helper.rb` usually used for that.
         | 
| 43 | 
            +
            For now possible examples is commented in this file.
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            ```ruby
         | 
| 46 | 
            +
            #require 'serverspec'
         | 
| 47 | 
            +
            #require 'pathname'
         | 
| 48 | 
            +
            #require 'winrm'
         | 
| 49 | 
            +
            #set :backend, :winrm
         | 
| 50 | 
            +
            #set :os, :family => 'windows'
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            #user = 'vagrant'
         | 
| 53 | 
            +
            #pass = 'vagrant'
         | 
| 54 | 
            +
            #endpoint = "http://#{ENV['TARGET_HOST']}:5985/wsman"
         | 
| 55 | 
            +
            #winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :basic_auth_only => true)
         | 
| 56 | 
            +
            #winrm.set_timeout 300 # 5 minutes max timeout for any operation
         | 
| 57 | 
            +
            #Specinfra.configuration.winrm = winrm
         | 
| 58 | 
            +
            ```
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            Then you're ready to write your specs (some examples below).
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            ```ruby
         | 
| 63 | 
            +
            require_relative 'spec_helper'
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            describe command('Get-ExecutionPolicy') do
         | 
| 66 | 
            +
              its(:stdout) { should match /RemoteSigned/ }
         | 
| 67 | 
            +
              #its(:stderr) { should match /stderr/ }
         | 
| 68 | 
            +
              its(:exit_status) { should eq 0 }
         | 
| 69 | 
            +
            end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            describe user('vagrant') do
         | 
| 72 | 
            +
              it { should exist }
         | 
| 73 | 
            +
              it { should belong_to_group('Administrators')}
         | 
| 74 | 
            +
            end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            describe port(5985) do
         | 
| 77 | 
            +
              it { should be_listening }
         | 
| 78 | 
            +
            end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            describe file('c:/windows') do
         | 
| 81 | 
            +
              it { should be_directory }
         | 
| 82 | 
            +
              it { should_not be_writable.by('Everyone') }
         | 
| 83 | 
            +
            end
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            #describe windows_feature('Web-Server') do
         | 
| 86 | 
            +
            #  it{ should be_installed.by("powershell") }
         | 
| 87 | 
            +
            #end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            #describe port(80) do
         | 
| 90 | 
            +
            #  it { should be_listening }
         | 
| 91 | 
            +
            #end
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            #describe iis_website('Default Website') do
         | 
| 94 | 
            +
            #  it{ should have_site_bindings(80) }
         | 
| 95 | 
            +
            #end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            #describe windows_registry_key(
         | 
| 98 | 
            +
            #  'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\advanced') do
         | 
| 99 | 
            +
            #  it { should have_property_value('Hidden', :type_dword,'1') }
         | 
| 100 | 
            +
            #end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            #describe windows_feature('TelnetClient') do
         | 
| 103 | 
            +
            #  it{ should be_installed.by("powershell") }
         | 
| 104 | 
            +
            #end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            #describe file('C:\Windows\system32\telnet.exe') do
         | 
| 107 | 
            +
            #  it { should be_file }
         | 
| 108 | 
            +
            #end
         | 
| 109 | 
            +
            ```
         | 
| @@ -1,5 +1,3 @@ | |
| 1 | 
            -
            require 'serverspec'
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            # This implementation executes rspec in-process. Because rspec effectively
         | 
| 4 2 | 
             
            # takes ownership of the global scope, executing rspec within a child process
         | 
| 5 3 | 
             
            # may be preferred.
         | 
| @@ -7,30 +5,54 @@ module VagrantPlugins | |
| 7 5 | 
             
              module ServerSpec
         | 
| 8 6 | 
             
                class Provisioner < Vagrant.plugin('2', :provisioner)
         | 
| 9 7 | 
             
                  def initialize(machine, config)
         | 
| 10 | 
            -
                    super | 
| 11 | 
            -
             | 
| 8 | 
            +
                    super
         | 
| 12 9 | 
             
                    @spec_files = config.spec_files
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                  
         | 
| 12 | 
            +
                  def provision
         | 
| 13 | 
            +
                    if machine.config.vm.communicator == :winrm
         | 
| 14 | 
            +
                      username = machine.config.winrm.username
         | 
| 15 | 
            +
                      winrm_info = VagrantPlugins::CommunicatorWinRM::Helper.winrm_info(@machine)
         | 
| 16 | 
            +
                      set :backend, :winrm
         | 
| 17 | 
            +
                      set :os, :family => 'windows'
         | 
| 18 | 
            +
                      user = machine.config.winrm.username
         | 
| 19 | 
            +
                      pass = machine.config.winrm.password
         | 
| 20 | 
            +
                      endpoint = "http://#{winrm_info[:host]}:#{winrm_info[:port]}/wsman"
         | 
| 13 21 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
                       | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
                         | 
| 22 | 
            -
             | 
| 23 | 
            -
                         | 
| 22 | 
            +
                      winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :basic_auth_only => true)
         | 
| 23 | 
            +
                      winrm.set_timeout machine.config.winrm.timeout
         | 
| 24 | 
            +
                      Specinfra.configuration.winrm = winrm
         | 
| 25 | 
            +
                    else
         | 
| 26 | 
            +
                      set :backend, :ssh
         | 
| 27 | 
            +
                      
         | 
| 28 | 
            +
                      if ENV['ASK_SUDO_PASSWORD']
         | 
| 29 | 
            +
                        begin
         | 
| 30 | 
            +
                          require 'highline/import'
         | 
| 31 | 
            +
                        rescue LoadError
         | 
| 32 | 
            +
                          fail "highline is not available. Try installing it."
         | 
| 33 | 
            +
                        end
         | 
| 34 | 
            +
                        set :sudo_password, ask("Enter sudo password: ") { |q| q.echo = false }
         | 
| 35 | 
            +
                      else
         | 
| 36 | 
            +
                        set :sudo_password, ENV['SUDO_PASSWORD']
         | 
| 24 37 | 
             
                      end
         | 
| 38 | 
            +
                      
         | 
| 39 | 
            +
                      host = machine.ssh_info[:host]
         | 
| 40 | 
            +
                      
         | 
| 41 | 
            +
                      options = Net::SSH::Config.for(host)
         | 
| 42 | 
            +
                      
         | 
| 43 | 
            +
                      options[:user] = machine.ssh_info[:username]
         | 
| 44 | 
            +
                      options[:port] = machine.ssh_info[:port]
         | 
| 45 | 
            +
                      options[:keys] = machine.ssh_info[:private_key_path]
         | 
| 46 | 
            +
                      options[:password] = machine.ssh_info[:password]
         | 
| 47 | 
            +
                      options[:forward_agent] = machine.ssh_info[:private_key_path]
         | 
| 25 48 |  | 
| 26 | 
            -
                       | 
| 27 | 
            -
             | 
| 28 | 
            -
                      end
         | 
| 49 | 
            +
                      set :host,        options[:host_name] || host
         | 
| 50 | 
            +
                      set :ssh_options, options
         | 
| 29 51 | 
             
                    end
         | 
| 30 | 
            -
                  end
         | 
| 31 52 |  | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 53 | 
            +
                    status = RSpec::Core::Runner.run(@spec_files)
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                    raise Vagrant::Errors::ServerSpecFailed if status != 0
         | 
| 34 56 | 
             
                  end
         | 
| 35 57 | 
             
                end
         | 
| 36 58 | 
             
              end
         | 
    
        data/lib/vagrant-serverspec.rb
    CHANGED
    
    
    
        data/locales/en.yml
    CHANGED
    
    | @@ -7,3 +7,7 @@ en: | |
| 7 7 | 
             
                      You must list at least one spec file
         | 
| 8 8 | 
             
                    missing_spec_files: |-
         | 
| 9 9 | 
             
                      These files were specified, but could not be found: %{files}
         | 
| 10 | 
            +
                errors:
         | 
| 11 | 
            +
                  serverspec_failed: |-
         | 
| 12 | 
            +
                    ServerSpec failed to complete successfully. Any error output should be
         | 
| 13 | 
            +
                    visible above. Please fix these errors and try again.
         | 
    
        data/test/ubuntu/.rspec
    ADDED
    
    
| @@ -1,5 +1,3 @@ | |
| 1 | 
            -
            Vagrant.require_plugin('vagrant-serverspec')
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            Vagrant.configure('2') do |config|
         | 
| 4 2 | 
             
              config.vm.box = 'precise64'
         | 
| 5 3 | 
             
              config.vm.box_url = 'http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box'
         | 
| @@ -11,5 +9,6 @@ Vagrant.configure('2') do |config| | |
| 11 9 |  | 
| 12 10 | 
             
              config.vm.provision :serverspec do |spec|
         | 
| 13 11 | 
             
                spec.pattern = '*_spec.rb'
         | 
| 12 | 
            +
                #Specinfra.configuration.sudo_password = 'vagrant'
         | 
| 14 13 | 
             
              end
         | 
| 15 14 | 
             
            end
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            #require 'serverspec'
         | 
| 2 | 
            +
            #require 'net/ssh'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            #set :backend, :ssh
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            # Disable sudo
         | 
| 7 | 
            +
            # set :disable_sudo, true
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # Set environment variables
         | 
| 10 | 
            +
            # set :env, :LANG => 'C', :LC_MESSAGES => 'C' 
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            # Set PATH
         | 
| 13 | 
            +
            # set :path, '/sbin:/usr/local/sbin:$PATH'
         | 
    
        data/test/windows/.rspec
    ADDED
    
    
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            require_relative 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            #describe file('C:\\programdata\\chocolatey\\bin\\console.exe') do
         | 
| 4 | 
            +
            #  it { should be_file }
         | 
| 5 | 
            +
            #end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            describe windows_feature('Web-Server') do
         | 
| 8 | 
            +
              it{ should be_installed.by("powershell") }
         | 
| 9 | 
            +
            end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            #describe windows_registry_key(
         | 
| 12 | 
            +
            #  'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\advanced') do
         | 
| 13 | 
            +
            #  it { should have_property_value('Hidden', :type_dword,'1') }
         | 
| 14 | 
            +
            #end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            describe command('Get-ExecutionPolicy') do
         | 
| 17 | 
            +
              its(:stdout) { should match /RemoteSigned/ }
         | 
| 18 | 
            +
              #its(:stderr) { should match /stderr/ }
         | 
| 19 | 
            +
              its(:exit_status) { should eq 0 }
         | 
| 20 | 
            +
            end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            #describe iis_website('Default Website') do
         | 
| 23 | 
            +
            #  it{ should have_site_bindings(80) }
         | 
| 24 | 
            +
            #end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            describe port(80) do
         | 
| 27 | 
            +
              it { should be_listening }
         | 
| 28 | 
            +
            end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            describe file('C:\Windows\system32\telnet.exe') do
         | 
| 31 | 
            +
              it { should be_file }
         | 
| 32 | 
            +
            end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            describe windows_feature('TelnetClient') do
         | 
| 35 | 
            +
              it{ should be_installed.by("powershell") }
         | 
| 36 | 
            +
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            #require 'serverspec'
         | 
| 2 | 
            +
            #require 'pathname'
         | 
| 3 | 
            +
            #require 'winrm'
         | 
| 4 | 
            +
            #set :backend, :winrm
         | 
| 5 | 
            +
            #set :os, :family => 'windows'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            #user = 'vagrant'
         | 
| 8 | 
            +
            #pass = 'vagrant'
         | 
| 9 | 
            +
            ##endpoint = "http://#{ENV['TARGET_HOST']}:5985/wsman"
         | 
| 10 | 
            +
            #endpoint = "http://10.128.139.116:5985/wsman"
         | 
| 11 | 
            +
            #winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :basic_auth_only => true)
         | 
| 12 | 
            +
            #winrm.set_timeout 300 # 5 minutes max timeout for any operation
         | 
| 13 | 
            +
            #Specinfra.configuration.winrm = winrm
         | 
| @@ -0,0 +1,58 @@ | |
| 1 | 
            +
            # -*- mode: ruby -*-
         | 
| 2 | 
            +
            # vi: set ft=ruby :
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Vagrant.require_version ">= 1.6.2"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Vagrant.configure("2") do |config|
         | 
| 7 | 
            +
                config.vm.define "windows"
         | 
| 8 | 
            +
                config.vm.box = "windows"
         | 
| 9 | 
            +
                config.vm.communicator = "winrm"
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                # Admin user name and password
         | 
| 12 | 
            +
                config.winrm.username = "vagrant"
         | 
| 13 | 
            +
                config.winrm.password = "vagrant"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                config.vm.guest = :windows
         | 
| 16 | 
            +
                config.vm.communicator = "winrm"
         | 
| 17 | 
            +
                config.windows.halt_timeout = 15
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                config.vm.network :forwarded_port, guest: 3389, host: 3389, id: "rdp", auto_correct: true
         | 
| 20 | 
            +
                config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                config.vm.provider "hyperv" do |v, override|
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            	end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                config.vm.provider :virtualbox do |v, override|
         | 
| 27 | 
            +
                    #v.gui = true
         | 
| 28 | 
            +
                    v.customize ["modifyvm", :id, "--memory", 2048]
         | 
| 29 | 
            +
                    v.customize ["modifyvm", :id, "--cpus", 2]
         | 
| 30 | 
            +
                    v.customize ["setextradata", "global", "GUI/SuppressMessages", "all" ]
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                config.vm.provider :vmware_fusion do |v, override|
         | 
| 34 | 
            +
                    #v.gui = true
         | 
| 35 | 
            +
                    v.vmx["memsize"] = "2048"
         | 
| 36 | 
            +
                    v.vmx["numvcpus"] = "2"
         | 
| 37 | 
            +
                    v.vmx["ethernet0.virtualDev"] = "vmxnet3"
         | 
| 38 | 
            +
                    v.vmx["RemoteDisplay.vnc.enabled"] = "false"
         | 
| 39 | 
            +
                    v.vmx["RemoteDisplay.vnc.port"] = "5900"
         | 
| 40 | 
            +
                    v.vmx["scsi0.virtualDev"] = "lsisas1068"
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                config.vm.provider :vmware_workstation do |v, override|
         | 
| 44 | 
            +
                    #v.gui = true
         | 
| 45 | 
            +
                    v.vmx["memsize"] = "2048"
         | 
| 46 | 
            +
                    v.vmx["numvcpus"] = "2"
         | 
| 47 | 
            +
                    v.vmx["ethernet0.virtualDev"] = "vmxnet3"
         | 
| 48 | 
            +
                    v.vmx["RemoteDisplay.vnc.enabled"] = "false"
         | 
| 49 | 
            +
                    v.vmx["RemoteDisplay.vnc.port"] = "5900"
         | 
| 50 | 
            +
                    v.vmx["scsi0.virtualDev"] = "lsisas1068"
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
             | 
| 54 | 
            +
              config.vm.provision :serverspec do |spec|
         | 
| 55 | 
            +
                spec.pattern = '*_spec.rb'
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            end
         | 
    
        data/vagrant-serverspec.gemspec
    CHANGED
    
    | @@ -16,7 +16,9 @@ Gem::Specification.new do |gem| | |
| 16 16 | 
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         | 
| 17 17 | 
             
              gem.require_paths = ['lib']
         | 
| 18 18 |  | 
| 19 | 
            -
              gem. | 
| 19 | 
            +
              gem.add_runtime_dependency 'serverspec', '~> 2.7', '>= 2.7.0'
         | 
| 20 | 
            +
              gem.add_runtime_dependency 'winrm', '~> 1.1', '>= 1.1.0'
         | 
| 21 | 
            +
              #gem.add_runtime_dependency 'highline', '~> 1.6', '>= 1.6.20'
         | 
| 20 22 |  | 
| 21 23 | 
             
              gem.add_development_dependency 'bundler', '~> 1.6', '>= 1.6.2'
         | 
| 22 24 | 
             
              gem.add_development_dependency 'rake', '~> 10.3', '>= 10.3.2'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vagrant-serverspec
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1 | 
| 4 | 
            +
              version: 1.0.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jeremy Voorhis
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-02-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: serverspec
         | 
| @@ -16,20 +16,40 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '2.7'
         | 
| 20 20 | 
             
                - - ">="
         | 
| 21 21 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version:  | 
| 22 | 
            +
                    version: 2.7.0
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 26 | 
             
                requirements:
         | 
| 27 27 | 
             
                - - "~>"
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: ' | 
| 29 | 
            +
                    version: '2.7'
         | 
| 30 30 | 
             
                - - ">="
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version:  | 
| 32 | 
            +
                    version: 2.7.0
         | 
| 33 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 34 | 
            +
              name: winrm
         | 
| 35 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 36 | 
            +
                requirements:
         | 
| 37 | 
            +
                - - "~>"
         | 
| 38 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 39 | 
            +
                    version: '1.1'
         | 
| 40 | 
            +
                - - ">="
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            +
                    version: 1.1.0
         | 
| 43 | 
            +
              type: :runtime
         | 
| 44 | 
            +
              prerelease: false
         | 
| 45 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 46 | 
            +
                requirements:
         | 
| 47 | 
            +
                - - "~>"
         | 
| 48 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            +
                    version: '1.1'
         | 
| 50 | 
            +
                - - ">="
         | 
| 51 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            +
                    version: 1.1.0
         | 
| 33 53 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 54 | 
             
              name: bundler
         | 
| 35 55 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -80,19 +100,25 @@ extra_rdoc_files: [] | |
| 80 100 | 
             
            files:
         | 
| 81 101 | 
             
            - ".gitignore"
         | 
| 82 102 | 
             
            - Gemfile
         | 
| 83 | 
            -
            - Gemfile.lock
         | 
| 84 103 | 
             
            - LICENSE
         | 
| 85 104 | 
             
            - README.md
         | 
| 86 105 | 
             
            - Rakefile
         | 
| 106 | 
            +
            - WINDOWS_README.md
         | 
| 87 107 | 
             
            - lib/vagrant-serverspec.rb
         | 
| 88 108 | 
             
            - lib/vagrant-serverspec/config.rb
         | 
| 109 | 
            +
            - lib/vagrant-serverspec/error.rb
         | 
| 89 110 | 
             
            - lib/vagrant-serverspec/plugin.rb
         | 
| 90 111 | 
             
            - lib/vagrant-serverspec/provisioner.rb
         | 
| 91 112 | 
             
            - lib/vagrant-serverspec/version.rb
         | 
| 92 113 | 
             
            - locales/en.yml
         | 
| 93 | 
            -
            - test/ | 
| 94 | 
            -
            - test/ | 
| 95 | 
            -
            - test/ | 
| 114 | 
            +
            - test/ubuntu/.rspec
         | 
| 115 | 
            +
            - test/ubuntu/Vagrantfile
         | 
| 116 | 
            +
            - test/ubuntu/sample_spec.rb
         | 
| 117 | 
            +
            - test/ubuntu/spec_helper.rb
         | 
| 118 | 
            +
            - test/windows/.rspec
         | 
| 119 | 
            +
            - test/windows/sample_spec.rb
         | 
| 120 | 
            +
            - test/windows/spec_helper.rb
         | 
| 121 | 
            +
            - test/windows/vagrantfile
         | 
| 96 122 | 
             
            - vagrant-serverspec.gemspec
         | 
| 97 123 | 
             
            homepage: https://github.com/jvoorhis/vagrant-serverspec
         | 
| 98 124 | 
             
            licenses:
         | 
| @@ -119,6 +145,11 @@ signing_key: | |
| 119 145 | 
             
            specification_version: 4
         | 
| 120 146 | 
             
            summary: A Vagrant plugin that executes serverspec
         | 
| 121 147 | 
             
            test_files:
         | 
| 122 | 
            -
            - test/ | 
| 123 | 
            -
            - test/ | 
| 124 | 
            -
            - test/ | 
| 148 | 
            +
            - test/ubuntu/.rspec
         | 
| 149 | 
            +
            - test/ubuntu/Vagrantfile
         | 
| 150 | 
            +
            - test/ubuntu/sample_spec.rb
         | 
| 151 | 
            +
            - test/ubuntu/spec_helper.rb
         | 
| 152 | 
            +
            - test/windows/.rspec
         | 
| 153 | 
            +
            - test/windows/sample_spec.rb
         | 
| 154 | 
            +
            - test/windows/spec_helper.rb
         | 
| 155 | 
            +
            - test/windows/vagrantfile
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,56 +0,0 @@ | |
| 1 | 
            -
            GIT
         | 
| 2 | 
            -
              remote: git://github.com/mitchellh/vagrant
         | 
| 3 | 
            -
              revision: e9184ed6f9b89d68fc4d253b6913d68a05c677ef
         | 
| 4 | 
            -
              specs:
         | 
| 5 | 
            -
                vagrant (1.4.0.dev)
         | 
| 6 | 
            -
                  childprocess (~> 0.3.7)
         | 
| 7 | 
            -
                  erubis (~> 2.7.0)
         | 
| 8 | 
            -
                  i18n (~> 0.6.0)
         | 
| 9 | 
            -
                  log4r (~> 1.1.9)
         | 
| 10 | 
            -
                  net-scp (~> 1.1.0)
         | 
| 11 | 
            -
                  net-ssh (~> 2.6.6)
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            PATH
         | 
| 14 | 
            -
              remote: .
         | 
| 15 | 
            -
              specs:
         | 
| 16 | 
            -
                vagrant-serverspec (0.0.1)
         | 
| 17 | 
            -
                  serverspec (~> 1.7.0)
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            GEM
         | 
| 20 | 
            -
              remote: https://rubygems.org/
         | 
| 21 | 
            -
              specs:
         | 
| 22 | 
            -
                childprocess (0.3.9)
         | 
| 23 | 
            -
                  ffi (~> 1.0, >= 1.0.11)
         | 
| 24 | 
            -
                diff-lcs (1.2.5)
         | 
| 25 | 
            -
                erubis (2.7.0)
         | 
| 26 | 
            -
                ffi (1.9.3)
         | 
| 27 | 
            -
                highline (1.6.21)
         | 
| 28 | 
            -
                i18n (0.6.5)
         | 
| 29 | 
            -
                log4r (1.1.10)
         | 
| 30 | 
            -
                net-scp (1.1.2)
         | 
| 31 | 
            -
                  net-ssh (>= 2.6.5)
         | 
| 32 | 
            -
                net-ssh (2.6.8)
         | 
| 33 | 
            -
                rake (10.3.2)
         | 
| 34 | 
            -
                rspec (2.99.0)
         | 
| 35 | 
            -
                  rspec-core (~> 2.99.0)
         | 
| 36 | 
            -
                  rspec-expectations (~> 2.99.0)
         | 
| 37 | 
            -
                  rspec-mocks (~> 2.99.0)
         | 
| 38 | 
            -
                rspec-core (2.99.0)
         | 
| 39 | 
            -
                rspec-expectations (2.99.0)
         | 
| 40 | 
            -
                  diff-lcs (>= 1.1.3, < 2.0)
         | 
| 41 | 
            -
                rspec-mocks (2.99.0)
         | 
| 42 | 
            -
                serverspec (1.7.0)
         | 
| 43 | 
            -
                  highline
         | 
| 44 | 
            -
                  net-ssh
         | 
| 45 | 
            -
                  rspec (~> 2.13)
         | 
| 46 | 
            -
                  specinfra (~> 1.13)
         | 
| 47 | 
            -
                specinfra (1.15.0)
         | 
| 48 | 
            -
             | 
| 49 | 
            -
            PLATFORMS
         | 
| 50 | 
            -
              ruby
         | 
| 51 | 
            -
             | 
| 52 | 
            -
            DEPENDENCIES
         | 
| 53 | 
            -
              bundler (~> 1.6.2)
         | 
| 54 | 
            -
              rake (~> 10.3.2)
         | 
| 55 | 
            -
              vagrant!
         | 
| 56 | 
            -
              vagrant-serverspec!
         |