Commit Graph

140 Commits

Author SHA1 Message Date
Megan Marsh c5b346b07b
Merge pull request #6393 from DanHam/fix-hyperv-export
Various improvements to Hyper-V ISO and VMCX builders
2018-08-24 15:52:49 -07:00
Megan Marsh 340363a649
Merge pull request #6613 from hashicorp/merge_ssh_config_funcs
Merge ssh config funcs from builders
2018-08-23 16:03:36 -07:00
Megan Marsh 918db58604 added new template variables to replace PACKER_KEY_INTERVAL with tunable key and keygroup intervals depending on driver used 2018-08-22 11:37:56 -07:00
Adrien Delorme 41f6e0334d refactor all copy pasted sshConfig with into communicator.Config.SSHConfigFunc
* still need to append the auth methods into an array for gracefullness
2018-08-22 17:02:23 +02:00
DanHam 674bad0ab4
Break very long lines for readability 2018-07-20 02:12:47 +01:00
DanHam 00276f2f64
Change step name to better illustrate purpose of step 2018-07-20 02:12:45 +01:00
DanHam 32148168bd
Introduce a new step to collate build artifact at the end of the build
The new step collects together all the required build artifacts and
places them in the output directory.

* Reintroduce/add the code removed from step export to preserve the
  legacy export directory structure when skip_export is unset/false
* Add a place holder for a future function that will move just the VHD
  files from the build directory to the output directory when
  skip_export is true
* Add tests for current functionality and placeholder tests for future
  functions
2018-07-20 02:12:44 +01:00
DanHam c2437ba592
Remove the option to place the VHD files in a separate directory
The export process now exports the VM directly from the build directory
into the output directory. There are no intermediate steps or copying of
files involved. This means that there is no longer any benefit in having
a separate directory to house the VHD files - see #5206 for the
reasoning behind the introduction of this feature.

