Sha256: f95818a9d0677e859981acd5399fc95c23b6614324c643433ccd5f68cd29834f

Contents?: true

Size: 1.47 KB

Versions: 50

Compression:

Stored size: 1.47 KB

Contents

module Vagrant
  module Provisioners
    class PuppetServerError < Vagrant::Errors::VagrantError
      error_namespace("vagrant.provisioners.puppet_server")
    end

    class PuppetServer < Base
      register :puppet_server

      class Config < Vagrant::Config::Base
        attr_accessor :puppet_server
        attr_accessor :puppet_node
        attr_accessor :options

        def initialize
          @puppet_server = "puppet"
          @puppet_node = "puppet_node"
          @options = []
        end
      end

      def provision!
        verify_binary("puppetd")
        run_puppetd_client
      end

      def verify_binary(binary)
        vm.ssh.execute do |ssh|
          ssh.sudo!("which #{binary}", :error_class => PuppetServerError, :_key => :puppetd_not_detected, :binary => binary)
        end
      end

      def run_puppetd_client
        options = config.options
        options = options.join(" ") if options.is_a?(Array)
        if config.puppet_node
          cn = config.puppet_node
        else
          cn = env.config.vm.box
        end

        commands = "puppetd #{options} --server #{config.puppet_server} --certname #{cn}"

        env.ui.info I18n.t("vagrant.provisioners.puppet_server.running_puppetd")

        vm.ssh.execute do |ssh|
          ssh.sudo!(commands) do |channel, type, data|
            ssh.check_exit_status(data, commands) if type == :exit_status
            env.ui.info(data) if type != :exit_status
          end
        end
      end
    end
  end
end

Version data entries

50 entries across 50 versions & 6 rubygems

Version Path
vagrantup-0.8.9 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.8 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.7 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.6 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.5 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.4 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.3 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.2 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.10 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.1 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.8.0 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.8 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.7 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.6 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.5 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.4 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.3 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.2 lib/vagrant/provisioners/puppet_server.rb
vagrantup-0.7.1 lib/vagrant/provisioners/puppet_server.rb
vagrant-0.8.10 lib/vagrant/provisioners/puppet_server.rb