vagrant-ansible 0.0.1 → 0.0.2
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.
- data/.gemtest +0 -0
- data/README.md +1 -1
- data/Rakefile +19 -14
- data/lib/vagrant-ansible/provisioner.rb +25 -20
- metadata +9 -8
    
        data/.gemtest
    ADDED
    
    | 
            File without changes
         | 
    
        data/README.md
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -1,22 +1,27 @@ | |
| 1 1 | 
             
            # -*- ruby -*-
         | 
| 2 2 |  | 
| 3 3 | 
             
            require 'rubygems'
         | 
| 4 | 
            -
             | 
| 4 | 
            +
            if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
         | 
| 5 | 
            +
              require 'hoe'
         | 
| 5 6 |  | 
| 6 | 
            -
            Hoe.plugin :git
         | 
| 7 | 
            -
            Hoe.plugin :gemspec
         | 
| 8 | 
            -
            Hoe.plugin :bundler
         | 
| 9 | 
            -
            Hoe.plugin :gemcutter
         | 
| 10 | 
            -
            Hoe.plugins.delete :rubyforge
         | 
| 7 | 
            +
              Hoe.plugin :git
         | 
| 8 | 
            +
              Hoe.plugin :gemspec
         | 
| 9 | 
            +
              Hoe.plugin :bundler
         | 
| 10 | 
            +
              Hoe.plugin :gemcutter
         | 
| 11 | 
            +
              Hoe.plugins.delete :rubyforge
         | 
| 11 12 |  | 
| 12 | 
            -
            Hoe.spec 'vagrant-ansible' do
         | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 13 | 
            +
              Hoe.spec 'vagrant-ansible' do
         | 
| 14 | 
            +
                developer('Dominik Sander', 'git@dsander.de')
         | 
| 15 | 
            +
                self.description ="Develop & test your ansible playbooks with Vagrant" 
         | 
| 16 | 
            +
                self.summary = "Vagrant-ansible is a provisioning plugin for Vagrant, that makes developing and testing playbooks for ansible easy."
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                self.readme_file = 'README.md'
         | 
| 19 | 
            +
                self.history_file = 'CHANGELOG.md'
         | 
| 20 | 
            +
                self.extra_deps << ["vagrant"]
         | 
| 21 | 
            +
              end
         | 
| 20 22 | 
             
            end
         | 
| 21 23 |  | 
| 24 | 
            +
            task :default => :spec
         | 
| 25 | 
            +
            task :test => :spec
         | 
| 26 | 
            +
             | 
| 22 27 | 
             
            # vim: syntax=ruby
         | 
| @@ -3,15 +3,16 @@ require 'tempfile' | |
| 3 3 | 
             
            module Vagrant
         | 
| 4 4 | 
             
              module Provisioners
         | 
| 5 5 | 
             
                class Ansible < Base
         | 
| 6 | 
            -
                  VERSION = '0.0. | 
| 6 | 
            +
                  VERSION = '0.0.2'
         | 
| 7 7 | 
             
                  include Util::SafeExec
         | 
| 8 8 |  | 
| 9 9 | 
             
                  class Config < Vagrant::Config::Base
         | 
| 10 10 | 
             
                    attr_accessor :playbook
         | 
| 11 11 | 
             
                    attr_accessor :hosts
         | 
| 12 | 
            +
                    attr_accessor :inventory_file
         | 
| 12 13 |  | 
| 13 14 | 
             
                    def initialize
         | 
| 14 | 
            -
             | 
| 15 | 
            +
             | 
| 15 16 | 
             
                    end
         | 
| 16 17 |  | 
| 17 18 | 
             
                    def validate(env, errors)
         | 
| @@ -19,7 +20,7 @@ module Vagrant | |
| 19 20 | 
             
                      if playbook.nil?
         | 
| 20 21 | 
             
                        errors.add(I18n.t("vagrant.provisioners.ansible.no_playbook"))
         | 
| 21 22 | 
             
                      end
         | 
| 22 | 
            -
                      if hosts.nil?
         | 
| 23 | 
            +
                      if hosts.nil? and inventory_file.nil?
         | 
| 23 24 | 
             
                        errors.add(I18n.t("vagrant.provisioners.ansible.no_hosts"))
         | 