If a user wishes to house the build files on a separate disk from the
output directory (perhaps for performance reasons or due to disk space
limitations) they can still do so through the use of `temp_path`.
2018-07-20 02:12:43 +01:00
DanHam d5d82c32b2
Changes to the export process have made 'inline' build of disks redundant
PR #5631 introduced code to build/create disks directly in the output
directory if `skip_export` was set in an attempt to optimise the build
process. These are no longer required.
2018-07-20 02:12:43 +01:00
DanHam 09028c14a3
Reintroduce the disk compaction process as a unique step 2018-07-20 02:12:43 +01:00
DanHam da2df69301
Remove disk compaction from the export step 2018-07-20 02:12:42 +01:00
Unknown fc734b6bd9 Using vmconnect to display gui for hyper-v
vmconnect.exe comes as part of Hyper-V and is the tool used by Hyper-V Manager to connect with a virtual machine. This commits sets behaviour the same as virtualbox and vmware to display the virtual machine connection unless headless is set in the template.
2018-05-14 20:52:10 +10:00
M. Marsh 5871b8242b
Merge pull request #6101 from adarobin/azurecompatible
Add use_fixed_vhd_format Hyper-V ISO option
2018-05-10 17:02:44 -07:00
Stefan Henseler 6f00596053 Adds config option to specify hyper-v secure boot template 2018-05-10 19:00:35 +02:00
Adam Robinson 3aebd5f462 Add use_fixed_vhd_format Hyper-V ISO option 2018-04-26 13:35:19 -04:00
Matthew Donoughe ef03e97dc3 pass MacAddress to StepCreateVM 2018-04-24 20:39:42 -04:00
Matthew Hooker 1d36ef038c
implement boot config struct for hyperv 2018-04-19 14:26:31 -07:00
Matthew Hooker bdb1eee7d8
Implement new parser for HyperV boot command 2018-04-19 14:26:29 -07:00
M. Marsh f5c031baf9
Merge pull request #5941 from synax/hyper-v-disk-block-size
Adds Support to configure hyper-v disk block size
2018-04-19 11:27:52 -07:00
Josh Soref cab8b6ed68 spelling: maximum 2018-03-13 08:10:20 +00:00
Stefan Henseler 103186af86 Adds Support to configure hyper-v disk block size 2018-02-23 20:19:26 +01:00
Ben Phegan 3c88e787df
Merge branch 'master' into hyperv_mac_address 2018-02-02 09:26:52 +11:00
SwampDragons 6d14eb6ea4
Merge pull request #5631 from vijayinvites/diffdisks
[Hyper-V] Use differential disks and Inline disk creation to improve build time (a lot) and to reduce disk usage(a lot)
2018-01-31 16:51:27 -08:00
Matthew Hooker 8cd403425e
test fixes WIP 2018-01-24 17:09:17 -08:00
Matthew Hooker 7a189a83a1
fix imports
`find . -type f -name '*.go' -not -path "./vendor/*" -exec goimports -w {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker 366dc3da0a
move multistep imports to helper.
gomvpkg -from "github.com/mitchellh/multistep" -to "github.com/hashicorp/packer/helper/multistep"
2018-01-24 17:09:15 -08:00
Matthew Hooker ebe995c0ff
run goimports 2018-01-22 17:21:10 -08:00
Ben Phegan c338cb79d0 Initial commit of feature to allow MAC address specification for HyperV builders 2017-12-15 13:24:15 +11:00
Vijaya Bhaskar Reddy Kondreddi 54f059d3d4 Add support for skip export 2017-12-11 11:24:59 +05:30
Vijaya Bhaskar Reddy Kondreddi b7e3f37b44 Add support for differential disk 2017-11-24 12:44:53 +05:30
Megan Marsh 20390ff1ec fix vetting for test fail print statements 2017-11-15 17:01:53 -08:00
Erlend Graff 27fc72c137 fix formatting errors 2017-11-05 15:16:47 +01:00
Erlend Graff ae6987c74b hyper-v: add test for hashicorp/packer#5184 2017-11-05 14:58:08 +01:00
Ben Phegan 12fc928e1d Initial commit of Hyper-V disk_additional_size capability. Support a
maximum of 64 disks added to the SCSI controller.  Implement #4823.
2017-10-23 08:26:35 +11:00
Matthew Hooker 2655cf7493 fix tests 2017-10-11 22:05:53 +05:30
Matthew Hooker d8c6e6d4a4 remove duplicate line 2017-10-11 22:05:52 +05:30
Taliesin Sisson 5f2c71f7d7 Floppy directories are provided by default with common.floppydrives 2017-10-11 22:05:52 +05:30
Taliesin Sisson 2fbe0b4a7f Don't try to mount vhd and vhdx files as dvd drive. Hard drives are mounted in the create vm step 2017-10-11 22:05:52 +05:30
Taliesin Sisson 8232759397 If vhd or vhdx extension is specified for ISOUrls, we want to use an existing hard drive which means that we don't need to specify hard drive size
Filepath.ext includes the dot
2017-10-11 22:05:51 +05:30
Taliesin Sisson 3d0ac529e0 use common floppy_config instead of builder specific one
Add tests for floppy files and comm
2017-10-11 22:05:51 +05:30
Taliesin Sisson efa62e1550 Can specify an iso, vhd or vhdx for download. If it is a vhd or vhdx it is used as the hard drive for spinning up a new machine, importing an exported virtual machine or cloning a virtual machine.
Can import a virtual machine from a folder
Can clone an existing virtual machine
2017-10-11 22:05:45 +05:30
Sander Saares 028c941b77 Enable use of separate temp path for Hyper-V VHD 2017-09-02 14:55:00 +03:00
Vijaya Bhaskar Reddy Kondreddi e45223a867 Fix -on-error issue not working.
When we supply -on-error flag for Packer with Hyper-v builder, it does not do anything.
2017-09-01 00:14:28 +05:30
Tobias ada8902721 fix formatting 2017-08-08 13:21:53 +00:00
Tobias eafaaa881f builder/hyperv/iso: missing InterpolateContext 2017-07-27 16:57:02 +02:00
Taliesin Sisson 2325c1ee58 Merge pull request #5085 from Lee303/builder-hyperv-temppath
Hyper-V Builder - Add support for temp_path directive to override system %temp%
2017-07-01 06:58:01 +01:00
Lee 0680cb08e5 Add support for temp_path directive to override systemp %temp% 2017-07-01 00:19:27 +01:00
Lee Spottiswood 4d394033d2 add tests 2017-06-20 12:21:07 +01:00
Lee Spottiswood f95093ef63 Add support for floppy_dirs with hyperv-iso builder 2017-06-15 13:12:39 +01:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Mikhail Zholobov 57d07f227a
Add "iso_target_extension" option for all local *-iso builders
This option allows to set the extension of the ISO file after download.
Defaults to "iso". It makes sense for building Mac OS X guests, where the
bootable image is actually a DMG, not an ISO.
In particular, it is important for "parallels-iso" builder to set the right extension.
2016-12-17 12:50:30 +02:00
Matthew Hooker 45d4cf8b36
move powershell module to common 2016-12-12 18:34:15 -08:00
Taliesin Sisson e50fe9fd54 Porting over paulmey changes to license and copyright headers. Good guy Microsoft have changed the licensing to MPL2 and removed the copyright headers so that we can include it in the official Packer release.
1ce6ba91f7?diff=unified#diff-5d60887f0940c9f8d6724e59843ac1fb
2016-12-12 22:45:24 +00:00
Taliesin Sisson e357c56186 Builders don't need to set this up anymore 2016-12-12 22:45:23 +00:00
Taliesin Sisson 74255c553b Be smarter about loading guest additions iso. Windows 10 and Windows Server 2016 no longer come with iso. So default to not loading guest additions when the iso is missing 2016-12-12 22:45:22 +00:00
Taliesin Sisson 44f73fa75f Changed ram_size_mb to ram_size 2016-12-12 22:45:18 +00:00
Taliesin Sisson fb192ce6d6 Remove unused import 2016-12-12 22:45:17 +00:00
Taliesin Sisson 3f0835aab2 Remove headless option as it is not used. 2016-12-12 22:45:16 +00:00
Taliesin Sisson 3c1df5a791 Remove inconsistent "_mb" from ram size 2016-12-12 22:45:14 +00:00
Taliesin Sisson 0515487062 Configuration settings are no longer used 2016-12-12 22:45:13 +00:00
Taliesin Sisson 20643e35a8 Do not specify a default username or password 2016-12-12 22:45:13 +00:00
Taliesin Sisson c2d1f6b617 Added the ability to independently configure switch vlan. This will people to leave the switch in trunk mode and set a vlan for the vm. 2016-12-12 22:45:06 +00:00
James Johnson 48b6cc0650 Enable VlanID 2016-12-12 22:45:05 +00:00
Taliesin Sisson 9fbd1e472a Add support for mac spoofing and dynamic memory.
To enable nested virtualization, mac spoofing, no dynamic memory and at least 4gb of ram should be set for the vm. Set warning if this has not been done.
Detected Virtualization Extensions are supported by the machine your are running on, as it only works for Windows 10 and Windows Server 2016 onwards.
2016-12-12 22:45:04 +00:00
Patrick Lang 6d391fc34a Adding support for nested Hyper-V 2016-12-12 22:45:02 +00:00
Patrick Lang f94c2cd2f7 Adding nested virtualization support 2016-12-12 22:45:01 +00:00
Patrick Lang 6342e1525d s/EnabeSecureBoot/EnableSecureBoot/g 2016-12-12 22:45:01 +00:00
Taliesin Sisson c1538c59c9 Builds in AppVeyor are failing as they do not have enough free memory. Drop the thresh hold a little more. 2016-12-12 22:44:57 +00:00
Taliesin Sisson 52c6cd5fc1 Test should run and pass even when run on an environment that does not have Powershel. 2016-12-12 22:44:53 +00:00
Taliesin Sisson 7c754bf791 Try to match style of other builders 2016-12-12 22:44:48 +00:00
Taliesin Sisson fb098fcbf0 http server has moved to common step 2016-12-12 22:44:47 +00:00
Taliesin Sisson 4b6ce3da60 Build agents might not have guest additions 2016-12-12 22:44:29 +00:00
Taliesin Sisson aaf9007249 Include cache in the state bag. 2016-12-12 22:44:28 +00:00
Taliesin Sisson 010d171bec GuestAdditionsMode and GuestAdditionsPath can be set in config. If GuestAdditionsMode == "attach" it will mount the HyperV Integration Services ISO. If GuestAdditionsPath is set, then it will be used as an alternative to where the HyperV Integration Service ISO is.
Included the build step to download ISO, so iso_urls works properly now.
Online activation should be done via provisioner
Installation of integration services should be done via provisioner
Cleaned up the way dvd drives are mounted and unmounted (still need to implement feature to find unused drives before adding a new one)
Cleaned up the way floppies are mounted and unmounted
2016-12-12 22:44:27 +00:00
Taliesin Sisson 730c6217ad Fix disk size test
Default minimum and maximum sizes were geared towards spinning up windows server instances. Linux instances are far more efficient and make do with lower requirements. Set the minimum sizes to match this.
2016-12-12 22:44:21 +00:00
Taliesin Sisson c24c882b84 Use simple naming convention for now 2016-12-12 22:44:16 +00:00
Taliesin Sisson 5f2c12324c No need to remove floppy controller for 2nd generation vms
Don't want to be prompted for confirmation from powershell commandlets
2016-12-12 22:44:14 +00:00
Taliesin Sisson 837f9addd0 Check the floppy files and not the dvd files attached 2016-12-12 22:44:13 +00:00
Taliesin Sisson 4e8074d7e5 Need to expose generation as a public property 2016-12-12 22:44:13 +00:00
Taliesin Sisson e18594f404 Hyperv generation 2 machines use scsi for dvd drives. Allow gen 1 machines to have at least 1 iso image attached 2016-12-12 22:44:12 +00:00
Taliesin Sisson ef507c7bd7 Pass in any iso images to add as dvd drives during boot 2016-12-12 22:44:11 +00:00
Taliesin Sisson 3051ea6633 Quote powershell so that it does not try to interpret command to be run
Get VName out of state. This allows template replacement to be run on vmname
2016-12-12 22:44:10 +00:00
Taliesin Sisson 02db768018 With generation 2 machine by default a dvd drive is not created. So create a dvd drive for os if it does not exist.
Allow secure boot mode to be configured from config.
2016-12-12 22:44:07 +00:00
Taliesin Sisson aa1f1da1ff Support for boot_command
Setup local http server
Add compaction of hard drive
GetHostAdapterIpAddress function added for hyperv
renamed step step_start_vm to step_run to fall in ine with naming conventions of other builders
2016-12-12 22:44:07 +00:00
Taliesin Sisson 03b0698edd Remove devices after it has been shut down
Attempt to stop vm, before deleting it
2016-12-12 22:44:06 +00:00
Taliesin Sisson 2d7cfcd65d Throw error if we can't get mac or ip address during steps 2016-12-12 22:44:05 +00:00
Taliesin Sisson 87b3dec3d2 Wait until WinRM is available, before continuing with install. This is how other system like VeeWee do it.
Add support for number of cpus to use for vm
Add support for vm generation
2016-12-12 22:44:04 +00:00
Taliesin Sisson 79a5f90379 Use the convention for default vmname
Use the convention for default hdd size
Tests added for builder
2016-12-12 22:44:04 +00:00
Taliesin Sisson ca16f33fa3 Use the same configuration style as existing builders
Move builder into correctly named folder
2016-12-12 22:44:02 +00:00
Taliesin Sisson 1fe4c501e4 Port of https://github.com/pbolduc/packer-hyperv/
Remove steps that are windows specific
2016-12-12 22:44:01 +00:00