152 Commits

Author SHA1 Message Date
sylviamoss
fc2e94554a add qemu hcl examples 2020-07-31 17:32:08 +02:00
Lyle Franklin
a4d1afb83a
Add 'cdrom_interface' option to QEMU builder (#9483)
- This option allows the user to select the interface type for the CDROM
  drive, e.g. `virtio-scsi`, rather than the default `virtio`
- Background: Installation of Ubuntu 20.04 on ARM64 fails as it can't mount the
  installation CDROM. While the default `virtio` CDROM fails, setting
  `cdrom_interface: virtio-scsi` with this PR succeeds. Some links:
  - ISO link: http://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04-legacy-server-arm64.iso
  - https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1605407
  - https://superuser.com/a/1376628/230508
2020-07-07 16:22:30 +02:00
Joshua Foster
d35f342319 add the ability to configure the http bind address. defaults to 0.0.0.0. 2020-06-03 16:40:18 -07:00
Sylvia Moss
ce45a1990a
Refactor communicator config for Qemu and add SkipNatMapping option (#9307) 2020-06-02 11:56:36 +02:00
Megan Marsh
8a9833f5b1
Merge pull request #9287 from rgl/feature-qemu-add-timeout-wait-for-ip-address
builder/qemu: timeout waiting for the guest to become available in the network bridge
2020-05-29 09:47:06 -07:00
Adrien Delorme
0fa60c68fb
Drop the iso_checksum_type & iso_checksum_url fields (#8437)
* Drop the iso_checksum_type & iso_checksum_url fields

In favor of simply using iso_checksum that will know what to do.

* fix after master merge

* Update builder_test.go

* Update builder_test.go

* Update builder_test.go

* Update builder_test.go

* Update builder_test.go

* remove checksum lowercasing tests

* Update builder_test.go

* Update builder_test.go

* better docs

* Update builder_test.go

* even better docs

* Update config.go

* Update builder_test.go

* Update step_create_vmx_test.go

* make generate

* better docs

* fix imports

* up tests

* Update _ISOConfig-required.html.md

* Update builder_test.go

* don't use sha1.Sum("none") as a caching path

* Update builder_test.go

* better docs

* Update iso_config_test.go

remove ISOChecksumType/ISOChecksumURL references

* Update step_download_test.go

* add iso_checksum_url and iso_checksum_type fixers + tests

* add concrete examples of checksum values

* add examples of checksumming from local file

* update go-getter dep

* up deps

* use new go-getter version

* up ESX5Driver.VerifyChecksum: use go-getter's checksumming

* ISOConfig.Prepare: get checksum there in case we need it as a string in ESX5Driver.VerifyChecksum

* Update iso_config.go

* get go-getter from v2 branch

* Update driver_esx5.go

add more comments

* Update driver_esx5.go

* show better error message when the checksum is invalid

* Update builder_test.go

put in a valid checksum to fix tests, checksum is md5("packer")

* Update builder_test.go

test invalid and valid checksum

* more test updating

* fix default md5 string to be a valid md5

* TestChecksumFileNameMixedCaseBug: use 'file:' prefix for file checksumming

* Update iso_config_test.go

* Update iso_config_test.go

* Update builder_test.go

* Update builder_test.go

* Update builder_test.go

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update go.mod

* Update go.mod

* Update CHANGELOG.md
2020-05-28 11:02:09 +02:00
Rui Lopes
4839b9189d builder/qemu: timeout waiting for the guest to become available in the network bridge 2020-05-26 07:46:06 +01:00
Rui Lopes
06fad6cc4f qemu: add support for using a network bridge 2020-05-20 16:46:32 -07:00
Megan Marsh
7e0cfd8b77 add undocumented tag to struct-markdown generator so that we can leave internal-use-only fields out of docs 2020-05-01 10:31:38 -07:00
Sylvia Moss
b0c7fe491c
Remove net_device prepare validation (#8979) 2020-04-02 11:34:05 +02:00
Wilken Rivera
7b705545d9
docs: Various doc clean-ups to fix code block formatting and syntax highlighting (#8868) 2020-03-12 15:05:08 +01:00
Megan Marsh
dde74232f2
Clearly document all template-engine-enabled options (#8770) 2020-02-20 11:05:27 +01:00
Megan Marsh
d252a24b82 allow user to set winrm_host override like we do ssh_host override 2020-01-30 15:22:22 -08:00
Sylvia Moss
dc31bad539
Sharing info with post-processors via artifact (#8632) 2020-01-30 11:27:58 +01:00
Megan Marsh
e57004b2ec
Merge pull request #8662 from hashicorp/return_with_ssh_wait_timeout
WIP Add ssh_wait_timeout back for backward compatibility
2020-01-28 12:08:42 -08:00
Moss
6ad7f593bf Undo ssh_wait_timeout backward incompatibility 2020-01-28 17:26:01 +01:00
Moss
0566f1f999 Extract http ip discover to a new step 2020-01-27 17:06:56 +01:00
Sylvia Moss
d6a351b173
Rename communicator config variables and remove deprecated code (#8584) 2020-01-09 08:37:30 -08:00
Megan Marsh
be97507088 delete qmp socket path. Also, clean up unnecessary use of statebag to recieve step values. (#8572) 2020-01-07 11:18:01 +01:00
Adrien Delorme
4b7132c87c Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
Adrien Delorme
0785c2f6fc
build using HCL2 (#8423)
This follows #8232 which added the code to generate the code required to parse
HCL files for each packer component.

All old config files of packer will keep on working the same. Packer takes one
argument. When a directory is passed, all files in the folder with a name
ending with  “.pkr.hcl” or “.pkr.json” will be parsed using the HCL2 format.
When a file ending with “.pkr.hcl” or “.pkr.json” is passed it will be parsed
using the HCL2 format. For every other case; the old packer style will be used.

## 1. the hcl2template pkg can create a packer.Build from a set of HCL (v2) files

I had to make the packer.coreBuild (which is our one and only packer.Build ) a public struct with public fields

## 2. Components interfaces get a new ConfigSpec Method to read a file from an HCL file.

  This is a breaking change for packer plugins.

a packer component can be a: builder/provisioner/post-processor

each component interface now gets a `ConfigSpec() hcldec.ObjectSpec`
which allows packer to tell what is the layout of the hcl2 config meant
to configure that specific component.

This ObjectSpec is sent through the wire (RPC) and a cty.Value is now
sent through the already existing configuration entrypoints:

 Provisioner.Prepare(raws ...interface{}) error
 Builder.Prepare(raws ...interface{}) ([]string, error)
 PostProcessor.Configure(raws ...interface{}) error

close #1768


Example hcl files:

```hcl
// file amazon-ebs-kms-key/run.pkr.hcl
build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

// amazon-ebs-kms-key/source.pkr.hcl

source "amazon-ebs" "first" {

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }
    
    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}
```
2019-12-17 11:25:56 +01:00
Megan Marsh
0f6d1beccf add an extra string array to the Prepare() return values in the builder interfaces; this sets up the ability for builders to give the provisioners custom user-accessible build-time variables. 2019-12-16 21:23:05 -08:00
Megan Marsh
f5806afda8 update docs 2019-12-02 16:04:29 -08:00
Megan Marsh
effd330945 make sure we continue to default to Megabytes for qemu disk size to prevent backwards incompatabilities. 2019-12-02 15:13:17 -08:00
Megan Marsh
98c94ab8cb
Merge pull request #7676 from ltrager/master
Add display template option for qemu.
2019-11-07 15:41:17 -08:00
Megan Marsh
d010762dbf Revert "Revert "Qemu builder disk size as a string""
This reverts commit 9c782f4d04e3078691796c075f34489025bf9579.
2019-11-04 14:28:48 -08:00
Adrien Delorme
078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Megan Marsh
9c782f4d04 Revert "Qemu builder disk size as a string"
This reverts commit 1ecfa032ba0e0e320f279a79394b6118c775dfb7.
2019-10-14 13:09:22 -07:00
Lee Trager
c7f38b232f Add display template option for QEMU. Fixes #7675 2019-10-08 12:04:49 -07:00
Megan Marsh
19a9d7149f fix structs and regenerate partials 2019-10-01 13:36:55 -07:00
Kevin Faulkner
1ecfa032ba Qemu builder disk size as a string 2019-10-01 13:27:02 -07:00
Adrien Delorme
3fe9d52e3f Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 11:15:44 +02:00
allinwait
171c2a9a07 add the floppy label option 2019-09-12 12:25:22 +00:00
Adrien Delorme
94bb33db57 fix triple backtick indentation 2019-08-27 13:37:28 +02:00
Adrien Delorme
4cb7c30987 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-21 16:44:23 +02:00
Jayson Cofell
7f5fd4851e QEMU: Remove QMPEnable and depend upon VNC password usage for QMP enablement. 2019-07-16 08:56:22 -06:00
Jayson Cofell
5c5943b8ba Add VNC Password support to QEMU builder 2019-07-03 18:38:56 -06:00
Jayson Cofell
afe9ba2869 QEMU: Initial QMP support 2019-07-03 18:33:59 -06:00
Megan Marsh
eb8c74bf85 allow ssh_host config option to override host logic for all builders 2019-07-02 13:56:28 -07:00
Jayson Cofell
e690cb90ce Go fmt AdditionalDiskSizes code 2019-06-24 18:36:01 -06:00
Jayson Cofell
c9b693080a Add additional disk support for QEMU builder. 2019-06-24 17:35:06 -06:00
Adrien Delorme
926c8bbaa6 refactor ShutdownConfig into a single struct 2019-06-14 12:17:28 +02:00
Adrien Delorme
76f50619b1 builder/qemu/builder.go: Document from Config file 2019-06-14 11:52:38 +02:00
Adrien Delorme
4399684372 make fmt autogenerated docs 2019-06-06 16:29:25 +02:00
Adrien Delorme
e6cbb013ba add // go:generate struct-markdown to all previously edited files 2019-06-05 16:42:18 +02:00
Adrien Delorme
f1917edd34 generate the comments for config struct of builders scraping doc website 2019-06-05 16:42:17 +02:00
Adrien Delorme
a4bf94dd3c change Builder to be passed a context for cancellation
we have to to give it to our hook
2019-04-03 15:55:55 +02:00
Adrien Delorme
a3838ecfad error on negative ports 2019-03-19 15:21:09 +01:00
Adrien Delorme
5a6dffde9a use port as ints 2019-03-19 15:01:12 +01:00
Adrien Delorme
c214f6735b make everything a uint 2019-03-19 12:54:15 +01:00