| 24 25 | 
             
                      end
         | 
| 25 26 | 
             
                    end
         | 
| @@ -32,33 +33,37 @@ module Vagrant | |
| 32 33 | 
             
                  # This methods yield the path to a temporally created inventory
         | 
| 33 34 | 
             
                  # file.
         | 
| 34 35 | 
             
                  def with_inventory_file(ssh)
         | 
| 35 | 
            -
                     | 
| 36 | 
            -
                       | 
| 37 | 
            -
             | 
| 38 | 
            -
                       | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 36 | 
            +
                    if not config.inventory_file.nil?
         | 
| 37 | 
            +
                      yield config.inventory_file
         | 
| 38 | 
            +
                    else
         | 
| 39 | 
            +
                      begin
         | 
| 40 | 
            +
                        forward = env[:vm].config.vm.forwarded_ports.select do |x|
         | 
| 41 | 
            +
                          x[:guestport] == ssh.guest_port
         | 
| 42 | 
            +
                        end.first[:hostport]
         | 
| 43 | 
            +
                        file = Tempfile.new('inventory')
         | 
| 44 | 
            +
                        file.write("[#{config.hosts}]\n")
         | 
| 45 | 
            +
                        file.write("#{ssh.host}:#{forward}")
         | 
| 46 | 
            +
                        file.fsync
         | 
| 47 | 
            +
                        file.close
         | 
| 48 | 
            +
                        yield file.path
         | 
| 49 | 
            +
                      ensure
         | 
| 50 | 
            +
                        file.unlink
         | 
| 51 | 
            +
                      end
         | 
| 47 52 | 
             
                    end
         | 
| 48 53 | 
             
                  end
         | 
| 49 54 |  | 
| 50 55 | 
             
                  def provision!
         | 
| 51 56 | 
             
                    ssh = env[:vm].config.ssh
         | 
| 52 | 
            -
             | 
| 57 | 
            +
             | 
| 53 58 | 
             
                    with_inventory_file(ssh) do |inventory_file|
         | 
| 54 59 | 
             
                      puts ["ansible-playbook",
         | 
| 55 | 
            -
                                "--user=#{ssh.username}", | 
| 56 | 
            -
                                "--inventory-file=#{inventory_file}", | 
| 60 | 
            +
                                "--user=#{ssh.username}",
         | 
| 61 | 
            +
                                "--inventory-file=#{inventory_file}",
         | 
| 57 62 | 
             
                                "--private-key=#{env[:vm].env.default_private_key_path}",
         | 
| 58 63 | 
             
                                config.playbook].join(' ')
         | 
| 59 64 | 
             
                      safe_exec("ansible-playbook",
         | 
| 60 | 
            -
                                "--user=#{ssh.username}", | 
| 61 | 
            -
                                "--inventory-file=#{inventory_file}", | 
| 65 | 
            +
                                "--user=#{ssh.username}",
         | 
| 66 | 
            +
                                "--inventory-file=#{inventory_file}",
         | 
| 62 67 | 
             
                                "--private-key=#{env[:vm].env.default_private_key_path}",
         | 
| 63 68 | 
             
                                config.playbook)
         | 
| 64 69 | 
             
                    end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vagrant-ansible
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-08-06 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: vagrant
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &19992640 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *19992640
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: rdoc
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &20005240 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '3.10'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *20005240
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: hoe
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &20002620 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ~>
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: '3.0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *20002620
         | 
| 47 47 | 
             
            description: Develop & test your ansible playbooks with Vagrant
         | 
| 48 48 | 
             
            email:
         | 
| 49 49 | 
             
            - git@dsander.de
         | 
| @@ -61,6 +61,7 @@ files: | |
| 61 61 | 
             
            - lib/vagrant-ansible.rb
         | 
| 62 62 | 
             
            - lib/vagrant-ansible/provisioner.rb
         | 
| 63 63 | 
             
            - lib/vagrant_init.rb
         | 
| 64 | 
            +
            - .gemtest
         | 
| 64 65 | 
             
            homepage: https://github.com/dsander/vagrant-ansible
         | 
| 65 66 | 
             
            licenses: []
         | 
| 66 67 | 
             
            post_install_message: 
         |