mwrock / packer-templates

Templates for creating vagrant boxes
Other
535 stars 250 forks source link

vbox2016 'xCertificateImport' not found. #83

Closed Costanza closed 7 years ago

Costanza commented 7 years ago

host os: Windows 10 iso: en_windows_server_2016_x64_dvd_9327751 (with product key added) packer: 0.12.2 vagrant: 1.9.1 virtualbox 5.1.18

I have successfully build 2016 boxes previously, but now I am always having the issue that module 'xCertificateImport' cannot be found when it runs the vbox_guest_additions recipe. if I remote in and quickly add it, it then works, but fails on the next powershell module required (xFirewall from memory)

Can't for the life of me work this out, the logs s uggest the xCertificate module was correctly installed by install_ps_modules.

I tried explicitly adding the module to the dsc_resource block:

dsc_resource "Install Oracle Cert" do
  resource :xCertificateImport
  module_name "xCertificate"
  property :Thumbprint, "7e92b66be51b79d8ce3ff25c15c2df6ab8c7f2f2"
  property :Store, "TrustedPublisher"
  property :Location, "LocalMachine"
  property :Path, "e:/cert/vbox-sha1.cer"
end

it fails slightly differently but still complaining about xCertificateImport not being found.

Logs below:

virtualbox-iso: [2017-03-25T00:38:05+00:00] INFO: powershell_script[install xCertificate module] ran successfully
    virtualbox-iso: [2017-03-25T00:38:05+00:00] INFO: Processing dsc_resource[Install Oracle Cert] action run (packer-templates::vbox_guest_additions line 1)
    virtualbox-iso:
    virtualbox-iso: ================================================================================
    virtualbox-iso: Error executing action `run` on resource 'dsc_resource[Install Oracle Cert]'
    virtualbox-iso: ================================================================================
    virtualbox-iso:
    virtualbox-iso: Chef::Exceptions::PowershellCmdletException
    virtualbox-iso: -------------------------------------------
    virtualbox-iso: Powershell Cmdlet failed: trap [Exception] {write-error -exception ($_.Exception.Message);exit 1};Invoke-DscResource -Method test -Name
    virtualbox-iso: xCertificateImport -Property @{Thumbprint='7e92b66be51b79d8ce3ff25c15c2df6ab8c7f2f2';Store='TrustedPublisher';Location=
    virtualbox-iso: 'LocalMachine';Path='e:/cert/vbox-sha1.cer'} -Module xCertificate -Verbose   4>
    virtualbox-iso: 'C:/Users/vagrant/AppData/Local/Temp/verbose20170325-5472-4fkpz9' | convertto-json -compress -depth 5 >
    virtualbox-iso: C:/Users/vagrant/AppData/Local/Temp/json20170325-5472-k72wdz;if ( ! $? ) { exit 1 } : Resource xCertificateImport was
    virtualbox-iso: not found.
    virtualbox-iso: + CategoryInfo          : NotSpecified: (:) [Write-Error], Exception
    virtualbox-iso: + FullyQualifiedErrorId : System.Exception
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso: Resource Declaration:
    virtualbox-iso: ---------------------
    virtualbox-iso: # In c:/windows/temp/packer-chef-solo/local-mode-cache/cache/cookbooks/packer-templates/recipes/vbox_guest_additions.rb
    virtualbox-iso:
    virtualbox-iso: 1: dsc_resource "Install Oracle Cert" do
    virtualbox-iso: 2:   resource :xCertificateImport
    virtualbox-iso: 3:   module_name "xCertificate"
    virtualbox-iso: 4:   property :Thumbprint, "7e92b66be51b79d8ce3ff25c15c2df6ab8c7f2f2"
    virtualbox-iso: 5:   property :Store, "TrustedPublisher"
    virtualbox-iso: 6:   property :Location, "LocalMachine"
    virtualbox-iso: 7:   property :Path, "e:/cert/vbox-sha1.cer"
    virtualbox-iso: 8: end
    virtualbox-iso: 9:
    virtualbox-iso:
    virtualbox-iso: Compiled Resource:
    virtualbox-iso: ------------------
    virtualbox-iso: # Declared in c:/windows/temp/packer-chef-solo/local-mode-cache/cache/cookbooks/packer-templates/recipes/vbox_guest_additions.rb:1:in `from_file'
    virtualbox-iso:
    virtualbox-iso: dsc_resource("Install Oracle Cert") do
    virtualbox-iso: action [:run]
    virtualbox-iso: retries 0
    virtualbox-iso: retry_delay 2
    virtualbox-iso: default_guard_interpreter :default
    virtualbox-iso: properties {Thumbprint=>"7e92b66be51b79d8ce3ff25c15c2df6ab8c7f2f2", Store=>"TrustedPublisher", Location=>"LocalMachine", Path=>"e:/cert/vbox-sha1.cer"}
    virtualbox-iso: resource :xCertificateImport
    virtualbox-iso: reboot_action :nothing
    virtualbox-iso: declared_type :dsc_resource
    virtualbox-iso: cookbook_name "packer-templates"
    virtualbox-iso: recipe_name "vbox_guest_additions"
    virtualbox-iso: module_name "xCertificate"
    virtualbox-iso: end
    virtualbox-iso:
    virtualbox-iso: Platform:
    virtualbox-iso: ---------
    virtualbox-iso: x64-mingw32
    virtualbox-iso:
    virtualbox-iso: [2017-03-25T00:38:07+00:00] INFO: Running queued delayed notifications before re-raising exception
    virtualbox-iso: [2017-03-25T00:38:07+00:00] ERROR: Running exception handlers
    virtualbox-iso: [2017-03-25T00:38:07+00:00] ERROR: Exception handlers complete
    virtualbox-iso: [2017-03-25T00:38:07+00:00] FATAL: Stacktrace dumped to c:/windows/temp/packer-chef-solo/local-mode-cache/cache/chef-stacktrace.out
    virtualbox-iso: [2017-03-25T00:38:07+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
    virtualbox-iso: [2017-03-25T00:38:07+00:00] FATAL: Chef::Exceptions::PowershellCmdletException: dsc_resource[Install Oracle Cert] (packer-templates::vbox_guest_additions line 1) had an error: Chef::Exceptions::PowershellCmdletException: Powershell Cmdlet failed: trap [Exception] {write-error -exception ($_.Exception.Message);exit 1};Invoke-DscResource -Method test -Name
    virtualbox-iso: xCertificateImport -Property @{Thumbprint='7e92b66be51b79d8ce3ff25c15c2df6ab8c7f2f2';Store='TrustedPublisher';Location=
    virtualbox-iso: 'LocalMachine';Path='e:/cert/vbox-sha1.cer'} -Module xCertificate -Verbose   4>
    virtualbox-iso: 'C:/Users/vagrant/AppData/Local/Temp/verbose20170325-5472-4fkpz9' | convertto-json -compress -depth 5 >
    virtualbox-iso: C:/Users/vagrant/AppData/Local/Temp/json20170325-5472-k72wdz;if ( ! $? ) { exit 1 } : Resource xCertificateImport was
    virtualbox-iso: not found.
    virtualbox-iso: + CategoryInfo          : NotSpecified: (:) [Write-Error], Exception
    virtualbox-iso: + FullyQualifiedErrorId : System.Exception
    virtualbox-iso:
    virtualbox-iso:
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error executing Chef: Non-zero exit status: 1

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error executing Chef: Non-zero exit status: 1

==> Builds finished but no artifacts were created.
mwrock commented 7 years ago

I just ran into this too. My hunch is that its a bug in a recent version of chef but to quickly workaround it I changed the guest additions recipie to not use DSC.