Alex.Barylski
Alex.Barylski

Reputation: 2953

vagrant box SSL error "suddenly" (Windows 10 + 7)

I have had this vagrant file for close to a year and never gave me issues:

Vagrant.configure(2) do |config|
  #config.vm.box = "puppetlabs/debian-8.2-64-puppet"  
  config.vm.box = "alex-barylski/debian-8.2"    

  config.vm.network :forwarded_port, guest: 80, host: 8089
  config.vm.network :forwarded_port, guest: 3306, host: 33002

  config.vm.provision "shell", inline: <<-SHELL

    apt-get update
    apt-get install -y puppet puppet-common 

    # Required for the file_* function in platform include
    puppet module install puppetlabs/stdlib 
  SHELL

  config.vm.provision "puppet" do |puppet|
    puppet.manifest_file = "default.pp"    
    puppet.manifests_path = ".vagrant/puppet"
    puppet.module_path = ".vagrant/puppet/modules"

    #puppet.options = "--verbose --debug"
  end

  config.vm.synced_folder "./", "/var/www", owner: "vagrant", group: "www-data", mount_options: ["dmode=775,fmode=664"]         
end

Here is the result:

==> default: Processing triggers for systemd (215-17+deb8u2) ... ==> default: /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: : ==> default: /usr/lib/x86_64-linux-gnu/ruby/2.1.0/openssl.so: symbol SSLv2_method, version OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference - /usr/lib/x86_64-linux-gnu/ruby/2.1.0/openssl.so ==> default: ( ==> default: LoadError ==> default: ) ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/openssl.rb:17:in <top (required)>' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/vendor_ruby/puppet/util/monkey_patches.rb:171:in' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/vendor_ruby/puppet/util.rb:16:in <module:Util>' ==> default: from /usr/lib/ruby/vendor_ruby/puppet/util.rb:15:in' ==> default: from /usr/lib/ruby/vendor_ruby/puppet/util.rb:14:in <top (required)>' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/vendor_ruby/puppet.rb:8:in' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in <top (required)>' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' ==> default: from /usr/bin/puppet:7:in' The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

If I downgrade to debian 7.8 it seems to work - but I need 8.2. I have tried 3-4 different boxes, manually downloaded, etc.

Upvotes: 1

Views: 1089

Answers (1)

Matthias Steinbauer
Matthias Steinbauer

Reputation: 1776

Update Oct 2016

As of the end of Sept 2016 a new version of the Debian Jessie boxes became available on Atlas, which also fixes this problem for us.

https://atlas.hashicorp.com/debian/boxes/jessie64/versions/8.6.1

Original Answer

Same problem over here, it seems that Puppet or Ruby have been upgraded to use newer versions of libssl as the ones available in the box. If we do:

apt-get update
apt-get -y upgrade

manually in the box suddenly puppet apply of our manifest is back to normal. Here is the fix for your Vagrantfile:

Vagrant.configure(2) do |config|
  #config.vm.box = "puppetlabs/debian-8.2-64-puppet"  
  config.vm.box = "alex-barylski/debian-8.2"    

  config.vm.network :forwarded_port, guest: 80, host: 8089
  config.vm.network :forwarded_port, guest: 3306, host: 33002

  config.vm.provision "shell", inline: <<-SHELL

     apt-get update
     apt-get -y upgrade libssl1.0.0 openssl # forces an upgrade of libssl and openssl
     apt-get install -y puppet puppet-common 

     # Required for the file_* function in platform include
     puppet module install puppetlabs/stdlib 
  SHELL

  config.vm.provision "puppet" do |puppet|
    puppet.manifest_file = "default.pp"    
    puppet.manifests_path = ".vagrant/puppet"
    puppet.module_path = ".vagrant/puppet/modules"

    #puppet.options = "--verbose --debug"
  end

  config.vm.synced_folder "./", "/var/www", owner: "vagrant", group: "www-data", mount_options: ["dmode=775,fmode=664"]         
end

Downside of this approach in our case we spin up around 10 machines this consumes a lot of bandwidth and time.

Upvotes: 3

Related Questions