From 4ae10f08b2dca2291669f27cfa1d69fcb4013c70 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 6 Jun 2019 16:29:47 +0200 Subject: [PATCH] docs: generate builders partials from struct comments --- cmd/struct-markdown/main.go | 138 ++++++++++ cmd/struct-markdown/template.go | 33 +++ ..._AlicloudAccessConfig-not-required.html.md | 9 + .../_AlicloudAccessConfig-required.html.md | 13 + .../_AlicloudDiskDevice-not-required.html.md | 39 +++ .../_AlicloudDiskDevices-not-required.html.md | 8 + .../_AlicloudImageConfig-not-required.html.md | 53 ++++ .../ecs/_AlicloudImageConfig-required.html.md | 7 + .../ecs/_RunConfig-not-required.html.md | 78 ++++++ .../alicloud/ecs/_RunConfig-required.html.md | 13 + .../chroot/_Config-not-required.html.md | 130 +++++++++ .../amazon/chroot/_Config-required.html.md | 7 + .../_AMIBlockDevices-not-required.html.md | 52 ++++ .../common/_AMIConfig-not-required.html.md | 97 +++++++ .../amazon/common/_AMIConfig-required.html.md | 7 + .../common/_AccessConfig-not-required.html.md | 65 +++++ .../common/_AccessConfig-required.html.md | 15 ++ .../_AmiFilterOptions-not-required.html.md | 3 + .../common/_BlockDevice-not-required.html.md | 50 ++++ .../_LaunchBlockDevices-not-required.html.md | 19 ++ .../common/_RunConfig-not-required.html.md | 246 ++++++++++++++++++ .../amazon/common/_RunConfig-required.html.md | 10 + .../_SubnetFilterOptions-not-required.html.md | 4 + ...VaultAWSEngineOptions-not-required.html.md | 15 ++ .../amazon/ebs/_Config-not-required.html.md | 8 + .../ebssurrogate/_Config-not-required.html.md | 11 + .../ebssurrogate/_Config-required.html.md | 10 + .../_RootBlockDevice-not-required.html.md | 26 ++ .../_BlockDevice-not-required.html.md | 6 + .../ebsvolume/_Config-not-required.html.md | 19 ++ .../instance/_Config-not-required.html.md | 24 ++ .../amazon/instance/_Config-required.html.md | 18 ++ .../arm/_ClientConfig-not-required.html.md | 20 ++ .../azure/arm/_Config-not-required.html.md | 185 +++++++++++++ .../azure/arm/_Config-required.html.md | 22 ++ .../arm/_PlanInformation-not-required.html.md | 6 + .../_SharedImageGallery-not-required.html.md | 12 + .../cloudstack/_Config-not-required.html.md | 97 +++++++ .../cloudstack/_Config-required.html.md | 33 +++ .../digitalocean/_Config-not-required.html.md | 38 +++ .../digitalocean/_Config-required.html.md | 21 ++ .../_AwsAccessConfig-not-required.html.md | 19 ++ .../docker/_Config-not-required.html.md | 62 +++++ .../builder/docker/_Config-required.html.md | 15 ++ .../_Config-not-required.html.md | 119 +++++++++ .../googlecompute/_Config-required.html.md | 17 ++ .../hyperone/_Config-not-required.html.md | 61 +++++ .../builder/hyperone/_Config-required.html.md | 16 ++ .../common/_OutputConfig-not-required.html.md | 10 + .../_ShutdownConfig-not-required.html.md | 16 ++ .../hyperv/iso/_Config-not-required.html.md | 128 +++++++++ .../hyperv/vmcx/_Config-not-required.html.md | 117 +++++++++ .../builder/lxc/_Config-not-required.html.md | 41 +++ .../builder/lxc/_Config-required.html.md | 9 + .../builder/lxd/_Config-not-required.html.md | 22 ++ .../builder/lxd/_Config-required.html.md | 6 + .../ncloud/_Config-not-required.html.md | 32 +++ .../builder/ncloud/_Config-required.html.md | 7 + .../_AccessConfig-not-required.html.md | 57 ++++ .../openstack/_AccessConfig-required.html.md | 17 ++ .../_ImageConfig-not-required.html.md | 18 ++ .../openstack/_ImageConfig-required.html.md | 4 + .../_ImageFilter-not-required.html.md | 11 + .../_ImageFilterOptions-not-required.html.md | 7 + .../openstack/_RunConfig-not-required.html.md | 85 ++++++ .../openstack/_RunConfig-required.html.md | 19 ++ .../common/_HWConfig-not-required.html.md | 14 + .../common/_OutputConfig-not-required.html.md | 9 + .../common/_PrlctlConfig-not-required.html.md | 13 + .../_PrlctlPostConfig-not-required.html.md | 6 + .../_PrlctlVersionConfig-not-required.html.md | 8 + .../_ShutdownConfig-not-required.html.md | 11 + .../common/_ToolsConfig-not-required.html.md | 17 ++ .../common/_ToolsConfig-required.html.md | 7 + .../iso/_Config-not-required.html.md | 40 +++ .../pvm/_Config-not-required.html.md | 16 ++ .../parallels/pvm/_Config-required.html.md | 5 + .../builder/qemu/_Config-not-required.html.md | 140 ++++++++++ .../scaleway/_Config-not-required.html.md | 17 ++ .../builder/scaleway/_Config-required.html.md | 29 +++ ...centCloudAccessConfig-not-required.html.md | 4 + ..._TencentCloudAccessConfig-required.html.md | 16 ++ ...ncentCloudImageConfig-not-required.html.md | 21 ++ .../_TencentCloudImageConfig-required.html.md | 6 + ...TencentCloudRunConfig-not-required.html.md | 44 ++++ .../_TencentCloudRunConfig-required.html.md | 9 + .../triton/_AccessConfig-not-required.html.md | 20 ++ .../triton/_AccessConfig-required.html.md | 10 + .../_MachineImageFilter-not-required.html.md | 3 + .../_SourceMachineConfig-not-required.html.md | 39 +++ .../_SourceMachineConfig-required.html.md | 19 ++ .../_TargetImageConfig-not-required.html.md | 17 ++ .../_TargetImageConfig-required.html.md | 12 + .../vagrant/_Config-not-required.html.md | 69 +++++ .../builder/vagrant/_Config-required.html.md | 17 ++ .../common/_ExportConfig-not-required.html.md | 5 + .../common/_ExportOpts-not-required.html.md | 8 + ..._GuestAdditionsConfig-not-required.html.md | 11 + .../common/_HWConfig-not-required.html.md | 15 ++ .../common/_OutputConfig-not-required.html.md | 9 + .../common/_RunConfig-not-required.html.md | 17 ++ .../common/_SSHConfig-not-required.html.md | 16 ++ .../_ShutdownConfig-not-required.html.md | 20 ++ .../_VBoxBundleConfig-not-required.html.md | 7 + .../_VBoxManageConfig-not-required.html.md | 13 + ..._VBoxManagePostConfig-not-required.html.md | 6 + .../_VBoxVersionConfig-not-required.html.md | 10 + .../iso/_Config-not-required.html.md | 77 ++++++ .../ovf/_Config-not-required.html.md | 63 +++++ .../virtualbox/ovf/_Config-required.html.md | 12 + .../common/_DriverConfig-not-required.html.md | 38 +++ .../common/_ExportConfig-not-required.html.md | 41 +++ .../common/_HWConfig-not-required.html.md | 38 +++ .../common/_OutputConfig-not-required.html.md | 9 + .../common/_RunConfig-not-required.html.md | 25 ++ .../_ShutdownConfig-not-required.html.md | 11 + .../common/_ToolsConfig-not-required.html.md | 14 + .../common/_VMXConfig-not-required.html.md | 23 ++ .../vmware/iso/_Config-not-required.html.md | 65 +++++ .../vmware/vmx/_Config-not-required.html.md | 15 ++ .../vmware/vmx/_Config-required.html.md | 5 + .../yandex/_Config-not-required.html.md | 67 +++++ .../builder/yandex/_Config-required.html.md | 12 + ...lding_on_remote_vsphere_hypervisor.html.md | 28 +- .../communicator/_Config-not-required.html.md | 36 +++ .../communicator/_SSH-not-required.html.md | 98 +++++++ .../communicator/_WinRM-not-required.html.md | 29 +++ 127 files changed, 4050 insertions(+), 13 deletions(-) create mode 100644 cmd/struct-markdown/main.go create mode 100644 cmd/struct-markdown/template.go create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevice-not-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevices-not-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-not-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_RunConfig-not-required.html.md create mode 100644 website/source/partials/builder/alicloud/ecs/_RunConfig-required.html.md create mode 100644 website/source/partials/builder/amazon/chroot/_Config-not-required.html.md create mode 100644 website/source/partials/builder/amazon/chroot/_Config-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AMIBlockDevices-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AMIConfig-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AMIConfig-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AccessConfig-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_AmiFilterOptions-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_BlockDevice-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_LaunchBlockDevices-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_RunConfig-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_RunConfig-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_SubnetFilterOptions-not-required.html.md create mode 100644 website/source/partials/builder/amazon/common/_VaultAWSEngineOptions-not-required.html.md create mode 100644 website/source/partials/builder/amazon/ebs/_Config-not-required.html.md create mode 100644 website/source/partials/builder/amazon/ebssurrogate/_Config-not-required.html.md create mode 100644 website/source/partials/builder/amazon/ebssurrogate/_Config-required.html.md create mode 100644 website/source/partials/builder/amazon/ebssurrogate/_RootBlockDevice-not-required.html.md create mode 100644 website/source/partials/builder/amazon/ebsvolume/_BlockDevice-not-required.html.md create mode 100644 website/source/partials/builder/amazon/ebsvolume/_Config-not-required.html.md create mode 100644 website/source/partials/builder/amazon/instance/_Config-not-required.html.md create mode 100644 website/source/partials/builder/amazon/instance/_Config-required.html.md create mode 100644 website/source/partials/builder/azure/arm/_ClientConfig-not-required.html.md create mode 100644 website/source/partials/builder/azure/arm/_Config-not-required.html.md create mode 100644 website/source/partials/builder/azure/arm/_Config-required.html.md create mode 100644 website/source/partials/builder/azure/arm/_PlanInformation-not-required.html.md create mode 100644 website/source/partials/builder/azure/arm/_SharedImageGallery-not-required.html.md create mode 100644 website/source/partials/builder/cloudstack/_Config-not-required.html.md create mode 100644 website/source/partials/builder/cloudstack/_Config-required.html.md create mode 100644 website/source/partials/builder/digitalocean/_Config-not-required.html.md create mode 100644 website/source/partials/builder/digitalocean/_Config-required.html.md create mode 100644 website/source/partials/builder/docker/_AwsAccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/docker/_Config-not-required.html.md create mode 100644 website/source/partials/builder/docker/_Config-required.html.md create mode 100644 website/source/partials/builder/googlecompute/_Config-not-required.html.md create mode 100644 website/source/partials/builder/googlecompute/_Config-required.html.md create mode 100644 website/source/partials/builder/hyperone/_Config-not-required.html.md create mode 100644 website/source/partials/builder/hyperone/_Config-required.html.md create mode 100644 website/source/partials/builder/hyperv/common/_OutputConfig-not-required.html.md create mode 100644 website/source/partials/builder/hyperv/common/_ShutdownConfig-not-required.html.md create mode 100644 website/source/partials/builder/hyperv/iso/_Config-not-required.html.md create mode 100644 website/source/partials/builder/hyperv/vmcx/_Config-not-required.html.md create mode 100644 website/source/partials/builder/lxc/_Config-not-required.html.md create mode 100644 website/source/partials/builder/lxc/_Config-required.html.md create mode 100644 website/source/partials/builder/lxd/_Config-not-required.html.md create mode 100644 website/source/partials/builder/lxd/_Config-required.html.md create mode 100644 website/source/partials/builder/ncloud/_Config-not-required.html.md create mode 100644 website/source/partials/builder/ncloud/_Config-required.html.md create mode 100644 website/source/partials/builder/openstack/_AccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/openstack/_AccessConfig-required.html.md create mode 100644 website/source/partials/builder/openstack/_ImageConfig-not-required.html.md create mode 100644 website/source/partials/builder/openstack/_ImageConfig-required.html.md create mode 100644 website/source/partials/builder/openstack/_ImageFilter-not-required.html.md create mode 100644 website/source/partials/builder/openstack/_ImageFilterOptions-not-required.html.md create mode 100644 website/source/partials/builder/openstack/_RunConfig-not-required.html.md create mode 100644 website/source/partials/builder/openstack/_RunConfig-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_HWConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_OutputConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_PrlctlConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_PrlctlPostConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_PrlctlVersionConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_ShutdownConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_ToolsConfig-not-required.html.md create mode 100644 website/source/partials/builder/parallels/common/_ToolsConfig-required.html.md create mode 100644 website/source/partials/builder/parallels/iso/_Config-not-required.html.md create mode 100644 website/source/partials/builder/parallels/pvm/_Config-not-required.html.md create mode 100644 website/source/partials/builder/parallels/pvm/_Config-required.html.md create mode 100644 website/source/partials/builder/qemu/_Config-not-required.html.md create mode 100644 website/source/partials/builder/scaleway/_Config-not-required.html.md create mode 100644 website/source/partials/builder/scaleway/_Config-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-not-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-not-required.html.md create mode 100644 website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-required.html.md create mode 100644 website/source/partials/builder/triton/_AccessConfig-not-required.html.md create mode 100644 website/source/partials/builder/triton/_AccessConfig-required.html.md create mode 100644 website/source/partials/builder/triton/_MachineImageFilter-not-required.html.md create mode 100644 website/source/partials/builder/triton/_SourceMachineConfig-not-required.html.md create mode 100644 website/source/partials/builder/triton/_SourceMachineConfig-required.html.md create mode 100644 website/source/partials/builder/triton/_TargetImageConfig-not-required.html.md create mode 100644 website/source/partials/builder/triton/_TargetImageConfig-required.html.md create mode 100644 website/source/partials/builder/vagrant/_Config-not-required.html.md create mode 100644 website/source/partials/builder/vagrant/_Config-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_ExportConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_ExportOpts-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_GuestAdditionsConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_HWConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_OutputConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_RunConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_SSHConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_ShutdownConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_VBoxBundleConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_VBoxManageConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_VBoxManagePostConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/common/_VBoxVersionConfig-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/iso/_Config-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/ovf/_Config-not-required.html.md create mode 100644 website/source/partials/builder/virtualbox/ovf/_Config-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_DriverConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_OutputConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_RunConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_ShutdownConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/common/_VMXConfig-not-required.html.md create mode 100644 website/source/partials/builder/vmware/iso/_Config-not-required.html.md create mode 100644 website/source/partials/builder/vmware/vmx/_Config-not-required.html.md create mode 100644 website/source/partials/builder/vmware/vmx/_Config-required.html.md create mode 100644 website/source/partials/builder/yandex/_Config-not-required.html.md create mode 100644 website/source/partials/builder/yandex/_Config-required.html.md create mode 100644 website/source/partials/helper/communicator/_Config-not-required.html.md create mode 100644 website/source/partials/helper/communicator/_SSH-not-required.html.md create mode 100644 website/source/partials/helper/communicator/_WinRM-not-required.html.md diff --git a/cmd/struct-markdown/main.go b/cmd/struct-markdown/main.go new file mode 100644 index 000000000..e5a31ff5d --- /dev/null +++ b/cmd/struct-markdown/main.go @@ -0,0 +1,138 @@ +package main + +import ( + "flag" + "fmt" + "go/ast" + "go/parser" + "go/token" + "io/ioutil" + "os" + "path/filepath" + "strings" + + "github.com/fatih/camelcase" + "github.com/fatih/structtag" +) + +func main() { + args := flag.Args() + if len(args) == 0 { + // Default: process the file + args = []string{os.Getenv("GOFILE")} + } + fname := args[0] + + absFilePath, err := filepath.Abs(fname) + if err != nil { + panic(err) + } + paths := strings.SplitAfter(absFilePath, "packer"+string(os.PathSeparator)) + packerDir := paths[0] + builderName, _ := filepath.Split(paths[1]) + builderName = strings.Trim(builderName, string(os.PathSeparator)) + + b, err := ioutil.ReadFile(fname) + if err != nil { + fmt.Printf("ReadFile: %+v", err) + os.Exit(1) + } + + fset := token.NewFileSet() + f, err := parser.ParseFile(fset, fname, b, parser.ParseComments) + if err != nil { + fmt.Printf("ParseFile: %+v", err) + os.Exit(1) + } + + for _, decl := range f.Decls { + typeDecl, ok := decl.(*ast.GenDecl) + if !ok { + continue + } + typeSpec, ok := typeDecl.Specs[0].(*ast.TypeSpec) + if !ok { + continue + } + structDecl, ok := typeSpec.Type.(*ast.StructType) + if !ok { + continue + } + + fields := structDecl.Fields.List + required := Struct{ + SourcePath: paths[1], + Name: typeSpec.Name.Name, + Filename: "_" + typeSpec.Name.Name + "-required.html.md", + } + notRequired := Struct{ + SourcePath: paths[1], + Name: typeSpec.Name.Name, + Filename: "_" + typeSpec.Name.Name + "-not-required.html.md", + } + + for _, field := range fields { + if len(field.Names) == 0 || field.Tag == nil { + continue + } + tag := field.Tag.Value[1:] + tag = tag[:len(tag)-1] + tags, err := structtag.Parse(tag) + if err != nil { + fmt.Printf("structtag.Parse(%s): err: %v", field.Tag.Value, err) + os.Exit(1) + } + + mstr, err := tags.Get("mapstructure") + if err != nil { + continue + } + name := mstr.Name + + if name == "" { + continue + } + + var docs string + if field.Doc != nil { + docs = field.Doc.Text() + } else { + docs = strings.Join(camelcase.Split(field.Names[0].Name), " ") + } + + field := Field{ + Name: name, + Type: fmt.Sprintf("%s", b[field.Type.Pos()-1:field.Type.End()-1]), + Docs: docs, + } + if req, err := tags.Get("required"); err == nil && req.Value() == "true" { + required.Fields = append(required.Fields, field) + } else { + notRequired.Fields = append(notRequired.Fields, field) + } + } + + dir := filepath.Join(packerDir, "website", "source", "partials", builderName) + os.MkdirAll(dir, 0755) + + for _, str := range []Struct{required, notRequired} { + if len(str.Fields) == 0 { + continue + } + outputPath := filepath.Join(dir, str.Filename) + + outputFile, err := os.Create(outputPath) + if err != nil { + panic(err) + } + defer outputFile.Close() + + err = structDocsTemplate.Execute(outputFile, str) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + } + } + +} diff --git a/cmd/struct-markdown/template.go b/cmd/struct-markdown/template.go new file mode 100644 index 000000000..e4a3e1a87 --- /dev/null +++ b/cmd/struct-markdown/template.go @@ -0,0 +1,33 @@ +package main + +import ( + "strings" + "text/template" +) + +type Field struct { + Name string + Type string + Docs string +} + +type Struct struct { + SourcePath string + Name string + Filename string + Fields []Field +} + +var structDocsTemplate = template.Must(template.New("structDocsTemplate"). + Funcs(template.FuncMap{ + "indent": indent, + }). + Parse(` +{{range .Fields}} +- ` + "`" + `{{ .Name}}` + "`" + ` ({{ .Type }}) - {{ .Docs | indent 4 }} +{{- end -}}`)) + +func indent(spaces int, v string) string { + pad := strings.Repeat(" ", spaces) + return strings.Replace(v, "\n", "\n"+pad, -1) +} diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md new file mode 100644 index 000000000..7de4365d3 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md @@ -0,0 +1,9 @@ + + +- `skip_region_validation` (bool) - The region validation can be skipped + if this value is true, the default value is false. + +- `security_token` (string) - STS access token, can be set through template + or by exporting as environment variable such as + export SecurityToken=value. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-required.html.md new file mode 100644 index 000000000..9e9efea26 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-required.html.md @@ -0,0 +1,13 @@ + + +- `access_key` (string) - This is the Alicloud access key. It must be + provided, but it can also be sourced from the ALICLOUD_ACCESS_KEY + environment variable. + +- `secret_key` (string) - This is the Alicloud secret key. It must be + provided, but it can also be sourced from the ALICLOUD_SECRET_KEY + environment variable. + +- `region` (string) - This is the Alicloud region. It must be provided, but + it can also be sourced from the ALICLOUD_REGION environment variables. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevice-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevice-not-required.html.md new file mode 100644 index 000000000..eebbf129d --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevice-not-required.html.md @@ -0,0 +1,39 @@ + + +- `disk_name` (string) - The value of disk name is blank by default. [2, + 128] English or Chinese characters, must begin with an + uppercase/lowercase letter or Chinese character. Can contain numbers, + ., _ and -. The disk name will appear on the console. It cannot + begin with http:// or https://. + +- `disk_category` (string) - Category of the system disk. Optional values + are: + - cloud - general cloud disk + - cloud_efficiency - efficiency cloud disk + - cloud_ssd - cloud SSD + +- `disk_size` (int) - Size of the system disk, measured in GiB. Value + range: [20, 500]. The specified value must be equal to or greater + than max{20, ImageSize}. Default value: max{40, ImageSize}. + +- `disk_snapshot_id` (string) - Snapshots are used to create the data + disk After this parameter is specified, Size is ignored. The actual + size of the created disk is the size of the specified snapshot. + +- `disk_description` (string) - The value of disk description is blank by + default. [2, 256] characters. The disk description will appear on the + console. It cannot begin with http:// or https://. + +- `disk_delete_with_instance` (bool) - Whether or not the disk is + released along with the instance: + +- `disk_device` (string) - Device information of the related instance: + such as /dev/xvdb It is null unless the Status is In_use. + +- `disk_encrypted` (*bool) - Whether or not to encrypt the data disk. + If this option is set to true, the data disk will be encryped and corresponding snapshot in the target image will also be encrypted. By + default, if this is an extra data disk, Packer will not encrypt the + data disk. Otherwise, Packer will keep the encryption setting to what + it was in the source image. Please refer to Introduction of ECS disk encryption + for more details. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevices-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevices-not-required.html.md new file mode 100644 index 000000000..812ef7027 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudDiskDevices-not-required.html.md @@ -0,0 +1,8 @@ + + +- `system_disk_mapping` (AlicloudDiskDevice) - Image disk mapping for system + disk. + +- `image_disk_mappings` ([]AlicloudDiskDevice) - Add one or more data + disks to the image. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-not-required.html.md new file mode 100644 index 000000000..b7cc24f02 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-not-required.html.md @@ -0,0 +1,53 @@ + + +- `image_version` (string) - The version number of the image, with a length + limit of 1 to 40 English characters. + +- `image_description` (string) - The description of the image, with a length + limit of 0 to 256 characters. Leaving it blank means null, which is the + default value. It cannot begin with http:// or https://. + +- `image_share_account` ([]string) - The IDs of to-be-added Aliyun + accounts to which the image is shared. The number of accounts is 1 to 10. + If number of accounts is greater than 10, this parameter is ignored. + +- `image_unshare_account` ([]string) - Alicloud Image UN Share Accounts +- `image_copy_regions` ([]string) - Copy to the destination regionIds. + +- `image_copy_names` ([]string) - The name of the destination image, + [2, 128] English or Chinese characters. It must begin with an + uppercase/lowercase letter or a Chinese character, and may contain numbers, + _ or -. It cannot begin with http:// or https://. + +- `image_encrypted` (*bool) - Whether or not to encrypt the target images, including those copied if image_copy_regions is specified. If this option + is set to true, a temporary image will be created from the provisioned + instance in the main region and an encrypted copy will be generated in the + same region. By default, Packer will keep the encryption setting to what + it was in the source image. + +- `image_force_delete` (bool) - If this value is true, when the target + image names including those copied are duplicated with existing images, it + will delete the existing images and then create the target images, + otherwise, the creation will fail. The default value is false. Check + image_name and image_copy_names options for names of target images. If + -force option is + provided in build command, this option can be omitted and taken as true. + +- `image_force_delete_snapshots` (bool) - If this value is true, when + delete the duplicated existing images, the source snapshots of those images + will be delete either. If + -force option is + provided in build command, this option can be omitted and taken as true. + +- `image_force_delete_instances` (bool) - Alicloud Image Force Delete Instances +- `image_ignore_data_disks` (bool) - If this value is true, the image + created will not include any snapshot of data disks. This option would be + useful for any circumstance that default data disks with instance types are + not concerned. The default value is false. + +- `skip_region_validation` (bool) - The region validation can be skipped + if this value is true, the default value is false. + +- `tags` (map[string]string) - Tags applied to the destination + image and relevant snapshots. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-required.html.md new file mode 100644 index 000000000..f961c43e0 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudImageConfig-required.html.md @@ -0,0 +1,7 @@ + + +- `image_name` (string) - The name of the user-defined image, [2, 128] + English or Chinese characters. It must begin with an uppercase/lowercase + letter or a Chinese character, and may contain numbers, _ or -. It + cannot begin with http:// or https://. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_RunConfig-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_RunConfig-not-required.html.md new file mode 100644 index 000000000..35e38f767 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_RunConfig-not-required.html.md @@ -0,0 +1,78 @@ + + +- `associate_public_ip_address` (bool) - Associate Public Ip Address +- `zone_id` (string) - ID of the zone to which the disk belongs. + +- `io_optimized` (bool) - Whether an ECS instance is I/O optimized or not. + The default value is false. + +- `description` (string) - Description +- `force_stop_instance` (bool) - Whether to force shutdown upon device + restart. The default value is false. + +- `disable_stop_instance` (bool) - If this option is set to true, Packer + will not stop the instance for you, and you need to make sure the instance + will be stopped in the final provisioner command. Otherwise, Packer will + timeout while waiting the instance to be stopped. This option is provided + for some specific scenarios that you want to stop the instance by yourself. + E.g., Sysprep a windows which may shutdown the instance within its command. + The default value is false. + +- `security_group_id` (string) - ID of the security group to which a newly + created instance belongs. Mutual access is allowed between instances in one + security group. If not specified, the newly created instance will be added + to the default security group. If the default group doesn’t exist, or the + number of instances in it has reached the maximum limit, a new security + group will be created automatically. + +- `security_group_name` (string) - The security group name. The default value + is blank. [2, 128] English or Chinese characters, must begin with an + uppercase/lowercase letter or Chinese character. Can contain numbers, ., + _ or -. It cannot begin with http:// or https://. + +- `user_data` (string) - User data to apply when launching the instance. Note + that you need to be careful about escaping characters due to the templates + being JSON. It is often more convenient to use user_data_file, instead. + Packer will not automatically wait for a user script to finish before + shutting down the instance this must be handled in a provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the instance. + +- `vpc_id` (string) - VPC ID allocated by the system. + +- `vpc_name` (string) - The VPC name. The default value is blank. [2, 128] + English or Chinese characters, must begin with an uppercase/lowercase + letter or Chinese character. Can contain numbers, _ and -. The disk + description will appear on the console. Cannot begin with http:// or + https://. + +- `vpc_cidr_block` (string) - Value options: 192.168.0.0/16 and + 172.16.0.0/16. When not specified, the default value is 172.16.0.0/16. + +- `vswitch_id` (string) - The ID of the VSwitch to be used. + +- `vswitch_id` (string) - The ID of the VSwitch to be used. + +- `instance_name` (string) - Display name of the instance, which is a string + of 2 to 128 Chinese or English characters. It must begin with an + uppercase/lowercase letter or a Chinese character and can contain numerals, + ., _, or -. The instance name is displayed on the Alibaba Cloud + console. If this parameter is not specified, the default value is + InstanceId of the instance. It cannot begin with http:// or https://. + +- `internet_charge_type` (string) - Internet charge type, which can be + PayByTraffic or PayByBandwidth. Optional values: + +- `internet_max_bandwidth_out` (int) - Maximum outgoing bandwidth to the + public network, measured in Mbps (Mega bits per second). + +- `wait_snapshot_ready_timeout` (int) - Timeout of creating snapshot(s). + The default timeout is 3600 seconds if this option is not set or is set + to 0. For those disks containing lots of data, it may require a higher + timeout value. + +- `ssh_private_ip` (bool) - If this value is true, packer will connect to + the ECS created through private ip instead of allocating a public ip or an + EIP. The default value is false. + \ No newline at end of file diff --git a/website/source/partials/builder/alicloud/ecs/_RunConfig-required.html.md b/website/source/partials/builder/alicloud/ecs/_RunConfig-required.html.md new file mode 100644 index 000000000..c617940a9 --- /dev/null +++ b/website/source/partials/builder/alicloud/ecs/_RunConfig-required.html.md @@ -0,0 +1,13 @@ + + +- `instance_type` (string) - Type of the instance. For values, see Instance + Type + Table. + You can also obtain the latest instance type table by invoking the + Querying Instance Type + Table + interface. + +- `source_image` (string) - This is the base image id which you want to + create your customized images. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/chroot/_Config-not-required.html.md b/website/source/partials/builder/amazon/chroot/_Config-not-required.html.md new file mode 100644 index 000000000..e21aaf40d --- /dev/null +++ b/website/source/partials/builder/amazon/chroot/_Config-not-required.html.md @@ -0,0 +1,130 @@ + + +- `chroot_mounts` ([][]string) - This is a list of devices to + mount into the chroot environment. This configuration parameter requires + some additional documentation which is in the Chroot + Mounts section. Please read that section for more + information on how to use this. + +- `command_wrapper` (string) - How to run shell commands. This defaults to + {{.Command}}. This may be useful to set if you want to set environmental + variables or perhaps run it with sudo or so on. This is a configuration + template where the .Command variable is replaced with the command to be + run. Defaults to {{.Command}}. + +- `copy_files` ([]string) - Paths to files on the running EC2 + instance that will be copied into the chroot environment prior to + provisioning. Defaults to /etc/resolv.conf so that DNS lookups work. Pass + an empty list to skip copying /etc/resolv.conf. You may need to do this + if you're building an image that uses systemd. + +- `device_path` (string) - The path to the device where the root volume of + the source AMI will be attached. This defaults to "" (empty string), which + forces Packer to find an open device automatically. + +- `nvme_device_path` (string) - When we call the mount command (by default + mount -o device dir), the string provided in nvme_mount_path will + replace device in that command. When this option is not set, device in + that command will be something like /dev/sdf1, mirroring the attached + device name. This assumption works for most instances but will fail with c5 + and m5 instances. In order to use the chroot builder with c5 and m5 + instances, you must manually set nvme_device_path and device_path. + +- `from_scratch` (bool) - Build a new volume instead of starting from an + existing AMI root volume snapshot. Default false. If true, source_ami + is no longer used and the following options become required: + ami_virtualization_type, pre_mount_commands and root_volume_size. The + below options are also required in this mode only: + +- `mount_options` ([]string) - Options to supply the mount command + when mounting devices. Each option will be prefixed with -o and supplied + to the mount command ran by Packer. Because this command is ran in a + shell, user discretion is advised. See this manual page for the mount + command for valid file + system specific options. + +- `mount_partition` (string) - The partition number containing the / + partition. By default this is the first partition of the volume, (for + example, xvda1) but you can designate the entire block device by setting + "mount_partition": "0" in your config, which will mount xvda instead. + +- `mount_path` (string) - The path where the volume will be mounted. This is + where the chroot environment will be. This defaults to + /mnt/packer-amazon-chroot-volumes/{{.Device}}. This is a configuration + template where the .Device variable is replaced with the name of the + device where the volume is attached. + +- `post_mount_commands` ([]string) - As pre_mount_commands, but the + commands are executed after mounting the root device and before the extra + mount and copy steps. The device and mount path are provided by + {{.Device}} and {{.MountPath}}. + +- `pre_mount_commands` ([]string) - A series of commands to execute + after attaching the root volume and before mounting the chroot. This is not + required unless using from_scratch. If so, this should include any + partitioning and filesystem creation commands. The path to the device is + provided by {{.Device}}. + +- `root_device_name` (string) - The root device name. For example, xvda. + +- `root_volume_size` (int64) - The size of the root volume in GB for the + chroot environment and the resulting AMI. Default size is the snapshot size + of the source_ami unless from_scratch is true, in which case this + field must be defined. + +- `root_volume_type` (string) - The type of EBS volume for the chroot + environment and resulting AMI. The default value is the type of the + source_ami, unless from_scratch is true, in which case the default + value is gp2. You can only specify io1 if building based on top of a + source_ami which is also io1. + +- `source_ami_filter` (awscommon.AmiFilterOptions) - Filters used to populate the source_ami + field. Example: + + ``` json + { + "source_ami_filter": { + "filters": { + "virtualization-type": "hvm", + "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*", + "root-device-type": "ebs" + }, + "owners": ["099720109477"], + "most_recent": true + } + } + ``` + + This selects the most recent Ubuntu 16.04 HVM EBS AMI from Canonical. NOTE: + This will fail unless *exactly* one AMI is returned. In the above example, + `most_recent` will cause this to succeed by selecting the newest image. + + - `filters` (map of strings) - filters used to select a `source_ami`. + NOTE: This will fail unless *exactly* one AMI is returned. Any filter + described in the docs for + [DescribeImages](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) + is valid. + + - `owners` (array of strings) - Filters the images by their owner. You + may specify one or more AWS account IDs, "self" (which will use the + account whose credentials you are using to run Packer), or an AWS owner + alias: for example, "amazon", "aws-marketplace", or "microsoft". This + option is required for security reasons. + + - `most_recent` (boolean) - Selects the newest created image when true. + This is most useful for selecting a daily distro build. + + You may set this in place of `source_ami` or in conjunction with it. If you + set this in conjunction with `source_ami`, the `source_ami` will be added + to the filter. The provided `source_ami` must meet all of the filtering + criteria provided in `source_ami_filter`; this pins the AMI returned by the + filter, but will cause Packer to fail if the `source_ami` does not exist. + +- `root_volume_tags` (awscommon.TagMap) - Tags to apply to the + volumes that are *launched*. This is a [template + engine](/docs/templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `ami_architecture` (string) - what architecture to use when registering the + final AMI; valid options are "x86_64" or "arm64". Defaults to "x86_64". + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/chroot/_Config-required.html.md b/website/source/partials/builder/amazon/chroot/_Config-required.html.md new file mode 100644 index 000000000..61be88601 --- /dev/null +++ b/website/source/partials/builder/amazon/chroot/_Config-required.html.md @@ -0,0 +1,7 @@ + + +- `source_ami` (string) - The source AMI whose root volume will be copied and + provisioned on the currently running instance. This must be an EBS-backed + AMI with a root volume snapshot that you have access to. Note: this is not + used when from_scratch is set to true. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AMIBlockDevices-not-required.html.md b/website/source/partials/builder/amazon/common/_AMIBlockDevices-not-required.html.md new file mode 100644 index 000000000..831deb552 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AMIBlockDevices-not-required.html.md @@ -0,0 +1,52 @@ + + +- `ami_block_device_mappings` ([]BlockDevice) - Add one or more [block device + mappings](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) + to the AMI. These will be attached when booting a new instance from your + AMI. To add a block device during the Packer build see + `launch_block_device_mappings` below. Your options here may vary + depending on the type of VM you use. The block device mappings allow for + the following configuration: + - `delete_on_termination` (boolean) - Indicates whether the EBS volume is + deleted on instance termination. Default `false`. **NOTE**: If this + value is not explicitly set to `true` and volumes are not cleaned up by + an alternative method, additional volumes will accumulate after every + build. + + - `device_name` (string) - The device name exposed to the instance (for + example, `/dev/sdh` or `xvdh`). Required for every device in the block + device mapping. + + - `encrypted` (boolean) - Indicates whether or not to encrypt the volume. + By default, Packer will keep the encryption setting to what it was in + the source image. Setting `false` will result in an unencrypted device, + and `true` will result in an encrypted one. + + - `iops` (number) - The number of I/O operations per second (IOPS) that + the volume supports. See the documentation on + [IOPs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html) + for more information + + - `kms_key_id` (string) - The ARN for the KMS encryption key. When + specifying `kms_key_id`, `encrypted` needs to be set to `true`. For + valid formats see *KmsKeyId* in the [AWS API docs - + CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html). + + - `no_device` (boolean) - Suppresses the specified device included in the + block device mapping of the AMI. + + - `snapshot_id` (string) - The ID of the snapshot. + + - `virtual_name` (string) - The virtual device name. See the + documentation on [Block Device + Mapping](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html) + for more information. + + - `volume_size` (number) - The size of the volume, in GiB. Required if + not specifying a `snapshot_id`. + + - `volume_type` (string) - The volume type. `gp2` for General Purpose + (SSD) volumes, `io1` for Provisioned IOPS (SSD) volumes, `st1` for + Throughput Optimized HDD, `sc1` for Cold HDD, and `standard` for + Magnetic volumes. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AMIConfig-not-required.html.md b/website/source/partials/builder/amazon/common/_AMIConfig-not-required.html.md new file mode 100644 index 000000000..8c1d75f7e --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AMIConfig-not-required.html.md @@ -0,0 +1,97 @@ + + +- `ami_description` (string) - The description to set for the resulting + AMI(s). By default this description is empty. This is a template + engine, see Build template + data for more information. + +- `ami_virtualization_type` (string) - The description to set for the resulting AMI(s). By default this + description is empty. This is a [template + engine](../templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `ami_users` ([]string) - A list of account IDs that have access to + launch the resulting AMI(s). By default no additional users other than the + user creating the AMI has permissions to launch it. + +- `ami_groups` ([]string) - A list of groups that have access to + launch the resulting AMI(s). By default no groups have permission to launch + the AMI. all will make the AMI publicly accessible. + +- `ami_product_codes` ([]string) - A list of product codes to + associate with the AMI. By default no product codes are associated with the + AMI. + +- `ami_regions` ([]string) - A list of regions to copy the AMI to. + Tags and attributes are copied along with the AMI. AMI copying takes time + depending on the size of the AMI, but will generally take many minutes. + +- `skip_region_validation` (bool) - Set to true if you want to skip + validation of the ami_regions configuration option. Default false. + +- `tags` (TagMap) - Tags applied to the AMI. This is a + [template engine](/docs/templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `ena_support` (*bool) - Enable enhanced networking (ENA but not + SriovNetSupport) on HVM-compatible AMIs. If set, add + ec2:ModifyInstanceAttribute to your AWS IAM policy. If false, this will + disable enhanced networking in the final AMI as opposed to passing the + setting through unchanged from the source. Note: you must make sure + enhanced networking is enabled on your instance. [Amazon's + documentation on enabling enhanced + networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking). + +- `sriov_support` (bool) - Enable enhanced networking (SriovNetSupport but not ENA) on + HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your + AWS IAM policy. Note: you must make sure enhanced networking is enabled + on your instance. See [Amazon's documentation on enabling enhanced + networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking). + Default `false`. + +- `force_deregister` (bool) - Force Packer to first deregister an existing + AMI if one with the same name already exists. Default false. + +- `force_delete_snapshot` (bool) - Force Packer to delete snapshots + associated with AMIs, which have been deregistered by force_deregister. + Default false. + +- `encrypt_boot` (*bool) - Whether or not to encrypt the resulting AMI when + copying a provisioned instance to an AMI. By default, Packer will keep the + encryption setting to what it was in the source image. Setting false will + result in an unencrypted image, and true will result in an encrypted one. + +- `kms_key_id` (string) - ID, alias or ARN of the KMS key to use for boot volume encryption. This + only applies to the main `region`, other regions where the AMI will be + copied will be encrypted by the default EBS KMS key. For valid formats + see *KmsKeyId* in the [AWS API docs - + CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html). + This field is validated by Packer, when using an alias, you will have to + prefix `kms_key_id` with `alias/`. + +- `region_kms_key_ids` (map[string]string) - regions to copy the ami to, along with the custom kms key id (alias or + arn) to use for encryption for that region. Keys must match the regions + provided in `ami_regions`. If you just want to encrypt using a default + ID, you can stick with `kms_key_id` and `ami_regions`. If you want a + region to be encrypted with that region's default key ID, you can use an + empty string `""` instead of a key id in this map. (e.g. `"us-east-1": + ""`) However, you cannot use default key IDs if you are using this in + conjunction with `snapshot_users` -- in that situation you must use + custom keys. For valid formats see *KmsKeyId* in the [AWS API docs - + CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html). + +- `snapshot_tags` (TagMap) - Tags to apply to snapshot. + They will override AMI tags if already applied to snapshot. This is a + [template engine](../templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `snapshot_users` ([]string) - A list of account IDs that have + access to create volumes from the snapshot(s). By default no additional + users other than the user creating the AMI has permissions to create + volumes from the backing snapshot(s). + +- `snapshot_groups` ([]string) - A list of groups that have access to + create volumes from the snapshot(s). By default no groups have permission + to create volumes from the snapshot(s). all will make the snapshot + publicly accessible. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AMIConfig-required.html.md b/website/source/partials/builder/amazon/common/_AMIConfig-required.html.md new file mode 100644 index 000000000..f7d6bea02 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AMIConfig-required.html.md @@ -0,0 +1,7 @@ + + +- `ami_name` (string) - The name of the resulting AMI that will appear when + managing AMIs in the AWS console or via APIs. This must be unique. To help + make this unique, use a function like timestamp (see [template + engine](../templates/engine.html) for more info). + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AccessConfig-not-required.html.md b/website/source/partials/builder/amazon/common/_AccessConfig-not-required.html.md new file mode 100644 index 000000000..280afe8a1 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AccessConfig-not-required.html.md @@ -0,0 +1,65 @@ + + +- `custom_endpoint_ec2` (string) - This option is useful if you use a cloud + provider whose API is compatible with aws EC2. Specify another endpoint + like this https://ec2.custom.endpoint.com. + +- `decode_authorization_messages` (bool) - Enable automatic decoding of any encoded authorization (error) messages + using the `sts:DecodeAuthorizationMessage` API. Note: requires that the + effective user/role have permissions to `sts:DecodeAuthorizationMessage` + on resource `*`. Default `false`. + +- `insecure_skip_tls_verify` (bool) - This allows skipping TLS + verification of the AWS EC2 endpoint. The default is false. + +- `mfa_code` (string) - The MFA TOTP code. This should probably be a user variable since it + changes all the time. + +- `profile` (string) - The profile to use in the shared credentials file for + AWS. See Amazon's documentation on [specifying + profiles](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-profiles) + for more details. + +- `skip_region_validation` (bool) - Set to true if you want to skip + validation of the ami_regions configuration option. Default false. + +- `skip_metadata_api_check` (bool) - Skip Metadata Api Check +- `token` (string) - The access token to use. This is different from the + access key and secret key. If you're not sure what this is, then you + probably don't need it. This will also be read from the AWS_SESSION_TOKEN + environmental variable. + +- `vault_aws_engine` (VaultAWSEngineOptions) - Get credentials from Hashicorp Vault's aws secrets engine. You must + already have created a role to use. For more information about + generating credentials via the Vault engine, see the [Vault + docs.](https://www.vaultproject.io/api/secret/aws/index.html#generate-credentials) + If you set this flag, you must also set the below options: + - `name` (string) - Required. Specifies the name of the role to generate + credentials against. This is part of the request URL. + - `engine_name` (string) - The name of the aws secrets engine. In the + Vault docs, this is normally referred to as "aws", and Packer will + default to "aws" if `engine_name` is not set. + - `role_arn` (string)- The ARN of the role to assume if credential\_type + on the Vault role is assumed\_role. Must match one of the allowed role + ARNs in the Vault role. Optional if the Vault role only allows a single + AWS role ARN; required otherwise. + - `ttl` (string) - Specifies the TTL for the use of the STS token. This + is specified as a string with a duration suffix. Valid only when + credential\_type is assumed\_role or federation\_token. When not + specified, the default\_sts\_ttl set for the role will be used. If that + is also not set, then the default value of 3600s will be used. AWS + places limits on the maximum TTL allowed. See the AWS documentation on + the DurationSeconds parameter for AssumeRole (for assumed\_role + credential types) and GetFederationToken (for federation\_token + credential types) for more details. + + ``` json + { + "vault_aws_engine": { + "name": "myrole", + "role_arn": "myarn", + "ttl": "3600s" + } + } + ``` + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AccessConfig-required.html.md b/website/source/partials/builder/amazon/common/_AccessConfig-required.html.md new file mode 100644 index 000000000..b898b65c9 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AccessConfig-required.html.md @@ -0,0 +1,15 @@ + + +- `access_key` (string) - The access key used to communicate with AWS. [Learn how to set this] + (/docs/builders/amazon.html#specifying-amazon-credentials). On EBS, this + is not required if you are using `use_vault_aws_engine` for + authentication instead. + +- `region` (string) - The name of the region, such as `us-east-1`, in which + to launch the EC2 instance to create the AMI. + When chroot building, this value is guessed from environment. + +- `secret_key` (string) - The secret key used to communicate with AWS. [Learn how to set + this](amazon.html#specifying-amazon-credentials). This is not required + if you are using `use_vault_aws_engine` for authentication instead. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_AmiFilterOptions-not-required.html.md b/website/source/partials/builder/amazon/common/_AmiFilterOptions-not-required.html.md new file mode 100644 index 000000000..4e1187cc9 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_AmiFilterOptions-not-required.html.md @@ -0,0 +1,3 @@ + + +- `most_recent` (bool) - Most Recent \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_BlockDevice-not-required.html.md b/website/source/partials/builder/amazon/common/_BlockDevice-not-required.html.md new file mode 100644 index 000000000..8f85eda56 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_BlockDevice-not-required.html.md @@ -0,0 +1,50 @@ + + +- `delete_on_termination` (bool) - Indicates whether the EBS volume is + deleted on instance termination. Default false. NOTE: If this + value is not explicitly set to true and volumes are not cleaned up by + an alternative method, additional volumes will accumulate after every + build. + +- `device_name` (string) - The device name exposed to the instance (for + example, /dev/sdh or xvdh). Required for every device in the block + device mapping. + +- `encrypted` (*bool) - Indicates whether or not to encrypt the volume. + By default, Packer will keep the encryption setting to what it was in + the source image. Setting false will result in an unencrypted device, + and true will result in an encrypted one. + +- `iops` (int64) - The number of I/O operations per second (IOPS) that + the volume supports. See the documentation on + IOPs + for more information + +- `no_device` (bool) - Suppresses the specified device included in the + block device mapping of the AMI. + +- `snapshot_id` (string) - The ID of the snapshot. + +- `virtual_name` (string) - The virtual device name. See the + documentation on Block Device + Mapping + for more information. + +- `volume_type` (string) - The volume type. gp2 for General Purpose + (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, st1 for + Throughput Optimized HDD, sc1 for Cold HDD, and standard for + Magnetic volumes. + +- `volume_size` (int64) - The size of the volume, in GiB. Required if + not specifying a snapshot_id. + +- `kms_key_id` (string) - ID, alias or ARN of the KMS key to use for boot + volume encryption. This only applies to the main region, other regions + where the AMI will be copied will be encrypted by the default EBS KMS key. + For valid formats see KmsKeyId in the [AWS API docs - + CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html) + This field is validated by Packer, when using an alias, you will have to + prefix kms_key_id with alias/. + +- `omit_from_artifact` (bool) - ebssurrogate only + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_LaunchBlockDevices-not-required.html.md b/website/source/partials/builder/amazon/common/_LaunchBlockDevices-not-required.html.md new file mode 100644 index 000000000..d9efd82e8 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_LaunchBlockDevices-not-required.html.md @@ -0,0 +1,19 @@ + + +- `launch_block_device_mappings` ([]BlockDevice) - Add one or more block devices before the Packer build starts. If you add + instance store volumes or EBS volumes in addition to the root device + volume, the created AMI will contain block device mapping information + for those volumes. Amazon creates snapshots of the source instance's + root volume and any other EBS volumes described here. When you launch an + instance from this new AMI, the instance automatically launches with + these additional volumes, and will restore them from snapshots taken + from the source instance. + + In addition to the fields available in ami_block_device_mappings, you + may optionally use the following field: + - `omit_from_artifact` (boolean) - If true, this block device will not + be snapshotted and the created AMI will not contain block device mapping + information for this volume. If false, the block device will be mapped + into the final created AMI. Set this option to true if you need a block + device mounted in the surrogate AMI but not in the final created AMI. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_RunConfig-not-required.html.md b/website/source/partials/builder/amazon/common/_RunConfig-not-required.html.md new file mode 100644 index 000000000..7fbb68c95 --- /dev/null +++ b/website/source/partials/builder/amazon/common/_RunConfig-not-required.html.md @@ -0,0 +1,246 @@ + + +- `associate_public_ip_address` (bool) - If using a non-default VPC, + public IP addresses are not provided by default. If this is true, your + new instance will get a Public IP. default: false + +- `availability_zone` (string) - Destination availability zone to launch + instance in. Leave this empty to allow Amazon to auto-assign. + +- `block_duration_minutes` (int64) - Requires spot_price to be set. The + required duration for the Spot Instances (also known as Spot blocks). This + value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). You can't + specify an Availability Zone group or a launch group if you specify a + duration. + +- `disable_stop_instance` (bool) - Packer normally stops the build instance after all provisioners have + run. For Windows instances, it is sometimes desirable to [run + Sysprep](http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-create-standard.html) + which will stop the instance for you. If this is set to `true`, Packer + *will not* stop the instance but will assume that you will send the stop + signal yourself through your final provisioner. You can do this with a + [windows-shell + provisioner](https://www.packer.io/docs/provisioners/windows-shell.html). + Note that Packer will still wait for the instance to be stopped, and + failing to send the stop signal yourself, when you have set this flag to + `true`, will cause a timeout. + Example of a valid shutdown command: + + ``` json + { + "type": "windows-shell", + "inline": ["\"c:\\Program Files\\Amazon\\Ec2ConfigService\\ec2config.exe\" -sysprep"] + } + ``` + +- `ebs_optimized` (bool) - Mark instance as [EBS + Optimized](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html). + Default `false`. + +- `enable_t2_unlimited` (bool) - Enabling T2 Unlimited allows the source instance to burst additional CPU + beyond its available [CPU + Credits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-credits-baseline-concepts.html) + for as long as the demand exists. This is in contrast to the standard + configuration that only allows an instance to consume up to its + available CPU Credits. See the AWS documentation for [T2 + Unlimited](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-unlimited.html) + and the **T2 Unlimited Pricing** section of the [Amazon EC2 On-Demand + Pricing](https://aws.amazon.com/ec2/pricing/on-demand/) document for + more information. By default this option is disabled and Packer will set + up a [T2 + Standard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-std.html) + instance instead. + + To use T2 Unlimited you must use a T2 instance type, e.g. `t2.micro`. + Additionally, T2 Unlimited cannot be used in conjunction with Spot + Instances, e.g. when the `spot_price` option has been configured. + Attempting to do so will cause an error. + + !> **Warning!** Additional costs may be incurred by enabling T2 + Unlimited - even for instances that would usually qualify for the + [AWS Free Tier](https://aws.amazon.com/free/). + +- `iam_instance_profile` (string) - The name of an [IAM instance + profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) + to launch the EC2 instance with. + +- `shutdown_behavior` (string) - Automatically terminate instances on + shutdown in case Packer exits ungracefully. Possible values are stop and + terminate. Defaults to stop. + +- `security_group_filter` (SecurityGroupFilterOptions) - Filters used to populate the `security_group_ids` field. Example: + + ``` json + { + "security_group_filter": { + "filters": { + "tag:Class": "packer" + } + } + } + ``` + + This selects the SG's with tag `Class` with the value `packer`. + + - `filters` (map of strings) - filters used to select a + `security_group_ids`. Any filter described in the docs for + [DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html) + is valid. + + `security_group_ids` take precedence over this. + +- `run_tags` (map[string]string) - Tags to apply to the instance that is *launched* to create the AMI. + These tags are *not* applied to the resulting AMI unless they're + duplicated in `tags`. This is a [template + engine](/docs/templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `security_group_id` (string) - The ID (not the name) of the security + group to assign to the instance. By default this is not set and Packer will + automatically create a new temporary security group to allow SSH access. + Note that if this is specified, you must be sure the security group allows + access to the ssh_port given below. + +- `security_group_ids` ([]string) - A list of security groups as + described above. Note that if this is specified, you must omit the + security_group_id. + +- `source_ami_filter` (AmiFilterOptions) - Filters used to populate the `source_ami` + field. Example: + + ``` json + { + "source_ami_filter": { + "filters": { + "virtualization-type": "hvm", + "name": "ubuntu/images/\*ubuntu-xenial-16.04-amd64-server-\*", + "root-device-type": "ebs" + }, + "owners": ["099720109477"], + "most_recent": true + } + } + ``` + + This selects the most recent Ubuntu 16.04 HVM EBS AMI from Canonical. NOTE: + This will fail unless *exactly* one AMI is returned. In the above example, + `most_recent` will cause this to succeed by selecting the newest image. + + - `filters` (map of strings) - filters used to select a `source_ami`. + NOTE: This will fail unless *exactly* one AMI is returned. Any filter + described in the docs for + [DescribeImages](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) + is valid. + + - `owners` (array of strings) - Filters the images by their owner. You + may specify one or more AWS account IDs, "self" (which will use the + account whose credentials you are using to run Packer), or an AWS owner + alias: for example, `amazon`, `aws-marketplace`, or `microsoft`. This + option is required for security reasons. + + - `most_recent` (boolean) - Selects the newest created image when true. + This is most useful for selecting a daily distro build. + + You may set this in place of `source_ami` or in conjunction with it. If you + set this in conjunction with `source_ami`, the `source_ami` will be added + to the filter. The provided `source_ami` must meet all of the filtering + criteria provided in `source_ami_filter`; this pins the AMI returned by the + filter, but will cause Packer to fail if the `source_ami` does not exist. + +- `spot_instance_types` ([]string) - a list of acceptable instance + types to run your build on. We will request a spot instance using the max + price of spot_price and the allocation strategy of "lowest price". + Your instance will be launched on an instance type of the lowest available + price that you have in your list. This is used in place of instance_type. + You may only set either spot_instance_types or instance_type, not both. + This feature exists to help prevent situations where a Packer build fails + because a particular availability zone does not have capacity for the + specific instance_type requested in instance_type. + +- `spot_price` (string) - The maximum hourly price to pay for a spot instance + to create the AMI. Spot instances are a type of instance that EC2 starts + when the current spot price is less than the maximum price you specify. + Spot price will be updated based on available spot instance capacity and + current spot instance requests. It may save you some costs. You can set + this to auto for Packer to automatically discover the best spot price or + to "0" to use an on demand instance (default). + +- `spot_price_auto_product` (string) - Required if spot_price is set to + auto. This tells Packer what sort of AMI you're launching to find the + best spot price. This must be one of: Linux/UNIX, SUSE Linux, + Windows, Linux/UNIX (Amazon VPC), SUSE Linux (Amazon VPC), + Windows (Amazon VPC) + +- `spot_tags` (map[string]string) - Requires spot_price to be + set. This tells Packer to apply tags to the spot request that is issued. + +- `subnet_filter` (SubnetFilterOptions) - Filters used to populate the `subnet_id` field. + Example: + + ``` json + { + "subnet_filter": { + "filters": { + "tag:Class": "build" + }, + "most_free": true, + "random": false + } + } + ``` + + This selects the Subnet with tag `Class` with the value `build`, which has + the most free IP addresses. NOTE: This will fail unless *exactly* one + Subnet is returned. By using `most_free` or `random` one will be selected + from those matching the filter. + + - `filters` (map of strings) - filters used to select a `subnet_id`. + NOTE: This will fail unless *exactly* one Subnet is returned. Any + filter described in the docs for + [DescribeSubnets](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html) + is valid. + + - `most_free` (boolean) - The Subnet with the most free IPv4 addresses + will be used if multiple Subnets matches the filter. + + - `random` (boolean) - A random Subnet will be used if multiple Subnets + matches the filter. `most_free` have precendence over this. + + `subnet_id` take precedence over this. + +- `subnet_id` (string) - If using VPC, the ID of the subnet, such as + subnet-12345def, where Packer will launch the EC2 instance. This field is + required if you are using an non-default VPC. + +- `temporary_key_pair_name` (string) - The name of the temporary key pair to + generate. By default, Packer generates a name that looks like + `packer_`, where <UUID> is a 36 character unique identifier. + +- `temporary_security_group_source_cidrs` ([]string) - A list of IPv4 CIDR blocks to be authorized access to the instance, when + packer is creating a temporary security group. + + The default is [`0.0.0.0/0`] (i.e., allow any IPv4 source). This is only + used when `security_group_id` or `security_group_ids` is not specified. + +- `user_data` (string) - User data to apply when launching the instance. Note + that you need to be careful about escaping characters due to the templates + being JSON. It is often more convenient to use user_data_file, instead. + Packer will not automatically wait for a user script to finish before + shutting down the instance this must be handled in a provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the instance. + +- `vpc_filter` (VpcFilterOptions) - Filters used to populate the vpc_id field. + vpc_id take precedence over this. + Example: + +- `vpc_id` (string) - If launching into a VPC subnet, Packer needs the VPC ID + in order to create a temporary security group within the VPC. Requires + subnet_id to be set. If this field is left blank, Packer will try to get + the VPC ID from the subnet_id. + +- `windows_password_timeout` (time.Duration) - The timeout for waiting for a Windows + password for Windows instances. Defaults to 20 minutes. Example value: + 10m + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_RunConfig-required.html.md b/website/source/partials/builder/amazon/common/_RunConfig-required.html.md new file mode 100644 index 000000000..af4443aeb --- /dev/null +++ b/website/source/partials/builder/amazon/common/_RunConfig-required.html.md @@ -0,0 +1,10 @@ + + +- `instance_type` (string) - The EC2 instance type to use while building the + AMI, such as t2.small. + +- `source_ami` (string) - The source AMI whose root volume will be copied and + provisioned on the currently running instance. This must be an EBS-backed + AMI with a root volume snapshot that you have access to. Note: this is not + used when from_scratch is set to true. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_SubnetFilterOptions-not-required.html.md b/website/source/partials/builder/amazon/common/_SubnetFilterOptions-not-required.html.md new file mode 100644 index 000000000..e40a7730d --- /dev/null +++ b/website/source/partials/builder/amazon/common/_SubnetFilterOptions-not-required.html.md @@ -0,0 +1,4 @@ + + +- `most_free` (bool) - Most Free +- `random` (bool) - Random \ No newline at end of file diff --git a/website/source/partials/builder/amazon/common/_VaultAWSEngineOptions-not-required.html.md b/website/source/partials/builder/amazon/common/_VaultAWSEngineOptions-not-required.html.md new file mode 100644 index 000000000..c329c73ac --- /dev/null +++ b/website/source/partials/builder/amazon/common/_VaultAWSEngineOptions-not-required.html.md @@ -0,0 +1,15 @@ + + +- `name` (string) - Name +- `role_arn` (string) - Role ARN +- `ttl` (string) - Specifies the TTL for the use of the STS token. This + is specified as a string with a duration suffix. Valid only when + credential_type is assumed_role or federation_token. When not + specified, the default_sts_ttl set for the role will be used. If that + is also not set, then the default value of 3600s will be used. AWS + places limits on the maximum TTL allowed. See the AWS documentation on + the DurationSeconds parameter for AssumeRole (for assumed_role + credential types) and GetFederationToken (for federation_token + credential types) for more details. + +- `engine_name` (string) - Engine Name \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebs/_Config-not-required.html.md b/website/source/partials/builder/amazon/ebs/_Config-not-required.html.md new file mode 100644 index 000000000..80f25ce3e --- /dev/null +++ b/website/source/partials/builder/amazon/ebs/_Config-not-required.html.md @@ -0,0 +1,8 @@ + + +- `run_volume_tags` (awscommon.TagMap) - Tags to apply to the volumes that are *launched* to create the AMI. + These tags are *not* applied to the resulting AMI unless they're + duplicated in `tags`. This is a [template + engine](/docs/templates/engine.html), see [Build template + data](#build-template-data) for more information. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebssurrogate/_Config-not-required.html.md b/website/source/partials/builder/amazon/ebssurrogate/_Config-not-required.html.md new file mode 100644 index 000000000..db9846f2a --- /dev/null +++ b/website/source/partials/builder/amazon/ebssurrogate/_Config-not-required.html.md @@ -0,0 +1,11 @@ + + +- `run_volume_tags` (awscommon.TagMap) - Tags to apply to the volumes that are *launched* to create the AMI. + These tags are *not* applied to the resulting AMI unless they're + duplicated in `tags`. This is a [template + engine](/docs/templates/engine.html), see [Build template + data](#build-template-data) for more information. + +- `ami_architecture` (string) - what architecture to use when registering the + final AMI; valid options are "x86_64" or "arm64". Defaults to "x86_64". + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebssurrogate/_Config-required.html.md b/website/source/partials/builder/amazon/ebssurrogate/_Config-required.html.md new file mode 100644 index 000000000..371cfbd33 --- /dev/null +++ b/website/source/partials/builder/amazon/ebssurrogate/_Config-required.html.md @@ -0,0 +1,10 @@ + + +- `ami_root_device` (RootBlockDevice) - A block device mapping describing the root device of the AMI. This looks + like the mappings in `ami_block_device_mapping`, except with an + additional field: + + - `source_device_name` (string) - The device name of the block device on + the source instance to be used as the root device for the AMI. This + must correspond to a block device in `launch_block_device_mapping`. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebssurrogate/_RootBlockDevice-not-required.html.md b/website/source/partials/builder/amazon/ebssurrogate/_RootBlockDevice-not-required.html.md new file mode 100644 index 000000000..17b0d8c3f --- /dev/null +++ b/website/source/partials/builder/amazon/ebssurrogate/_RootBlockDevice-not-required.html.md @@ -0,0 +1,26 @@ + + +- `source_device_name` (string) - Source Device Name +- `device_name` (string) - The device name exposed to the instance (for + example, /dev/sdh or xvdh). Required for every device in the block + device mapping. + +- `delete_on_termination` (bool) - Indicates whether the EBS volume is + deleted on instance termination. Default false. NOTE: If this + value is not explicitly set to true and volumes are not cleaned up by + an alternative method, additional volumes will accumulate after every + build. + +- `iops` (int64) - The number of I/O operations per second (IOPS) that + the volume supports. See the documentation on + IOPs + for more information + +- `volume_type` (string) - The volume type. gp2 for General Purpose + (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, st1 for + Throughput Optimized HDD, sc1 for Cold HDD, and standard for + Magnetic volumes. + +- `volume_size` (int64) - The size of the volume, in GiB. Required if + not specifying a snapshot_id. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebsvolume/_BlockDevice-not-required.html.md b/website/source/partials/builder/amazon/ebsvolume/_BlockDevice-not-required.html.md new file mode 100644 index 000000000..c27a24348 --- /dev/null +++ b/website/source/partials/builder/amazon/ebsvolume/_BlockDevice-not-required.html.md @@ -0,0 +1,6 @@ + + +- `tags` (awscommon.TagMap) - Tags applied to the AMI. This is a + template engine, see Build template + data for more information. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/ebsvolume/_Config-not-required.html.md b/website/source/partials/builder/amazon/ebsvolume/_Config-not-required.html.md new file mode 100644 index 000000000..6ec436c83 --- /dev/null +++ b/website/source/partials/builder/amazon/ebsvolume/_Config-not-required.html.md @@ -0,0 +1,19 @@ + + +- `ebs_volumes` ([]BlockDevice) - Add the block device + mappings to the AMI. The block device mappings allow for keys: + +- `ena_support` (*bool) - Enable enhanced networking (ENA but not SriovNetSupport) on + HVM-compatible AMIs. If set, add ec2:ModifyInstanceAttribute to your AWS + IAM policy. If false, this will disable enhanced networking in the final + AMI as opposed to passing the setting through unchanged from the source. + Note: you must make sure enhanced networking is enabled on your + instance. See Amazon's documentation on enabling enhanced networking. + +- `sriov_support` (bool) - Enable enhanced networking (SriovNetSupport but not ENA) on + HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your + AWS IAM policy. Note: you must make sure enhanced networking is enabled + on your instance. See [Amazon's documentation on enabling enhanced + networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking). + Default `false`. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/instance/_Config-not-required.html.md b/website/source/partials/builder/amazon/instance/_Config-not-required.html.md new file mode 100644 index 000000000..fd4a09cd4 --- /dev/null +++ b/website/source/partials/builder/amazon/instance/_Config-not-required.html.md @@ -0,0 +1,24 @@ + + +- `bundle_destination` (string) - The directory on the running instance where + the bundled AMI will be saved prior to uploading. By default this is + /tmp. This directory must exist and be writable. + +- `bundle_prefix` (string) - The prefix for files created from bundling the + root volume. By default this is image-{{timestamp}}. The timestamp + variable should be used to make sure this is unique, otherwise it can + collide with other created AMIs by Packer in your account. + +- `bundle_upload_command` (string) - The command to use to upload the bundled + volume. See the "custom bundle commands" section below for more + information. + +- `bundle_vol_command` (string) - The command to use to bundle the volume. + See the "custom bundle commands" section below for more information. + +- `x509_upload_path` (string) - The path on the remote machine where the X509 + certificate will be uploaded. This path must already exist and be writable. + X509 certificates are uploaded after provisioning is run, so it is + perfectly okay to create this directory as part of the provisioning + process. Defaults to /tmp. + \ No newline at end of file diff --git a/website/source/partials/builder/amazon/instance/_Config-required.html.md b/website/source/partials/builder/amazon/instance/_Config-required.html.md new file mode 100644 index 000000000..afcc402e7 --- /dev/null +++ b/website/source/partials/builder/amazon/instance/_Config-required.html.md @@ -0,0 +1,18 @@ + + +- `account_id` (string) - Your AWS account ID. This is required for bundling + the AMI. This is not the same as the access key. You can find your + account ID in the security credentials page of your AWS account. + +- `s3_bucket` (string) - The name of the S3 bucket to upload the AMI. This + bucket will be created if it doesn't exist. + +- `x509_cert_path` (string) - The local path to a valid X509 certificate for + your AWS account. This is used for bundling the AMI. This X509 certificate + must be registered with your account from the security credentials page in + the AWS console. + +- `x509_key_path` (string) - The local path to the private key for the X509 + certificate specified by x509_cert_path. This is used for bundling the + AMI. + \ No newline at end of file diff --git a/website/source/partials/builder/azure/arm/_ClientConfig-not-required.html.md b/website/source/partials/builder/azure/arm/_ClientConfig-not-required.html.md new file mode 100644 index 000000000..f07c96675 --- /dev/null +++ b/website/source/partials/builder/azure/arm/_ClientConfig-not-required.html.md @@ -0,0 +1,20 @@ + + +- `cloud_environment_name` (string) - One of Public, China, Germany, or + USGovernment. Defaults to Public. Long forms such as + USGovernmentCloud and AzureUSGovernmentCloud are also supported. + +- `client_id` (string) - Client ID + +- `client_secret` (string) - Client secret/password + +- `client_cert_path` (string) - Certificate path for client auth + +- `client_jwt` (string) - JWT bearer token for client auth (RFC 7523, Sec. 2.2) + +- `object_id` (string) - Object ID +- `tenant_id` (string) - The account identifier with which your client_id and + subscription_id are associated. If not specified, tenant_id will be + looked up using subscription_id. + +- `subscription_id` (string) - Subscription ID \ No newline at end of file diff --git a/website/source/partials/builder/azure/arm/_Config-not-required.html.md b/website/source/partials/builder/azure/arm/_Config-not-required.html.md new file mode 100644 index 000000000..2f34f6237 --- /dev/null +++ b/website/source/partials/builder/azure/arm/_Config-not-required.html.md @@ -0,0 +1,185 @@ + + +- `capture_name_prefix` (string) - Capture + +- `capture_container_name` (string) - Capture Container Name +- `shared_image_gallery` (SharedImageGallery) - Use a [Shared Gallery + image](https://azure.microsoft.com/en-us/blog/announcing-the-public-preview-of-shared-image-gallery/) + as the source for this build. *VHD targets are incompatible with this + build type* - the target must be a *Managed Image*. + + "shared_image_gallery": { + "subscription": "00000000-0000-0000-0000-00000000000", + "resource_group": "ResourceGroup", + "gallery_name": "GalleryName", + "image_name": "ImageName", + "image_version": "1.0.0" + } + "managed_image_name": "TargetImageName", + "managed_image_resource_group_name": "TargetResourceGroup" + +- `image_version` (string) - Specify a specific version of an OS to boot from. + Defaults to `latest`. There may be a difference in versions available + across regions due to image synchronization latency. To ensure a consistent + version across regions set this value to one that is available in all + regions where you are deploying. + + CLI example + `az vm image list --location westus --publisher Canonical --offer UbuntuServer --sku 16.04.0-LTS --all` + +- `image_url` (string) - Specify a custom VHD to use. If this value is set, do + not set image_publisher, image_offer, image_sku, or image_version. + +- `custom_managed_image_resource_group_name` (string) - Specify the source managed image's resource group used to use. If this + value is set, do not set image\_publisher, image\_offer, image\_sku, or + image\_version. If this value is set, the value + `custom_managed_image_name` must also be set. See + [documentation](https://docs.microsoft.com/en-us/azure/storage/storage-managed-disks-overview#images) + to learn more about managed images. + +- `custom_managed_image_name` (string) - Specify the source managed image's name to use. If this value is set, do + not set image\_publisher, image\_offer, image\_sku, or image\_version. + If this value is set, the value + `custom_managed_image_resource_group_name` must also be set. See + [documentation](https://docs.microsoft.com/en-us/azure/storage/storage-managed-disks-overview#images) + to learn more about managed images. + +- `location` (string) - Location +- `vm_size` (string) - Size of the VM used for building. This can be changed when you deploy a + VM from your VHD. See + [pricing](https://azure.microsoft.com/en-us/pricing/details/virtual-machines/) + information. Defaults to `Standard_A1`. + + CLI example `az vm list-sizes --location westus` + +- `managed_image_resource_group_name` (string) - Managed Image Resource Group Name +- `managed_image_name` (string) - Managed Image Name +- `managed_image_storage_account_type` (string) - Specify the storage account + type for a managed image. Valid values are Standard_LRS and Premium_LRS. + The default is Standard_LRS. + +- `managed_image_os_disk_snapshot_name` (string) - If + managed_image_os_disk_snapshot_name is set, a snapshot of the OS disk + is created with the same name as this value before the VM is captured. + +- `managed_image_data_disk_snapshot_prefix` (string) - If + managed_image_data_disk_snapshot_prefix is set, snapshot of the data + disk(s) is created with the same prefix as this value before the VM is + captured. + +- `managed_image_zone_resilient` (bool) - Store the image in zone-resilient storage. You need to create it in a + region that supports [availability + zones](https://docs.microsoft.com/en-us/azure/availability-zones/az-overview). + +- `azure_tags` (map[string]*string) - the user can define up to 15 + tags. Tag names cannot exceed 512 characters, and tag values cannot exceed + 256 characters. Tags are applied to every resource deployed by a Packer + build, i.e. Resource Group, VM, NIC, VNET, Public IP, KeyVault, etc. + +- `resource_group_name` (string) - Resource Group Name +- `storage_account` (string) - Storage Account +- `temp_compute_name` (string) - temporary name assigned to the VM. If this + value is not set, a random value will be assigned. Knowing the resource + group and VM name allows one to execute commands to update the VM during a + Packer build, e.g. attach a resource disk to the VM. + +- `temp_resource_group_name` (string) - Temp Resource Group Name +- `build_resource_group_name` (string) - Build Resource Group Name +- `private_virtual_network_with_public_ip` (bool) - This value allows you to + set a virtual_network_name and obtain a public IP. If this value is not + set and virtual_network_name is defined Packer is only allowed to be + executed from a host on the same subnet / virtual network. + +- `virtual_network_name` (string) - Use a pre-existing virtual network for the + VM. This option enables private communication with the VM, no public IP + address is used or provisioned (unless you set + private_virtual_network_with_public_ip). + +- `virtual_network_subnet_name` (string) - If virtual_network_name is set, + this value may also be set. If virtual_network_name is set, and this + value is not set the builder attempts to determine the subnet to use with + the virtual network. If the subnet cannot be found, or it cannot be + disambiguated, this value should be set. + +- `virtual_network_resource_group_name` (string) - If virtual_network_name is + set, this value may also be set. If virtual_network_name is set, and + this value is not set the builder attempts to determine the resource group + containing the virtual network. If the resource group cannot be found, or + it cannot be disambiguated, this value should be set. + +- `custom_data_file` (string) - Specify a file containing custom data to inject into the cloud-init + process. The contents of the file are read and injected into the ARM + template. The custom data will be passed to cloud-init for processing at + the time of provisioning. See + [documentation](http://cloudinit.readthedocs.io/en/latest/topics/examples.html) + to learn more about custom data, and how it can be used to influence the + provisioning process. + +- `plan_info` (PlanInformation) - Used for creating images from Marketplace images. Please refer to + [Deploy an image with Marketplace + terms](https://aka.ms/azuremarketplaceapideployment) for more details. + Not all Marketplace images support programmatic deployment, and support + is controlled by the image publisher. + + An example plan\_info object is defined below. + + ``` json + { + "plan_info": { + "plan_name": "rabbitmq", + "plan_product": "rabbitmq", + "plan_publisher": "bitnami" + } + } + ``` + + `plan_name` (string) - The plan name, required. `plan_product` (string) - + The plan product, required. `plan_publisher` (string) - The plan publisher, + required. `plan_promotion_code` (string) - Some images accept a promotion + code, optional. + + Images created from the Marketplace with `plan_info` **must** specify + `plan_info` whenever the image is deployed. The builder automatically adds + tags to the image to ensure this information is not lost. The following + tags are added. + + 1. PlanName + 2. PlanProduct + 3. PlanPublisher + 4. PlanPromotionCode + +- `os_type` (string) - If either Linux or Windows is specified Packer will + automatically configure authentication credentials for the provisioned + machine. For Linux this configures an SSH authorized key. For Windows + this configures a WinRM certificate. + +- `os_disk_size_gb` (int32) - Specify the size of the OS disk in GB + (gigabytes). Values of zero or less than zero are ignored. + +- `disk_additional_size` ([]int32) - The size(s) of any additional hard disks for the VM in gigabytes. If + this is not specified then the VM will only contain an OS disk. The + number of additional disks and maximum size of a disk depends on the + configuration of your VM. See + [Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/about-disks-and-vhds) + or + [Linux](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/about-disks-and-vhds) + for more information. + + For VHD builds the final artifacts will be named + `PREFIX-dataDisk-.UUID.vhd` and stored in the specified capture + container along side the OS disk. The additional disks are included in + the deployment template `PREFIX-vmTemplate.UUID`. + + For Managed build the final artifacts are included in the managed image. + The additional disk will have the same storage account type as the OS + disk, as specified with the `managed_image_storage_account_type` + setting. + +- `disk_caching_type` (string) - Specify the disk caching type. Valid values + are None, ReadOnly, and ReadWrite. The default value is ReadWrite. + +- `async_resourcegroup_delete` (bool) - If you want packer to delete the + temporary resource group asynchronously set this value. It's a boolean + value and defaults to false. Important Setting this true means that + your builds are faster, however any failed deletes are not reported. + \ No newline at end of file diff --git a/website/source/partials/builder/azure/arm/_Config-required.html.md b/website/source/partials/builder/azure/arm/_Config-required.html.md new file mode 100644 index 000000000..696875dac --- /dev/null +++ b/website/source/partials/builder/azure/arm/_Config-required.html.md @@ -0,0 +1,22 @@ + + +- `image_publisher` (string) - PublisherName for your base image. See + [documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/) + for details. + + CLI example `az vm image list-publishers --location westus` + +- `image_offer` (string) - Offer for your base image. See + [documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/) + for details. + + CLI example + `az vm image list-offers --location westus --publisher Canonical` + +- `image_sku` (string) - SKU for your base image. See + [documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/) + for details. + + CLI example + `az vm image list-skus --location westus --publisher Canonical --offer UbuntuServer` + \ No newline at end of file diff --git a/website/source/partials/builder/azure/arm/_PlanInformation-not-required.html.md b/website/source/partials/builder/azure/arm/_PlanInformation-not-required.html.md new file mode 100644 index 000000000..603e28349 --- /dev/null +++ b/website/source/partials/builder/azure/arm/_PlanInformation-not-required.html.md @@ -0,0 +1,6 @@ + + +- `plan_name` (string) - Plan Name +- `plan_product` (string) - Plan Product +- `plan_publisher` (string) - Plan Publisher +- `plan_promotion_code` (string) - Plan Promotion Code \ No newline at end of file diff --git a/website/source/partials/builder/azure/arm/_SharedImageGallery-not-required.html.md b/website/source/partials/builder/azure/arm/_SharedImageGallery-not-required.html.md new file mode 100644 index 000000000..c36a6bc9c --- /dev/null +++ b/website/source/partials/builder/azure/arm/_SharedImageGallery-not-required.html.md @@ -0,0 +1,12 @@ + + +- `subscription` (string) - Subscription +- `resource_group` (string) - Resource Group +- `gallery_name` (string) - Gallery Name +- `image_name` (string) - Image Name +- `image_version` (string) - Specify a specific version of an OS to boot from. + Defaults to latest. There may be a difference in versions available + across regions due to image synchronization latency. To ensure a consistent + version across regions set this value to one that is available in all + regions where you are deploying. + \ No newline at end of file diff --git a/website/source/partials/builder/cloudstack/_Config-not-required.html.md b/website/source/partials/builder/cloudstack/_Config-not-required.html.md new file mode 100644 index 000000000..bb040f059 --- /dev/null +++ b/website/source/partials/builder/cloudstack/_Config-not-required.html.md @@ -0,0 +1,97 @@ + + +- `async_timeout` (time.Duration) - The time duration to wait for async calls to + finish. Defaults to 30m. + +- `http_get_only` (bool) - Some cloud providers only allow HTTP GET calls + to their CloudStack API. If using such a provider, you need to set this to + true in order for the provider to only make GET calls and no POST calls. + +- `ssl_no_verify` (bool) - Set to true to skip SSL verification. + Defaults to false. + +- `cidr_list` ([]string) - List of CIDR's that will have access to the new + instance. This is needed in order for any provisioners to be able to + connect to the instance. Defaults to [ "0.0.0.0/0" ]. Only required when + use_local_ip_address is false. + +- `create_security_group` (bool) - If true a temporary security group + will be created which allows traffic towards the instance from the + cidr_list. This option will be ignored if security_groups is also + defined. Requires expunge set to true. Defaults to false. + +- `disk_offering` (string) - The name or ID of the disk offering used for the + instance. This option is only available (and also required) when using + source_iso. + +- `disk_size` (int64) - The size (in GB) of the root disk of the new + instance. This option is only available when using source_template. + +- `expunge` (bool) - Set to true to expunge the instance when it is + destroyed. Defaults to false. + +- `hypervisor` (string) - The target hypervisor (e.g. XenServer, KVM) for + the new template. This option is required when using source_iso. + +- `instance_name` (string) - The name of the instance. Defaults to + "packer-UUID" where UUID is dynamically generated. + +- `project` (string) - The name or ID of the project to deploy the instance + to. + +- `public_ip_address` (string) - The public IP address or it's ID used for + connecting any provisioners to. If not provided, a temporary public IP + address will be associated and released during the Packer run. + +- `public_port` (int) - The fixed port you want to configure in the port + forwarding rule. Set this attribute if you do not want to use the a random + public port. + +- `security_groups` ([]string) - A list of security group IDs or + names to associate the instance with. + +- `prevent_firewall_changes` (bool) - Set to true to prevent network + ACLs or firewall rules creation. Defaults to false. + +- `temporary_keypair_name` (string) - The name of the temporary SSH key pair + to generate. By default, Packer generates a name that looks like + packer_, where is a 36 character unique identifier. + +- `use_local_ip_address` (bool) - Set to true to indicate that the + provisioners should connect to the local IP address of the instance. + +- `user_data` (string) - User data to launch with the instance. This is a + template engine see User Data bellow for + more details. Packer will not automatically wait for a user script to + finish before shutting down the instance this must be handled in a + provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the instance. This file will be parsed as a template + engine see User Data bellow for more + details. + +- `template_name` (string) - The name of the new template. Defaults to + "packer-{{timestamp}}" where timestamp will be the current time. + +- `template_display_text` (string) - The display text of the new template. + Defaults to the template_name. + +- `template_featured` (bool) - Set to true to indicate that the template + is featured. Defaults to false. + +- `template_public` (bool) - Set to true to indicate that the template + is available for all accounts. Defaults to false. + +- `template_password_enabled` (bool) - Set to true to indicate the + template should be password enabled. Defaults to false. + +- `template_requires_hvm` (bool) - Set to true to indicate the template + requires hardware-assisted virtualization. Defaults to false. + +- `template_scalable` (bool) - Set to true to indicate that the template + contains tools to support dynamic scaling of VM cpu/memory. Defaults to + false. + +- `template_tag` (string) - Template Tag +- `tags` (map[string]string) - Tags \ No newline at end of file diff --git a/website/source/partials/builder/cloudstack/_Config-required.html.md b/website/source/partials/builder/cloudstack/_Config-required.html.md new file mode 100644 index 000000000..51076ee1e --- /dev/null +++ b/website/source/partials/builder/cloudstack/_Config-required.html.md @@ -0,0 +1,33 @@ + + +- `api_url` (string) - The CloudStack API endpoint we will connect to. It can + also be specified via environment variable CLOUDSTACK_API_URL, if set. + +- `api_key` (string) - The API key used to sign all API requests. It can also + be specified via environment variable CLOUDSTACK_API_KEY, if set. + +- `secret_key` (string) - The secret key used to sign all API requests. It + can also be specified via environment variable CLOUDSTACK_SECRET_KEY, if + set. + +- `network` (string) - The name or ID of the network to connect the instance + to. + +- `service_offering` (string) - The name or ID of the service offering used + for the instance. + +- `source_iso` (string) - The name or ID of an ISO that will be mounted + before booting the instance. This option is mutually exclusive with + source_template. When using source_iso, both disk_offering and + hypervisor are required. + +- `source_template` (string) - The name or ID of the template used as base + template for the instance. This option is mutually exclusive with + source_iso. + +- `zone` (string) - The name or ID of the zone where the instance will be + created. + +- `template_os` (string) - The name or ID of the template OS for the new + template that will be created. + \ No newline at end of file diff --git a/website/source/partials/builder/digitalocean/_Config-not-required.html.md b/website/source/partials/builder/digitalocean/_Config-not-required.html.md new file mode 100644 index 000000000..f80d2a215 --- /dev/null +++ b/website/source/partials/builder/digitalocean/_Config-not-required.html.md @@ -0,0 +1,38 @@ + + +- `api_url` (string) - Non standard api endpoint URL. Set this if you are + using a DigitalOcean API compatible service. It can also be specified via + environment variable DIGITALOCEAN_API_URL. + +- `private_networking` (bool) - Set to true to enable private networking + for the droplet being created. This defaults to false, or not enabled. + +- `monitoring` (bool) - Set to true to enable monitoring for the droplet + being created. This defaults to false, or not enabled. + +- `ipv6` (bool) - Set to true to enable ipv6 for the droplet being + created. This defaults to false, or not enabled. + +- `snapshot_name` (string) - The name of the resulting snapshot that will + appear in your account. Defaults to "packer-{{timestamp}}" (see + configuration templates for more info). + +- `snapshot_regions` ([]string) - The regions of the resulting + snapshot that will appear in your account. + +- `state_timeout` (time.Duration) - The time to wait, as a duration string, for a + droplet to enter a desired state (such as "active") before timing out. The + default state timeout is "6m". + +- `droplet_name` (string) - The name assigned to the droplet. DigitalOcean + sets the hostname of the machine to this value. + +- `user_data` (string) - User data to launch with the Droplet. Packer will + not automatically wait for a user script to finish before shutting down the + instance this must be handled in a provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the Droplet. + +- `tags` ([]string) - Tags to apply to the droplet when it is created + \ No newline at end of file diff --git a/website/source/partials/builder/digitalocean/_Config-required.html.md b/website/source/partials/builder/digitalocean/_Config-required.html.md new file mode 100644 index 000000000..88c758b67 --- /dev/null +++ b/website/source/partials/builder/digitalocean/_Config-required.html.md @@ -0,0 +1,21 @@ + + +- `api_token` (string) - The client TOKEN to use to access your account. It + can also be specified via environment variable DIGITALOCEAN_API_TOKEN, if + set. + +- `region` (string) - The name (or slug) of the region to launch the droplet + in. Consequently, this is the region where the snapshot will be available. + See + https://developers.digitalocean.com/documentation/v2/#list-all-regions + for the accepted region names/slugs. + +- `size` (string) - The name (or slug) of the droplet size to use. See + https://developers.digitalocean.com/documentation/v2/#list-all-sizes + for the accepted size names/slugs. + +- `image` (string) - The name (or slug) of the base image to use. This is the + image that will be used to launch a new droplet and provision it. See + https://developers.digitalocean.com/documentation/v2/#list-all-images + for details on how to get a list of the accepted image names/slugs. + \ No newline at end of file diff --git a/website/source/partials/builder/docker/_AwsAccessConfig-not-required.html.md b/website/source/partials/builder/docker/_AwsAccessConfig-not-required.html.md new file mode 100644 index 000000000..a07f57845 --- /dev/null +++ b/website/source/partials/builder/docker/_AwsAccessConfig-not-required.html.md @@ -0,0 +1,19 @@ + + +- `aws_access_key` (string) - The AWS access key used to communicate with + AWS. Learn how to set + this. + +- `aws_secret_key` (string) - The AWS secret key used to communicate with + AWS. Learn how to set + this. + +- `aws_token` (string) - The AWS access token to use. This is different from + the access key and secret key. If you're not sure what this is, then you + probably don't need it. This will also be read from the AWS_SESSION_TOKEN + environmental variable. + +- `aws_profile` (string) - The AWS shared credentials profile used to + communicate with AWS. Learn how to set + this. + \ No newline at end of file diff --git a/website/source/partials/builder/docker/_Config-not-required.html.md b/website/source/partials/builder/docker/_Config-not-required.html.md new file mode 100644 index 000000000..1c79159c6 --- /dev/null +++ b/website/source/partials/builder/docker/_Config-not-required.html.md @@ -0,0 +1,62 @@ + + +- `author` (string) - Set the author (e-mail) of a commit. + +- `changes` ([]string) - Dockerfile instructions to add to the commit. Example of instructions + are CMD, ENTRYPOINT, ENV, and EXPOSE. Example: [ "USER ubuntu", "WORKDIR + /app", "EXPOSE 8080" ] + +- `container_dir` (string) - The directory inside container to mount temp directory from host server + for work file provisioner. This defaults to c:/packer-files on windows + and /packer-files on other systems. + +- `exec_user` (string) - Username (UID) to run remote commands with. You can also set the group + name/ID if you want: (UID or UID:GID). You may need this if you get + permission errors trying to run the shell or other provisioners. + +- `privileged` (bool) - If true, run the docker container with the `--privileged` flag. This + defaults to false if not set. + +- `pull` (bool) - If true, the configured image will be pulled using `docker pull` prior + to use. Otherwise, it is assumed the image already exists and can be + used. This defaults to true if not set. + +- `run_command` ([]string) - An array of arguments to pass to docker run in order to run the + container. By default this is set to ["-d", "-i", "-t", + "--entrypoint=/bin/sh", "--", "{{.Image}}"] if you are using a linux + container, and ["-d", "-i", "-t", "--entrypoint=powershell", "--", + "{{.Image}}"] if you are running a windows container. {{.Image}} is a + template variable that corresponds to the image template option. Passing + the entrypoint option this way will make it the default entrypoint of + the resulting image, so running docker run -it --rm will start the + docker image from the /bin/sh shell interpreter; you could run a script + or another shell by running docker run -it --rm -c /bin/bash. If your + docker image embeds a binary intended to be run often, you should + consider changing the default entrypoint to point to it. + +- `volumes` (map[string]string) - A mapping of additional volumes to mount into this container. The key of + the object is the host path, the value is the container path. + +- `fix_upload_owner` (bool) - If true, files uploaded to the container will be owned by the user the + container is running as. If false, the owner will depend on the version + of docker installed in the system. Defaults to true. + +- `windows_container` (bool) - If "true", tells Packer that you are building a Windows container + running on a windows host. This is necessary for building Windows + containers, because our normal docker bindings do not work for them. + +- `login` (bool) - This is used to login to dockerhub to pull a private base container. For + pushing to dockerhub, see the docker post-processors + +- `login_password` (string) - The password to use to authenticate to login. + +- `login_server` (string) - The server address to login to. + +- `login_username` (string) - The username to use to authenticate to login. + +- `ecr_login` (bool) - Defaults to false. If true, the builder will login in order to pull the + image from Amazon EC2 Container Registry (ECR). The builder only logs in + for the duration of the pull. If true login_server is required and + login, login_username, and login_password will be ignored. For more + information see the section on ECR. + \ No newline at end of file diff --git a/website/source/partials/builder/docker/_Config-required.html.md b/website/source/partials/builder/docker/_Config-required.html.md new file mode 100644 index 000000000..a293f498f --- /dev/null +++ b/website/source/partials/builder/docker/_Config-required.html.md @@ -0,0 +1,15 @@ + + +- `commit` (bool) - If true, the container will be committed to an image rather than exported. + +- `discard` (bool) - Throw away the container when the build is complete. This is useful for + the [artifice + post-processor](https://www.packer.io/docs/post-processors/artifice.html). + +- `export_path` (string) - The path where the final container will be exported as a tar file. + +- `image` (string) - The base image for the Docker container that will be started. This image + will be pulled from the Docker registry if it doesn't already exist. + +- `message` (string) - Set a message for the commit. + \ No newline at end of file diff --git a/website/source/partials/builder/googlecompute/_Config-not-required.html.md b/website/source/partials/builder/googlecompute/_Config-not-required.html.md new file mode 100644 index 000000000..b1d5ccfe8 --- /dev/null +++ b/website/source/partials/builder/googlecompute/_Config-not-required.html.md @@ -0,0 +1,119 @@ + + +- `account_file` (string) - The JSON file containing your account + credentials. Not required if you run Packer on a GCE instance with a + service account. Instructions for creating the file or using service + accounts are above. + +- `accelerator_type` (string) - Full or partial URL of the guest accelerator + type. GPU accelerators can only be used with + "on_host_maintenance": "TERMINATE" option set. Example: + "projects/project_id/zones/europe-west1-b/acceleratorTypes/nvidia-tesla-k80" + +- `accelerator_count` (int64) - Number of guest accelerator cards to add to + the launched instance. + +- `address` (string) - The name of a pre-allocated static external IP + address. Note, must be the name and not the actual IP address. + +- `disable_default_service_account` (bool) - If true, the default service + account will not be used if service_account_email is not specified. Set + this value to true and omit service_account_email to provision a VM with + no service account. + +- `disk_name` (string) - The name of the disk, if unset the instance name + will be used. + +- `disk_size` (int64) - The size of the disk in GB. This defaults to 10, + which is 10GB. + +- `disk_type` (string) - Type of disk used to back your instance, like + pd-ssd or pd-standard. Defaults to pd-standard. + +- `image_name` (string) - The unique name of the resulting image. Defaults to + "packer-{{timestamp}}". + +- `image_description` (string) - The description of the resulting image. + +- `image_encryption_key` (*compute.CustomerEncryptionKey) - Image encryption key to apply to the created image. Possible values: + +- `image_family` (string) - The name of the image family to which the + resulting image belongs. You can create disks by specifying an image family + instead of a specific image name. The image family always returns its + latest image that is not deprecated. + +- `image_labels` (map[string]string) - Key/value pair labels to + apply to the created image. + +- `image_licenses` ([]string) - Licenses to apply to the created + image. + +- `instance_name` (string) - A name to give the launched instance. Beware + that this must be unique. Defaults to "packer-{{uuid}}". + +- `labels` (map[string]string) - Key/value pair labels to apply to + the launched instance. + +- `machine_type` (string) - The machine type. Defaults to "n1-standard-1". + +- `metadata` (map[string]string) - Metadata applied to the launched + instance. + +- `min_cpu_platform` (string) - A Minimum CPU Platform for VM Instance. + Availability and default CPU platforms vary across zones, based on the + hardware available in each GCP zone. + Details + +- `network` (string) - The Google Compute network id or URL to use for the + launched instance. Defaults to "default". If the value is not a URL, it + will be interpolated to + projects/((network_project_id))/global/networks/((network)). This value + is not required if a subnet is specified. + +- `network_project_id` (string) - The project ID for the network and + subnetwork to use for launched instance. Defaults to project_id. + +- `omit_external_ip` (bool) - If true, the instance will not have an + external IP. use_internal_ip must be true if this property is true. + +- `on_host_maintenance` (string) - Sets Host Maintenance Option. Valid + choices are MIGRATE and TERMINATE. Please see GCE Instance Scheduling + Options, + as not all machine_types support MIGRATE (i.e. machines with GPUs). If + preemptible is true this can only be TERMINATE. If preemptible is false, + it defaults to MIGRATE + +- `preemptible` (bool) - If true, launch a preemptible instance. + +- `state_timeout` (string) - The time to wait for instance state changes. + Defaults to "5m". + +- `region` (string) - The region in which to launch the instance. Defaults to + the region hosting the specified zone. + +- `scopes` ([]string) - The service account scopes for launched + instance. Defaults to: + +- `service_account_email` (string) - The service account to be used for + launched instance. Defaults to the project's default service account unless + disable_default_service_account is true. + +- `source_image_project_id` (string) - The project ID of the project + containing the source image. + +- `startup_script_file` (string) - The path to a startup script to run on the + VM from which the image will be made. + +- `subnetwork` (string) - The Google Compute subnetwork id or URL to use for + the launched instance. Only required if the network has been created with + custom subnetting. Note, the region of the subnetwork must match the + region or zone in which the VM is launched. If the value is not a URL, + it will be interpolated to + projects/((network_project_id))/regions/((region))/subnetworks/((subnetwork)) + +- `tags` ([]string) - Assign network tags to apply firewall rules to + VM instance. + +- `use_internal_ip` (bool) - If true, use the instance's internal IP + instead of its external IP during building. + \ No newline at end of file diff --git a/website/source/partials/builder/googlecompute/_Config-required.html.md b/website/source/partials/builder/googlecompute/_Config-required.html.md new file mode 100644 index 000000000..c2a1213a4 --- /dev/null +++ b/website/source/partials/builder/googlecompute/_Config-required.html.md @@ -0,0 +1,17 @@ + + +- `project_id` (string) - The project ID that will be used to launch + instances and store images. + +- `source_image` (string) - The source image to use to create the new image + from. You can also specify source_image_family instead. If both + source_image and source_image_family are specified, source_image + takes precedence. Example: "debian-8-jessie-v20161027" + +- `source_image_family` (string) - The source image family to use to create + the new image from. The image family always returns its latest image that + is not deprecated. Example: "debian-8". + +- `zone` (string) - The zone in which to launch the instance used to create + the image. Example: "us-central1-a" + \ No newline at end of file diff --git a/website/source/partials/builder/hyperone/_Config-not-required.html.md b/website/source/partials/builder/hyperone/_Config-not-required.html.md new file mode 100644 index 000000000..a392fed18 --- /dev/null +++ b/website/source/partials/builder/hyperone/_Config-not-required.html.md @@ -0,0 +1,61 @@ + + +- `api_url` (string) - Custom API endpoint URL, compatible with HyperOne. + It can also be specified via environment variable HYPERONE_API_URL. + +- `token_login` (string) - Login (an e-mail) on HyperOne platform. Set this + if you want to fetch the token by SSH authentication. + +- `state_timeout` (time.Duration) - Timeout for waiting on the API to complete + a request. Defaults to 5m. + +- `image_name` (string) - The name of the resulting image. Defaults to + "packer-{{timestamp}}" + (see configuration templates for more info). + +- `image_description` (string) - The description of the resulting image. + +- `image_tags` (map[string]interface{}) - Key/value pair tags to + add to the created image. + +- `image_service` (string) - The service of the resulting image. + +- `vm_name` (string) - The name of the created server. + +- `vm_tags` (map[string]interface{}) - Key/value pair tags to + add to the created server. + +- `disk_name` (string) - The name of the created disk. + +- `disk_type` (string) - The type of the created disk. Defaults to ssd. + +- `network` (string) - The ID of the network to attach to the created server. + +- `private_ip` (string) - The ID of the private IP within chosen network + that should be assigned to the created server. + +- `public_ip` (string) - The ID of the public IP that should be assigned to + the created server. If network is chosen, the public IP will be associated + with server's private IP. + +- `public_netadp_service` (string) - Custom service of public network adapter. + Can be useful when using custom api_url. Defaults to public. + +- `chroot_disk` (bool) - Chroot Disk +- `chroot_disk_size` (float32) - Chroot Disk Size +- `chroot_disk_type` (string) - Chroot Disk Type +- `chroot_mount_path` (string) - Chroot Mount Path +- `chroot_mounts` ([][]string) - Chroot Mounts +- `chroot_copy_files` ([]string) - Chroot Copy Files +- `chroot_command_wrapper` (string) - Chroot Command Wrapper +- `mount_options` ([]string) - Mount Options +- `mount_partition` (string) - Mount Partition +- `pre_mount_commands` ([]string) - Pre Mount Commands +- `post_mount_commands` ([]string) - Post Mount Commands +- `ssh_keys` ([]string) - List of SSH keys by name or id to be added + to the server on launch. + +- `user_data` (string) - User data to launch with the server. Packer will not + automatically wait for a user script to finish before shutting down the + instance, this must be handled in a provisioner. + \ No newline at end of file diff --git a/website/source/partials/builder/hyperone/_Config-required.html.md b/website/source/partials/builder/hyperone/_Config-required.html.md new file mode 100644 index 000000000..f5c6f4c2d --- /dev/null +++ b/website/source/partials/builder/hyperone/_Config-required.html.md @@ -0,0 +1,16 @@ + + +- `token` (string) - The authentication token used to access your account. + This can be either a session token or a service account token. + If not defined, the builder will attempt to find it in the following order: + +- `project` (string) - The id or name of the project. This field is required + only if using session tokens. It should be skipped when using service + account authentication. + +- `source_image` (string) - ID or name of the image to launch server from. + +- `vm_type` (string) - ID or name of the type this server should be created with. + +- `disk_size` (float32) - Size of the created disk, in GiB. + \ No newline at end of file diff --git a/website/source/partials/builder/hyperv/common/_OutputConfig-not-required.html.md b/website/source/partials/builder/hyperv/common/_OutputConfig-not-required.html.md new file mode 100644 index 000000000..89654a159 --- /dev/null +++ b/website/source/partials/builder/hyperv/common/_OutputConfig-not-required.html.md @@ -0,0 +1,10 @@ + + +- `output_directory` (string) - This setting specifies the directory that + artifacts from the build, such as the virtual machine files and disks, + will be output to. The path to the directory may be relative or + absolute. If relative, the path is relative to the working directory + packer is executed from. This directory must not exist or, if + created, must be empty prior to running the builder. By default this is + "output-BUILDNAME" where "BUILDNAME" is the name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/hyperv/common/_ShutdownConfig-not-required.html.md b/website/source/partials/builder/hyperv/common/_ShutdownConfig-not-required.html.md new file mode 100644 index 000000000..89d00bcdc --- /dev/null +++ b/website/source/partials/builder/hyperv/common/_ShutdownConfig-not-required.html.md @@ -0,0 +1,16 @@ + + +- `shutdown_command` (string) - The command to use to gracefully shut down + the machine once all provisioning is complete. By default this is an + empty string, which tells Packer to just forcefully shut down the + machine. This setting can be safely omitted if for example, a shutdown + command to gracefully halt the machine is configured inside a + provisioning script. If one or more scripts require a reboot it is + suggested to leave this blank (since reboots may fail) and instead + specify the final shutdown command in your last script. + +- `shutdown_timeout` (string) - The amount of time to wait after executing + the shutdown_command for the virtual machine to actually shut down. + If the machine doesn't shut down in this time it is considered an + error. By default, the time out is "5m" (five minutes). + \ No newline at end of file diff --git a/website/source/partials/builder/hyperv/iso/_Config-not-required.html.md b/website/source/partials/builder/hyperv/iso/_Config-not-required.html.md new file mode 100644 index 000000000..6d2288478 --- /dev/null +++ b/website/source/partials/builder/hyperv/iso/_Config-not-required.html.md @@ -0,0 +1,128 @@ + + +- `disk_size` (uint) - The size, in megabytes, of the hard disk to create + for the VM. By default, this is 40 GB. + +- `disk_block_size` (uint) - The block size of the VHD to be created. + Recommended disk block size for Linux hyper-v guests is 1 MiB. This + defaults to "32 MiB". + +- `memory` (uint) - The amount, in megabytes, of RAM to assign to the + VM. By default, this is 1 GB. + +- `secondary_iso_images` ([]string) - A list of ISO paths to + attach to a VM when it is booted. This is most useful for unattended + Windows installs, which look for an Autounattend.xml file on removable + media. By default, no secondary ISO will be attached. + +- `guest_additions_mode` (string) - If set to attach then attach and + mount the ISO image specified in guest_additions_path. If set to + none then guest additions are not attached and mounted; This is the + default. + +- `guest_additions_path` (string) - The path to the ISO image for guest + additions. + +- `vm_name` (string) - This is the name of the new virtual machine, + without the file extension. By default this is "packer-BUILDNAME", + where "BUILDNAME" is the name of the build. + +- `switch_name` (string) - The name of the switch to connect the virtual + machine to. By default, leaving this value unset will cause Packer to + try and determine the switch to use by looking for an external switch + that is up and running. + +- `switch_vlan_id` (string) - This is the VLAN of the virtual switch's + network card. By default none is set. If none is set then a VLAN is not + set on the switch's network card. If this value is set it should match + the VLAN specified in by vlan_id. + +- `mac_address` (string) - This allows a specific MAC address to be used on + the default virtual network card. The MAC address must be a string with + no delimiters, for example "0000deadbeef". + +- `vlan_id` (string) - This is the VLAN of the virtual machine's network + card for the new virtual machine. By default none is set. If none is set + then VLANs are not set on the virtual machine's network card. + +- `cpus` (uint) - The number of CPUs the virtual machine should use. If + this isn't specified, the default is 1 CPU. + +- `generation` (uint) - The Hyper-V generation for the virtual machine. By + default, this is 1. Generation 2 Hyper-V virtual machines do not support + floppy drives. In this scenario use secondary_iso_images instead. Hard + drives and DVD drives will also be SCSI and not IDE. + +- `enable_mac_spoofing` (bool) - If true enable MAC address spoofing + for the virtual machine. This defaults to false. + +- `use_legacy_network_adapter` (bool) - If true use a legacy network adapter as the NIC. + This defaults to false. A legacy network adapter is fully emulated NIC, and is thus + supported by various exotic operating systems, but this emulation requires + additional overhead and should only be used if absolutely necessary. + +- `enable_dynamic_memory` (bool) - If true enable dynamic memory for + the virtual machine. This defaults to false. + +- `enable_secure_boot` (bool) - If true enable secure boot for the + virtual machine. This defaults to false. See secure_boot_template + below for additional settings. + +- `secure_boot_template` (string) - The secure boot template to be + configured. Valid values are "MicrosoftWindows" (Windows) or + "MicrosoftUEFICertificateAuthority" (Linux). This only takes effect if + enable_secure_boot is set to "true". This defaults to "MicrosoftWindows". + +- `enable_virtualization_extensions` (bool) - If true enable + virtualization extensions for the virtual machine. This defaults to + false. For nested virtualization you need to enable MAC spoofing, + disable dynamic memory and have at least 4GB of RAM assigned to the + virtual machine. + +- `temp_path` (string) - The location under which Packer will create a + directory to house all the VM files and folders during the build. + By default %TEMP% is used which, for most systems, will evaluate to + %USERPROFILE%/AppData/Local/Temp. + +- `configuration_version` (string) - This allows you to set the vm version when + calling New-VM to generate the vm. + +- `keep_registered` (bool) - If "true", Packer will not delete the VM from + The Hyper-V manager. + +- `communicator` (string) - Communicator +- `disk_additional_size` ([]uint) - The size or sizes of any + additional hard disks for the VM in megabytes. If this is not specified + then the VM will only contain a primary hard disk. Additional drives + will be attached to the SCSI interface only. The builder uses + expandable rather than fixed-size virtual hard disks, so the actual + file representing the disk will not use the full size unless it is + full. + +- `skip_compaction` (bool) - If true skip compacting the hard disk for + the virtual machine when exporting. This defaults to false. + +- `skip_export` (bool) - If true Packer will skip the export of the VM. + If you are interested only in the VHD/VHDX files, you can enable this + option. The resulting VHD/VHDX file will be output to + /Virtual Hard Disks. By default this option is false + and Packer will export the VM to output_directory. + +- `differencing_disk` (bool) - If true enables differencing disks. Only + the changes will be written to the new disk. This is especially useful if + your source is a VHD/VHDX. This defaults to false. + +- `use_fixed_vhd_format` (bool) - If true, creates the boot disk on the + virtual machine as a fixed VHD format disk. The default is false, which + creates a dynamic VHDX format disk. This option requires setting + generation to 1, skip_compaction to true, and + differencing_disk to false. Additionally, any value entered for + disk_block_size will be ignored. The most likely use case for this + option is outputing a disk that is in the format required for upload to + Azure. + +- `headless` (bool) - Packer defaults to building Hyper-V virtual + machines by launching a GUI that shows the console of the machine being + built. When this value is set to true, the machine will start without a + console. + \ No newline at end of file diff --git a/website/source/partials/builder/hyperv/vmcx/_Config-not-required.html.md b/website/source/partials/builder/hyperv/vmcx/_Config-not-required.html.md new file mode 100644 index 000000000..42fbfaad2 --- /dev/null +++ b/website/source/partials/builder/hyperv/vmcx/_Config-not-required.html.md @@ -0,0 +1,117 @@ + + +- `memory` (uint) - The amount, in megabytes, of RAM to assign to the + VM. By default, this is 1 GB. + +- `secondary_iso_images` ([]string) - A list of ISO paths to + attach to a VM when it is booted. This is most useful for unattended + Windows installs, which look for an Autounattend.xml file on removable + media. By default, no secondary ISO will be attached. + +- `guest_additions_mode` (string) - If set to attach then attach and + mount the ISO image specified in guest_additions_path. If set to + none then guest additions are not attached and mounted; This is the + default. + +- `guest_additions_path` (string) - The path to the ISO image for guest + additions. + +- `clone_from_vmcx_path` (string) - This is the path to a directory containing an exported virtual machine. + +- `clone_from_vm_name` (string) - This is the name of the virtual machine to clone from. + +- `clone_from_snapshot_name` (string) - The name of a snapshot in the + source machine to use as a starting point for the clone. If the value + given is an empty string, the last snapshot present in the source will + be chosen as the starting point for the new VM. + +- `clone_all_snapshots` (bool) - If set to true all snapshots + present in the source machine will be copied when the machine is + cloned. The final result of the build will be an exported virtual + machine that contains all the snapshots of the parent. + +- `vm_name` (string) - This is the name of the new virtual machine, + without the file extension. By default this is "packer-BUILDNAME", + where "BUILDNAME" is the name of the build. + +- `differencing_disk` (bool) - If true enables differencing disks. Only + the changes will be written to the new disk. This is especially useful if + your source is a VHD/VHDX. This defaults to false. + +- `switch_name` (string) - The name of the switch to connect the virtual + machine to. By default, leaving this value unset will cause Packer to + try and determine the switch to use by looking for an external switch + that is up and running. + +- `copy_in_compare` (bool) - When cloning a vm to build from, we run a powershell + Compare-VM command, which, depending on your version of Windows, may need + the "Copy" flag to be set to true or false. Defaults to "false". Command: + +- `switch_vlan_id` (string) - This is the VLAN of the virtual switch's + network card. By default none is set. If none is set then a VLAN is not + set on the switch's network card. If this value is set it should match + the VLAN specified in by vlan_id. + +- `mac_address` (string) - This allows a specific MAC address to be used on + the default virtual network card. The MAC address must be a string with + no delimiters, for example "0000deadbeef". + +- `vlan_id` (string) - This is the VLAN of the virtual machine's network + card for the new virtual machine. By default none is set. If none is set + then VLANs are not set on the virtual machine's network card. + +- `cpus` (uint) - The number of CPUs the virtual machine should use. If + this isn't specified, the default is 1 CPU. + +- `generation` (uint) - The Hyper-V generation for the virtual machine. By + default, this is 1. Generation 2 Hyper-V virtual machines do not support + floppy drives. In this scenario use secondary_iso_images instead. Hard + drives and DVD drives will also be SCSI and not IDE. + +- `enable_mac_spoofing` (bool) - If true enable MAC address spoofing + for the virtual machine. This defaults to false. + +- `enable_dynamic_memory` (bool) - If true enable dynamic memory for + the virtual machine. This defaults to false. + +- `enable_secure_boot` (bool) - If true enable secure boot for the + virtual machine. This defaults to false. See secure_boot_template + below for additional settings. + +- `secure_boot_template` (string) - The secure boot template to be + configured. Valid values are "MicrosoftWindows" (Windows) or + "MicrosoftUEFICertificateAuthority" (Linux). This only takes effect if + enable_secure_boot is set to "true". This defaults to "MicrosoftWindows". + +- `enable_virtualization_extensions` (bool) - If true enable + virtualization extensions for the virtual machine. This defaults to + false. For nested virtualization you need to enable MAC spoofing, + disable dynamic memory and have at least 4GB of RAM assigned to the + virtual machine. + +- `temp_path` (string) - The location under which Packer will create a + directory to house all the VM files and folders during the build. + By default %TEMP% is used which, for most systems, will evaluate to + %USERPROFILE%/AppData/Local/Temp. + +- `configuration_version` (string) - This allows you to set the vm version when + calling New-VM to generate the vm. + +- `keep_registered` (bool) - If "true", Packer will not delete the VM from + The Hyper-V manager. + +- `communicator` (string) - Communicator +- `skip_compaction` (bool) - If true skip compacting the hard disk for + the virtual machine when exporting. This defaults to false. + +- `skip_export` (bool) - If true Packer will skip the export of the VM. + If you are interested only in the VHD/VHDX files, you can enable this + option. The resulting VHD/VHDX file will be output to + /Virtual Hard Disks. By default this option is false + and Packer will export the VM to output_directory. + +- `headless` (bool) - Packer defaults to building Hyper-V virtual + machines by launching a GUI that shows the console of the machine being + built. When this value is set to true, the machine will start without a + console. + \ No newline at end of file diff --git a/website/source/partials/builder/lxc/_Config-not-required.html.md b/website/source/partials/builder/lxc/_Config-not-required.html.md new file mode 100644 index 000000000..d54f4a36d --- /dev/null +++ b/website/source/partials/builder/lxc/_Config-not-required.html.md @@ -0,0 +1,41 @@ + + +- `output_directory` (string) - The directory in which to save the exported + tar.gz. Defaults to output- in the current directory. + +- `container_name` (string) - The name of the LXC container. Usually stored + in /var/lib/lxc/containers/. Defaults to + packer-. + +- `command_wrapper` (string) - Allows you to specify a wrapper command, such + as ssh so you can execute packer builds on a remote host. Defaults to + Empty. + +- `init_timeout` (string) - The timeout in seconds to wait for the the + container to start. Defaults to 20 seconds. + +- `create_options` ([]string) - Options to pass to lxc-create. For + instance, you can specify a custom LXC container configuration file with + ["-f", "/path/to/lxc.conf"]. Defaults to []. See man 1 lxc-create for + available options. + +- `start_options` ([]string) - Options to pass to lxc-start. For + instance, you can override parameters from the LXC container configuration + file via ["--define", "KEY=VALUE"]. Defaults to []. See + man 1 lxc-start for available options. + +- `attach_options` ([]string) - Options to pass to lxc-attach. For + instance, you can prevent the container from inheriting the host machine's + environment by specifying ["--clear-env"]. Defaults to []. See + man 1 lxc-attach for available options. + +- `template_parameters` ([]string) - Options to pass to the given + lxc-template command, usually located in + /usr/share/lxc/templates/lxc-. Note: This gets passed as + ARGV to the template command. Ensure you have an array of strings, as a + single string with spaces probably won't work. Defaults to []. + +- `target_runlevel` (int) - The minimum run level to wait for the + container to reach. Note some distributions (Ubuntu) simulate run levels + and may report 5 rather than 3. + \ No newline at end of file diff --git a/website/source/partials/builder/lxc/_Config-required.html.md b/website/source/partials/builder/lxc/_Config-required.html.md new file mode 100644 index 000000000..46ef7e120 --- /dev/null +++ b/website/source/partials/builder/lxc/_Config-required.html.md @@ -0,0 +1,9 @@ + + +- `config_file` (string) - The path to the lxc configuration file. + +- `template_name` (string) - The LXC template name to use. + +- `template_environment_vars` ([]string) - Environmental variables to + use to build the template with. + \ No newline at end of file diff --git a/website/source/partials/builder/lxd/_Config-not-required.html.md b/website/source/partials/builder/lxd/_Config-not-required.html.md new file mode 100644 index 000000000..d0e837e73 --- /dev/null +++ b/website/source/partials/builder/lxd/_Config-not-required.html.md @@ -0,0 +1,22 @@ + + +- `output_image` (string) - The name of the output artifact. Defaults to + name. + +- `container_name` (string) - Container Name +- `command_wrapper` (string) - Lets you prefix all builder commands, such as + with ssh for a remote build host. Defaults to "". + +- `profile` (string) - Profile +- `init_sleep` (string) - The number of seconds to sleep between launching + the LXD instance and provisioning it; defaults to 3 seconds. + +- `publish_properties` (map[string]string) - Pass key values to the publish + step to be set as properties on the output image. This is most helpful to + set the description, but can be used to set anything needed. See + https://stgraber.org/2016/03/30/lxd-2-0-image-management-512/ + for more properties. + +- `launch_config` (map[string]string) - List of key/value pairs you wish to + pass to lxc launch via --config. Defaults to empty. + \ No newline at end of file diff --git a/website/source/partials/builder/lxd/_Config-required.html.md b/website/source/partials/builder/lxd/_Config-required.html.md new file mode 100644 index 000000000..c99958ad1 --- /dev/null +++ b/website/source/partials/builder/lxd/_Config-required.html.md @@ -0,0 +1,6 @@ + + +- `image` (string) - The source image to use when creating the build + container. This can be a (local or remote) image (name or fingerprint). + E.G. my-base-image, ubuntu-daily:x, 08fababf6f27, ... + \ No newline at end of file diff --git a/website/source/partials/builder/ncloud/_Config-not-required.html.md b/website/source/partials/builder/ncloud/_Config-not-required.html.md new file mode 100644 index 000000000..b0e934442 --- /dev/null +++ b/website/source/partials/builder/ncloud/_Config-not-required.html.md @@ -0,0 +1,32 @@ + + +- `access_key` (string) - Access Key +- `secret_key` (string) - Secret Key +- `member_server_image_no` (string) - Previous image code. If there is an + image previously created, it can be used to create a new image. + (server_image_product_code is required if not specified) + +- `server_image_name` (string) - Name of an image to create. + +- `server_image_description` (string) - Description of an image to create. + +- `user_data` (string) - User data to apply when launching the instance. Note + that you need to be careful about escaping characters due to the templates + being JSON. It is often more convenient to use user_data_file, instead. + Packer will not automatically wait for a user script to finish before + shutting down the instance this must be handled in a provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the instance. + +- `block_storage_size` (int) - You can add block storage ranging from 10 + GB to 2000 GB, in increments of 10 GB. + +- `region` (string) - Name of the region where you want to create an image. + (default: Korea) + +- `access_control_group_configuration_no` (string) - This is used to allow + winrm access when you create a Windows server. An ACG that specifies an + access source (0.0.0.0/0) and allowed port (5985) must be created in + advance. + \ No newline at end of file diff --git a/website/source/partials/builder/ncloud/_Config-required.html.md b/website/source/partials/builder/ncloud/_Config-required.html.md new file mode 100644 index 000000000..a30e0cf7d --- /dev/null +++ b/website/source/partials/builder/ncloud/_Config-required.html.md @@ -0,0 +1,7 @@ + + +- `server_image_product_code` (string) - Product code of an image to create. + (member_server_image_no is required if not specified) + +- `server_product_code` (string) - Product (spec) code to create. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_AccessConfig-not-required.html.md b/website/source/partials/builder/openstack/_AccessConfig-not-required.html.md new file mode 100644 index 000000000..09caad53a --- /dev/null +++ b/website/source/partials/builder/openstack/_AccessConfig-not-required.html.md @@ -0,0 +1,57 @@ + + +- `user_id` (string) - User ID +- `tenant_id` (string) - The tenant ID or name to boot the + instance into. Some OpenStack installations require this. If not specified, + Packer will use the environment variable OS_TENANT_NAME or + OS_TENANT_ID, if set. Tenant is also called Project in later versions of + OpenStack. + +- `tenant_name` (string) - Tenant Name +- `domain_id` (string) - Domain ID +- `domain_name` (string) - The Domain name or ID you are + authenticating with. OpenStack installations require this if identity v3 is + used. Packer will use the environment variable OS_DOMAIN_NAME or + OS_DOMAIN_ID, if set. + +- `insecure` (bool) - Whether or not the connection to OpenStack can be + done over an insecure connection. By default this is false. + +- `region` (string) - The name of the region, such as "DFW", in which to + launch the server to create the image. If not specified, Packer will use + the environment variable OS_REGION_NAME, if set. + +- `endpoint_type` (string) - The endpoint type to use. Can be any of + "internal", "internalURL", "admin", "adminURL", "public", and "publicURL". + By default this is "public". + +- `cacert` (string) - Custom CA certificate file path. If omitted the + OS_CACERT environment variable can be used. + +- `cert` (string) - Client certificate file path for SSL client + authentication. If omitted the OS_CERT environment variable can be used. + +- `key` (string) - Client private key file path for SSL client + authentication. If omitted the OS_KEY environment variable can be used. + +- `token` (string) - the token (id) to use with token based authorization. + Packer will use the environment variable OS_TOKEN, if set. + +- `application_credential_name` (string) - The application credential name to + use with application credential based authorization. Packer will use the + environment variable OS_APPLICATION_CREDENTIAL_NAME, if set. + +- `application_credential_id` (string) - The application credential id to + use with application credential based authorization. Packer will use the + environment variable OS_APPLICATION_CREDENTIAL_ID, if set. + +- `application_credential_secret` (string) - The application credential secret + to use with application credential based authorization. Packer will use the + environment variable OS_APPLICATION_CREDENTIAL_SECRET, if set. + +- `cloud` (string) - An entry in a clouds.yaml file. See the OpenStack + os-client-config + documentation + for more information about clouds.yaml files. If omitted, the OS_CLOUD + environment variable is used. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_AccessConfig-required.html.md b/website/source/partials/builder/openstack/_AccessConfig-required.html.md new file mode 100644 index 000000000..e4db20d5f --- /dev/null +++ b/website/source/partials/builder/openstack/_AccessConfig-required.html.md @@ -0,0 +1,17 @@ + + +- `username` (string) - The username or id used to connect to + the OpenStack service. If not specified, Packer will use the environment + variable OS_USERNAME or OS_USERID, if set. This is not required if + using access token or application credential instead of password, or if using + cloud.yaml. + +- `password` (string) - The password used to connect to the OpenStack + service. If not specified, Packer will use the environment variables + OS_PASSWORD, if set. This is not required if using access token or + application credential instead of password, or if using cloud.yaml. + +- `identity_endpoint` (string) - The URL to the OpenStack Identity service. + If not specified, Packer will use the environment variables OS_AUTH_URL, + if set. This is not required if using cloud.yaml. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_ImageConfig-not-required.html.md b/website/source/partials/builder/openstack/_ImageConfig-not-required.html.md new file mode 100644 index 000000000..574f0f782 --- /dev/null +++ b/website/source/partials/builder/openstack/_ImageConfig-not-required.html.md @@ -0,0 +1,18 @@ + + +- `metadata` (map[string]string) - Glance metadata that will be + applied to the image. + +- `image_visibility` (imageservice.ImageVisibility) - One of "public", "private", "shared", or + "community". + +- `image_members` ([]string) - List of members to add to the image + after creation. An image member is usually a project (also called the + "tenant") with whom the image is shared. + +- `image_disk_format` (string) - Disk format of the resulting image. This + option works if use_blockstorage_volume is true. + +- `image_tags` ([]string) - List of tags to add to the image after + creation. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_ImageConfig-required.html.md b/website/source/partials/builder/openstack/_ImageConfig-required.html.md new file mode 100644 index 000000000..880a58d48 --- /dev/null +++ b/website/source/partials/builder/openstack/_ImageConfig-required.html.md @@ -0,0 +1,4 @@ + + +- `image_name` (string) - The name of the resulting image. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_ImageFilter-not-required.html.md b/website/source/partials/builder/openstack/_ImageFilter-not-required.html.md new file mode 100644 index 000000000..fdff0a3c9 --- /dev/null +++ b/website/source/partials/builder/openstack/_ImageFilter-not-required.html.md @@ -0,0 +1,11 @@ + + +- `filters` (ImageFilterOptions) - filters used to select a source_image. + NOTE: This will fail unless exactly one image is returned, or + most_recent is set to true. Of the filters described in + ImageService, the + following are valid: + +- `most_recent` (bool) - Selects the newest created image when true. + This is most useful for selecting a daily distro build. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_ImageFilterOptions-not-required.html.md b/website/source/partials/builder/openstack/_ImageFilterOptions-not-required.html.md new file mode 100644 index 000000000..74129b434 --- /dev/null +++ b/website/source/partials/builder/openstack/_ImageFilterOptions-not-required.html.md @@ -0,0 +1,7 @@ + + +- `name` (string) - Name +- `owner` (string) - Owner +- `tags` ([]string) - Tags +- `visibility` (string) - Visibility +- `properties` (map[string]string) - Properties \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_RunConfig-not-required.html.md b/website/source/partials/builder/openstack/_RunConfig-not-required.html.md new file mode 100644 index 000000000..3d2cd4ed6 --- /dev/null +++ b/website/source/partials/builder/openstack/_RunConfig-not-required.html.md @@ -0,0 +1,85 @@ + + +- `availability_zone` (string) - The availability zone to launch the server + in. If this isn't specified, the default enforced by your OpenStack cluster + will be used. This may be required for some OpenStack clusters. + +- `rackconnect_wait` (bool) - For rackspace, whether or not to wait for + Rackconnect to assign the machine an IP address before connecting via SSH. + Defaults to false. + +- `floating_ip_network` (string) - The ID or name of an external network that + can be used for creation of a new floating IP. + +- `floating_ip` (string) - A specific floating IP to assign to this instance. + +- `reuse_ips` (bool) - Whether or not to attempt to reuse existing + unassigned floating ips in the project before allocating a new one. Note + that it is not possible to safely do this concurrently, so if you are + running multiple openstack builds concurrently, or if other processes are + assigning and using floating IPs in the same openstack project while packer + is running, you should not set this to true. Defaults to false. + +- `security_groups` ([]string) - A list of security groups by name to + add to this instance. + +- `networks` ([]string) - A list of networks by UUID to attach to + this instance. + +- `ports` ([]string) - A list of ports by UUID to attach to this + instance. + +- `user_data` (string) - User data to apply when launching the instance. Note + that you need to be careful about escaping characters due to the templates + being JSON. It is often more convenient to use user_data_file, instead. + Packer will not automatically wait for a user script to finish before + shutting down the instance this must be handled in a provisioner. + +- `user_data_file` (string) - Path to a file that will be used for the user + data when launching the instance. + +- `instance_name` (string) - Name that is applied to the server instance + created by Packer. If this isn't specified, the default is same as + image_name. + +- `instance_metadata` (map[string]string) - Metadata that is + applied to the server instance created by Packer. Also called server + properties in some documentation. The strings have a max size of 255 bytes + each. + +- `force_delete` (bool) - Whether to force the OpenStack instance to be + forcefully deleted. This is useful for environments that have + reclaim / soft deletion enabled. By default this is false. + +- `config_drive` (bool) - Whether or not nova should use ConfigDrive for + cloud-init metadata. + +- `floating_ip_pool` (string) - Deprecated use floating_ip_network + instead. + +- `use_blockstorage_volume` (bool) - Use Block Storage service volume for + the instance root volume instead of Compute service local volume (default). + +- `volume_name` (string) - Name of the Block Storage service volume. If this + isn't specified, random string will be used. + +- `volume_type` (string) - Type of the Block Storage service volume. If this + isn't specified, the default enforced by your OpenStack cluster will be + used. + +- `volume_size` (int) - Size of the Block Storage service volume in GB. If + this isn't specified, it is set to source image min disk value (if set) or + calculated from the source image bytes size. Note that in some cases this + needs to be specified, if use_blockstorage_volume is true. + +- `volume_availability_zone` (string) - Availability zone of the Block + Storage service volume. If omitted, Compute instance availability zone will + be used. If both of Compute instance and Block Storage volume availability + zones aren't specified, the default enforced by your OpenStack cluster will + be used. + +- `openstack_provider` (string) - Not really used, but here for BC + +- `use_floating_ip` (bool) - Deprecated use floating_ip or + floating_ip_pool instead. + \ No newline at end of file diff --git a/website/source/partials/builder/openstack/_RunConfig-required.html.md b/website/source/partials/builder/openstack/_RunConfig-required.html.md new file mode 100644 index 000000000..6cb62ae93 --- /dev/null +++ b/website/source/partials/builder/openstack/_RunConfig-required.html.md @@ -0,0 +1,19 @@ + + +- `source_image` (string) - The ID or full URL to the base image to use. This + is the image that will be used to launch a new server and provision it. + Unless you specify completely custom SSH settings, the source image must + have cloud-init installed so that the keypair gets assigned properly. + +- `source_image_name` (string) - The name of the base image to use. This is + an alternative way of providing source_image and only either of them can + be specified. + +- `source_image_filter` (ImageFilter) - The search filters for determining the base + image to use. This is an alternative way of providing source_image and + only one of these methods can be used. source_image will override the + filters. + +- `flavor` (string) - The ID, name, or full URL for the desired flavor for + the server to be created. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_HWConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_HWConfig-not-required.html.md new file mode 100644 index 000000000..4bf3f44c4 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_HWConfig-not-required.html.md @@ -0,0 +1,14 @@ + + +- `cpus` (int) - The number of cpus to use for building the VM. + Defaults to 1. + +- `memory` (int) - The amount of memory to use for building the VM in + megabytes. Defaults to 512 megabytes. + +- `sound` (bool) - Specifies whether to enable the sound device when + building the VM. Defaults to false. + +- `usb` (bool) - Specifies whether to enable the USB bus when building + the VM. Defaults to false. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_OutputConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_OutputConfig-not-required.html.md new file mode 100644 index 000000000..6798f4470 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_OutputConfig-not-required.html.md @@ -0,0 +1,9 @@ + + +- `output_directory` (string) - This is the path to the directory where the + resulting virtual machine will be created. This may be relative or absolute. + If relative, the path is relative to the working directory when packer + is executed. This directory must not exist or be empty prior to running + the builder. By default this is "output-BUILDNAME" where "BUILDNAME" is the + name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_PrlctlConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_PrlctlConfig-not-required.html.md new file mode 100644 index 000000000..176c2b101 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_PrlctlConfig-not-required.html.md @@ -0,0 +1,13 @@ + + +- `prlctl` ([][]string) - Custom prlctl commands to execute + in order to further customize the virtual machine being created. The value + of this is an array of commands to execute. The commands are executed in the + order defined in the template. For each command, the command is defined + itself as an array of strings, where each string represents a single + argument on the command-line to prlctl (but excluding prlctl itself). + Each arg is treated as a configuration + template, where the Name + variable is replaced with the VM name. More details on how to use prlctl + are below. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_PrlctlPostConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_PrlctlPostConfig-not-required.html.md new file mode 100644 index 000000000..2a7420e3b --- /dev/null +++ b/website/source/partials/builder/parallels/common/_PrlctlPostConfig-not-required.html.md @@ -0,0 +1,6 @@ + + +- `prlctl_post` ([][]string) - Identical to prlctl, except + that it is run after the virtual machine is shutdown, and before the virtual + machine is exported. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_PrlctlVersionConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_PrlctlVersionConfig-not-required.html.md new file mode 100644 index 000000000..9425ede14 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_PrlctlVersionConfig-not-required.html.md @@ -0,0 +1,8 @@ + + +- `prlctl_version_file` (string) - The path within the virtual machine to + upload a file that contains the prlctl version that was used to create + the machine. This information can be useful for provisioning. By default + this is ".prlctl_version", which will generally upload it into the + home directory. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_ShutdownConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_ShutdownConfig-not-required.html.md new file mode 100644 index 000000000..73f702371 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_ShutdownConfig-not-required.html.md @@ -0,0 +1,11 @@ + + +- `shutdown_command` (string) - The command to use to gracefully shut down the + machine once all the provisioning is done. By default this is an empty + string, which tells Packer to just forcefully shut down the machine. + +- `shutdown_timeout` (string) - The amount of time to wait after executing the + shutdown_command for the virtual machine to actually shut down. If it + doesn't shut down in this time, it is an error. By default, the timeout is + "5m", or five minutes. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_ToolsConfig-not-required.html.md b/website/source/partials/builder/parallels/common/_ToolsConfig-not-required.html.md new file mode 100644 index 000000000..f51d66b1d --- /dev/null +++ b/website/source/partials/builder/parallels/common/_ToolsConfig-not-required.html.md @@ -0,0 +1,17 @@ + + +- `parallels_tools_guest_path` (string) - The path in the virtual machine to + upload Parallels Tools. This only takes effect if parallels_tools_mode + is "upload". This is a configuration + template that has a single + valid variable: Flavor, which will be the value of + parallels_tools_flavor. By default this is "prl-tools-{{.Flavor}}.iso" + which should upload into the login directory of the user. + +- `parallels_tools_mode` (string) - The method by which Parallels Tools are + made available to the guest for installation. Valid options are "upload", + "attach", or "disable". If the mode is "attach" the Parallels Tools ISO will + be attached as a CD device to the virtual machine. If the mode is "upload" + the Parallels Tools ISO will be uploaded to the path specified by + parallels_tools_guest_path. The default value is "upload". + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/common/_ToolsConfig-required.html.md b/website/source/partials/builder/parallels/common/_ToolsConfig-required.html.md new file mode 100644 index 000000000..1e65061c2 --- /dev/null +++ b/website/source/partials/builder/parallels/common/_ToolsConfig-required.html.md @@ -0,0 +1,7 @@ + + +- `parallels_tools_flavor` (string) - The flavor of the Parallels Tools ISO to + install into the VM. Valid values are "win", "lin", "mac", "os2" + and "other". This can be omitted only if parallels_tools_mode + is "disable". + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/iso/_Config-not-required.html.md b/website/source/partials/builder/parallels/iso/_Config-not-required.html.md new file mode 100644 index 000000000..ae85e5c05 --- /dev/null +++ b/website/source/partials/builder/parallels/iso/_Config-not-required.html.md @@ -0,0 +1,40 @@ + + +- `disk_size` (uint) - The size, in megabytes, of the hard disk to create + for the VM. By default, this is 40000 (about 40 GB). + +- `disk_type` (string) - The type for image file based virtual disk drives, + defaults to expand. Valid options are expand (expanding disk) that the + image file is small initially and grows in size as you add data to it, and + plain (plain disk) that the image file has a fixed size from the moment it + is created (i.e the space is allocated for the full drive). Plain disks + perform faster than expanding disks. skip_compaction will be set to true + automatically for plain disks. + +- `guest_os_type` (string) - The guest OS type being installed. By default + this is "other", but you can get dramatic performance improvements by + setting this to the proper value. To view all available values for this run + prlctl create x --distribution list. Setting the correct value hints to + Parallels Desktop how to optimize the virtual hardware to work best with + that operating system. + +- `hard_drive_interface` (string) - The type of controller that the hard + drives are attached to, defaults to "sata". Valid options are "sata", "ide", + and "scsi". + +- `host_interfaces` ([]string) - A list of which interfaces on the + host should be searched for a IP address. The first IP address found on one + of these will be used as {{ .HTTPIP }} in the boot_command. Defaults to + ["en0", "en1", "en2", "en3", "en4", "en5", "en6", "en7", "en8", "en9", + "ppp0", "ppp1", "ppp2"]. + +- `skip_compaction` (bool) - Virtual disk image is compacted at the end of + the build process using prl_disk_tool utility (except for the case that + disk_type is set to plain). In certain rare cases, this might corrupt + the resulting disk image. If you find this to be the case, you can disable + compaction using this configuration value. + +- `vm_name` (string) - This is the name of the PVM directory for the new + virtual machine, without the file extension. By default this is + "packer-BUILDNAME", where "BUILDNAME" is the name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/pvm/_Config-not-required.html.md b/website/source/partials/builder/parallels/pvm/_Config-not-required.html.md new file mode 100644 index 000000000..ff5d3e4d1 --- /dev/null +++ b/website/source/partials/builder/parallels/pvm/_Config-not-required.html.md @@ -0,0 +1,16 @@ + + +- `skip_compaction` (bool) - Virtual disk image is compacted at the end of + the build process using prl_disk_tool utility (except for the case that + disk_type is set to plain). In certain rare cases, this might corrupt + the resulting disk image. If you find this to be the case, you can disable + compaction using this configuration value. + +- `vm_name` (string) - This is the name of the PVM directory for the new + virtual machine, without the file extension. By default this is + "packer-BUILDNAME", where "BUILDNAME" is the name of the build. + +- `reassign_mac` (bool) - If this is "false" the MAC address of the first + NIC will reused when imported else a new MAC address will be generated + by Parallels. Defaults to "false". + \ No newline at end of file diff --git a/website/source/partials/builder/parallels/pvm/_Config-required.html.md b/website/source/partials/builder/parallels/pvm/_Config-required.html.md new file mode 100644 index 000000000..58e68b704 --- /dev/null +++ b/website/source/partials/builder/parallels/pvm/_Config-required.html.md @@ -0,0 +1,5 @@ + + +- `source_path` (string) - The path to a PVM directory that acts as the source + of this build. + \ No newline at end of file diff --git a/website/source/partials/builder/qemu/_Config-not-required.html.md b/website/source/partials/builder/qemu/_Config-not-required.html.md new file mode 100644 index 000000000..f70a9979e --- /dev/null +++ b/website/source/partials/builder/qemu/_Config-not-required.html.md @@ -0,0 +1,140 @@ + + +- `iso_skip_cache` (bool) - Use iso from provided url. Qemu must support + curl block device. This defaults to false. + +- `accelerator` (string) - The accelerator type to use when running the VM. + This may be none, kvm, tcg, hax, hvf, whpx, or xen. The appropriate + software must have already been installed on your build machine to use the + accelerator you specified. When no accelerator is specified, Packer will try + to use kvm if it is available but will default to tcg otherwise. + +- `cpus` (int) - The number of cpus to use when building the VM. + The default is 1 CPU. + +- `disk_interface` (string) - The interface to use for the disk. Allowed + values include any of ide, scsi, virtio or virtio-scsi*. Note + also that any boot commands or kickstart type scripts must have proper + adjustments for resulting device names. The Qemu builder uses virtio by + default. + +- `disk_size` (uint) - The size, in megabytes, of the hard disk to create + for the VM. By default, this is 40960 (40 GB). + +- `disk_cache` (string) - The cache mode to use for disk. Allowed values + include any of writethrough, writeback, none, unsafe + or directsync. By default, this is set to writeback. + +- `disk_discard` (string) - The discard mode to use for disk. Allowed values + include any of unmap or ignore. By default, this is set to ignore. + +- `disk_detect_zeroes` (string) - The detect-zeroes mode to use for disk. + Allowed values include any of unmap, on or off. Defaults to off. + When the value is "off" we don't set the flag in the qemu command, so that + Packer still works with old versions of QEMU that don't have this option. + +- `skip_compaction` (bool) - Packer compacts the QCOW2 image using + qemu-img convert. Set this option to true to disable compacting. + Defaults to false. + +- `disk_compression` (bool) - Apply compression to the QCOW2 disk file + using qemu-img convert. Defaults to false. + +- `format` (string) - Either qcow2 or raw, this specifies the output + format of the virtual machine image. This defaults to qcow2. + +- `headless` (bool) - Packer defaults to building QEMU virtual machines by + launching a GUI that shows the console of the machine being built. When this + value is set to true, the machine will start without a console. + +- `disk_image` (bool) - Packer defaults to building from an ISO file, this + parameter controls whether the ISO URL supplied is actually a bootable + QEMU image. When this value is set to true, the machine will either clone + the source or use it as a backing file (if use_backing_file is true); + then, it will resize the image according to disk_size and boot it. + +- `use_backing_file` (bool) - Only applicable when disk_image is true + and format is qcow2, set this option to true to create a new QCOW2 + file that uses the file located at iso_url as a backing file. The new file + will only contain blocks that have changed compared to the backing file, so + enabling this option can significantly reduce disk usage. + +- `machine_type` (string) - The type of machine emulation to use. Run your + qemu binary with the flags -machine help to list available types for + your system. This defaults to pc. + +- `memory` (int) - The amount of memory to use when building the VM + in megabytes. This defaults to 512 megabytes. + +- `net_device` (string) - The driver to use for the network interface. Allowed + values ne2k_pci, i82551, i82557b, i82559er, rtl8139, e1000, + pcnet, virtio, virtio-net, virtio-net-pci, usb-net, i82559a, + i82559b, i82559c, i82550, i82562, i82557a, i82557c, i82801, + vmxnet3, i82558a or i82558b. The Qemu builder uses virtio-net by + default. + +- `output_directory` (string) - This is the path to the directory where the + resulting virtual machine will be created. This may be relative or absolute. + If relative, the path is relative to the working directory when packer + is executed. This directory must not exist or be empty prior to running + the builder. By default this is output-BUILDNAME where "BUILDNAME" is the + name of the build. + +- `qemuargs` ([][]string) - Allows complete control over the + qemu command line (though not, at this time, qemu-img). Each array of + strings makes up a command line switch that overrides matching default + switch/value pairs. Any value specified as an empty string is ignored. All + values after the switch are concatenated with no separator. + +- `qemu_binary` (string) - The name of the Qemu binary to look for. This + defaults to qemu-system-x86_64, but may need to be changed for + some platforms. For example qemu-kvm, or qemu-system-i386 may be a + better choice for some systems. + +- `shutdown_command` (string) - The command to use to gracefully shut down the + machine once all the provisioning is done. By default this is an empty + string, which tells Packer to just forcefully shut down the machine unless a + shutdown command takes place inside script so this may safely be omitted. It + is important to add a shutdown_command. By default Packer halts the virtual + machine and the file system may not be sync'd. Thus, changes made in a + provisioner might not be saved. If one or more scripts require a reboot it is + suggested to leave this blank since reboots may fail and specify the final + shutdown command in your last script. + +- `ssh_host_port_min` (int) - The minimum and + maximum port to use for the SSH port on the host machine which is forwarded + to the SSH port on the guest machine. Because Packer often runs in parallel, + Packer will choose a randomly available port in this range to use as the + host port. By default this is 2222 to 4444. + +- `ssh_host_port_max` (int) - SSH Host Port Max +- `use_default_display` (bool) - If true, do not pass a -display option + to qemu, allowing it to choose the default. This may be needed when running + under macOS, and getting errors about sdl not being available. + +- `vnc_bind_address` (string) - The IP address that should be + binded to for VNC. By default packer will use 127.0.0.1 for this. If you + wish to bind to all interfaces use 0.0.0.0. + +- `vnc_port_min` (int) - The minimum and maximum port + to use for VNC access to the virtual machine. The builder uses VNC to type + the initial boot_command. Because Packer generally runs in parallel, + Packer uses a randomly chosen port in this range that appears available. By + default this is 5900 to 6000. The minimum and maximum ports are inclusive. + +- `vnc_port_max` (int) - VNC Port Max +- `vm_name` (string) - This is the name of the image (QCOW2 or IMG) file for + the new virtual machine. By default this is packer-BUILDNAME, where + "BUILDNAME" is the name of the build. Currently, no file extension will be + used unless it is specified in this option. + +- `ssh_wait_timeout` (time.Duration) - These are deprecated, but we keep them around for BC + TODO(@mitchellh): remove + +- `run_once` (bool) - TODO(mitchellh): deprecate + +- `shutdown_timeout` (string) - The amount of time to wait after executing the + shutdown_command for the virtual machine to actually shut down. If it + doesn't shut down in this time, it is an error. By default, the timeout is + 5m or five minutes. + \ No newline at end of file diff --git a/website/source/partials/builder/scaleway/_Config-not-required.html.md b/website/source/partials/builder/scaleway/_Config-not-required.html.md new file mode 100644 index 000000000..251639fdd --- /dev/null +++ b/website/source/partials/builder/scaleway/_Config-not-required.html.md @@ -0,0 +1,17 @@ + + +- `snapshot_name` (string) - The name of the resulting snapshot that will + appear in your account. Default packer-TIMESTAMP + +- `image_name` (string) - The name of the resulting image that will appear in + your account. Default packer-TIMESTAMP + +- `server_name` (string) - The name assigned to the server. Default + packer-UUID + +- `bootscript` (string) - The id of an existing bootscript to use when + booting the server. + +- `boottype` (string) - The type of boot, can be either local or + bootscript, Default bootscript + \ No newline at end of file diff --git a/website/source/partials/builder/scaleway/_Config-required.html.md b/website/source/partials/builder/scaleway/_Config-required.html.md new file mode 100644 index 000000000..0650c8529 --- /dev/null +++ b/website/source/partials/builder/scaleway/_Config-required.html.md @@ -0,0 +1,29 @@ + + +- `api_token` (string) - The token to use to authenticate with your account. + It can also be specified via environment variable SCALEWAY_API_TOKEN. You + can see and generate tokens in the "Credentials" + section of the control panel. + +- `organization_id` (string) - The organization id to use to identify your + organization. It can also be specified via environment variable + SCALEWAY_ORGANIZATION. Your organization id is available in the + "Account" section of the + control panel. + Previously named: api_access_key with environment variable: SCALEWAY_API_ACCESS_KEY + +- `region` (string) - The name of the region to launch the server in (par1 + or ams1). Consequently, this is the region where the snapshot will be + available. + +- `image` (string) - The UUID of the base image to use. This is the image + that will be used to launch a new server and provision it. See + the images list + get the complete list of the accepted image UUID. + +- `commercial_type` (string) - The name of the server commercial type: + ARM64-128GB, ARM64-16GB, ARM64-2GB, ARM64-32GB, ARM64-4GB, + ARM64-64GB, ARM64-8GB, C1, C2L, C2M, C2S, START1-L, + START1-M, START1-S, START1-XS, X64-120GB, X64-15GB, X64-30GB, + X64-60GB + \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-not-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-not-required.html.md new file mode 100644 index 000000000..e6a643f42 --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-not-required.html.md @@ -0,0 +1,4 @@ + + +- `skip_region_validation` (bool) - Do not check region and zone when validate. + \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-required.html.md new file mode 100644 index 000000000..4f0164c62 --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudAccessConfig-required.html.md @@ -0,0 +1,16 @@ + + +- `secret_id` (string) - Tencentcloud secret id. You should set it directly, + or set the TENCENTCLOUD_ACCESS_KEY environment variable. + +- `secret_key` (string) - Tencentcloud secret key. You should set it directly, + or set the TENCENTCLOUD_SECRET_KEY environment variable. + +- `region` (string) - The region where your cvm will be launch. You should + reference Region and Zone + for parameter taking. + +- `zone` (string) - The zone where your cvm will be launch. You should + reference Region and Zone + for parameter taking. + \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-not-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-not-required.html.md new file mode 100644 index 000000000..f04670148 --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-not-required.html.md @@ -0,0 +1,21 @@ + + +- `image_description` (string) - Image description. + +- `reboot` (bool) - Whether shutdown cvm to create Image. Default value is + false. + +- `force_poweroff` (bool) - Whether to force power off cvm when create image. + Default value is false. + +- `sysprep` (bool) - Whether enable Sysprep during creating windows image. + +- `image_force_delete` (bool) - Image Force Delete +- `image_copy_regions` ([]string) - regions that will be copied to after + your image created. + +- `image_share_accounts` ([]string) - accounts that will be shared to + after your image created. + +- `skip_region_validation` (bool) - Do not check region and zone when validate. + \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-required.html.md new file mode 100644 index 000000000..5020f004c --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudImageConfig-required.html.md @@ -0,0 +1,6 @@ + + +- `image_name` (string) - The name you want to create your customize image, + it should be composed of no more than 20 characters, of letters, numbers + or minus sign. + \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-not-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-not-required.html.md new file mode 100644 index 000000000..d07449f6c --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-not-required.html.md @@ -0,0 +1,44 @@ + + +- `associate_public_ip_address` (bool) - Whether allocate public ip to your cvm. + Default value is false. + +- `instance_name` (string) - Instance name. + +- `disk_type` (string) - Root disk type your cvm will be launched by. you could + reference Disk Type + for parameter taking. + +- `disk_size` (int64) - Root disk size your cvm will be launched by. values range(in GB): + +- `vpc_id` (string) - Specify vpc your cvm will be launched by. + +- `vpc_name` (string) - Specify vpc name you will create. if vpc_id is not set, packer will + create a vpc for you named this parameter. + +- `vpc_ip` (string) - Vpc Ip +- `subnet_id` (string) - Specify subnet your cvm will be launched by. + +- `subnet_name` (string) - Specify subnet name you will create. if subnet_id is not set, packer will + create a subnet for you named this parameter. + +- `cidr_block` (string) - Specify cider block of the vpc you will create if vpc_id not set + +- `subnect_cidr_block` (string) - Specify cider block of the subnet you will create if + subnet_id not set + +- `internet_charge_type` (string) - Internet Charge Type +- `internet_max_bandwidth_out` (int64) - Max bandwidth out your cvm will be launched by(in MB). + values can be set between 1 ~ 100. + +- `security_group_id` (string) - Specify security group your cvm will be launched by. + +- `security_group_name` (string) - Specify security name you will create if security_group_id not set. + +- `user_data` (string) - userdata. + +- `user_data_file` (string) - userdata file. + +- `host_name` (string) - host name. + +- `ssh_private_ip` (bool) - SSH Private Ip \ No newline at end of file diff --git a/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-required.html.md b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-required.html.md new file mode 100644 index 000000000..99abbbaef --- /dev/null +++ b/website/source/partials/builder/tencentcloud/cvm/_TencentCloudRunConfig-required.html.md @@ -0,0 +1,9 @@ + + +- `source_image_id` (string) - The base image id of Image you want to create + your customized image from. + +- `instance_type` (string) - The instance type your cvm will be launched by. + You should reference Instace Type + for parameter taking. + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_AccessConfig-not-required.html.md b/website/source/partials/builder/triton/_AccessConfig-not-required.html.md new file mode 100644 index 000000000..dd99fbc01 --- /dev/null +++ b/website/source/partials/builder/triton/_AccessConfig-not-required.html.md @@ -0,0 +1,20 @@ + + +- `triton_url` (string) - The URL of the Triton cloud API to use. If omitted + it will default to the us-sw-1 region of the Joyent Public cloud. If you + are using your own private Triton installation you will have to supply the + URL of the cloud API of your own Triton installation. + +- `triton_user` (string) - The username of a user who has access to your + Triton account. + +- `triton_key_material` (string) - Path to the file in which the private key + of triton_key_id is stored. For example /home/soandso/.ssh/id_rsa. If + this is not specified, the SSH agent is used to sign requests with the + triton_key_id specified. + +- `insecure_skip_tls_verify` (bool) - secure_skip_tls_verify - (bool) This allows skipping TLS verification + of the Triton endpoint. It is useful when connecting to a temporary Triton + installation such as Cloud-On-A-Laptop which does not generally use a + certificate signed by a trusted root CA. The default is false. + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_AccessConfig-required.html.md b/website/source/partials/builder/triton/_AccessConfig-required.html.md new file mode 100644 index 000000000..403b64ed9 --- /dev/null +++ b/website/source/partials/builder/triton/_AccessConfig-required.html.md @@ -0,0 +1,10 @@ + + +- `triton_account` (string) - The username of the Triton account to use when + using the Triton Cloud API. + +- `triton_key_id` (string) - The fingerprint of the public key of the SSH key + pair to use for authentication with the Triton Cloud API. If + triton_key_material is not set, it is assumed that the SSH agent has the + private key corresponding to this key ID loaded. + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_MachineImageFilter-not-required.html.md b/website/source/partials/builder/triton/_MachineImageFilter-not-required.html.md new file mode 100644 index 000000000..e60e43734 --- /dev/null +++ b/website/source/partials/builder/triton/_MachineImageFilter-not-required.html.md @@ -0,0 +1,3 @@ + + +- `most_recent` (bool) - Most Recent \ No newline at end of file diff --git a/website/source/partials/builder/triton/_SourceMachineConfig-not-required.html.md b/website/source/partials/builder/triton/_SourceMachineConfig-not-required.html.md new file mode 100644 index 000000000..a3e6d821e --- /dev/null +++ b/website/source/partials/builder/triton/_SourceMachineConfig-not-required.html.md @@ -0,0 +1,39 @@ + + +- `source_machine_name` (string) - Name of the VM used for building the + image. Does not affect (and does not have to be the same) as the name for a + VM instance running this image. Maximum 512 characters but should in + practice be much shorter (think between 5 and 20 characters). For example + mysql-64-server-image-builder. When omitted defaults to + packer-builder-[image_name]. + +- `source_machine_networks` ([]string) - The UUID's of Triton + networks added to the source machine used for creating the image. For + example if any of the provisioners which are run need Internet access you + will need to add the UUID's of the appropriate networks here. If this is + not specified, instances will be placed into the default Triton public and + internal networks. + +- `source_machine_metadata` (map[string]string) - Triton metadata + applied to the VM used to create the image. Metadata can be used to pass + configuration information to the VM without the need for networking. See + Using the metadata + API in the + Joyent documentation for more information. This can for example be used to + set the user-script metadata key to have Triton start a user supplied + script after the VM has booted. + +- `source_machine_tags` (map[string]string) - Tags applied to the + VM used to create the image. + +- `source_machine_firewall_enabled` (bool) - Whether or not the firewall + of the VM used to create an image of is enabled. The Triton firewall only + filters inbound traffic to the VM. All outbound traffic is always allowed. + Currently this builder does not provide an interface to add specific + firewall rules. Unless you have a global rule defined in Triton which + allows SSH traffic enabling the firewall will interfere with the SSH + provisioner. The default is false. + +- `source_machine_image_filter` (MachineImageFilter) - Filters used to populate the + source_machine_image field. Example: + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_SourceMachineConfig-required.html.md b/website/source/partials/builder/triton/_SourceMachineConfig-required.html.md new file mode 100644 index 000000000..2855845c7 --- /dev/null +++ b/website/source/partials/builder/triton/_SourceMachineConfig-required.html.md @@ -0,0 +1,19 @@ + + +- `source_machine_package` (string) - The Triton package to use while + building the image. Does not affect (and does not have to be the same) as + the package which will be used for a VM instance running this image. On the + Joyent public cloud this could for example be g3-standard-0.5-smartos. + +- `source_machine_image` (string) - The UUID of the image to base the new + image on. Triton supports multiple types of images, called 'brands' in + Triton / Joyent lingo, for contains and VM's. See the chapter Containers + and virtual machines in + the Joyent Triton documentation for detailed information. The following + brands are currently supported by this builder:joyent andkvm. The + choice of base image automatically decides the brand. On the Joyent public + cloud a valid source_machine_image could for example be + 70e3ae72-96b6-11e6-9056-9737fd4d0764 for version 16.3.1 of the 64bit + SmartOS base image (a 'joyent' brand image). source_machine_image_filter + can be used to populate this UUID. + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_TargetImageConfig-not-required.html.md b/website/source/partials/builder/triton/_TargetImageConfig-not-required.html.md new file mode 100644 index 000000000..c66a0fef6 --- /dev/null +++ b/website/source/partials/builder/triton/_TargetImageConfig-not-required.html.md @@ -0,0 +1,17 @@ + + +- `image_description` (string) - Description of the image. Maximum 512 + characters. + +- `image_homepage` (string) - URL of the homepage where users can find + information about the image. Maximum 128 characters. + +- `image_eula_url` (string) - URL of the End User License Agreement (EULA) + for the image. Maximum 128 characters. + +- `image_acls` ([]string) - The UUID's of the users which will have + access to this image. When omitted only the owner (the Triton user whose + credentials are used) will have access to the image. + +- `image_tags` (map[string]string) - Tag applied to the image. + \ No newline at end of file diff --git a/website/source/partials/builder/triton/_TargetImageConfig-required.html.md b/website/source/partials/builder/triton/_TargetImageConfig-required.html.md new file mode 100644 index 000000000..def119892 --- /dev/null +++ b/website/source/partials/builder/triton/_TargetImageConfig-required.html.md @@ -0,0 +1,12 @@ + + +- `image_name` (string) - The name the finished image in Triton will be + assigned. Maximum 512 characters but should in practice be much shorter + (think between 5 and 20 characters). For example postgresql-95-server for + an image used as a PostgreSQL 9.5 server. + +- `image_version` (string) - The version string for this image. Maximum 128 + characters. Any string will do but a format of Major.Minor.Patch is + strongly advised by Joyent. See Semantic Versioning + for more information on the Major.Minor.Patch versioning format. + \ No newline at end of file diff --git a/website/source/partials/builder/vagrant/_Config-not-required.html.md b/website/source/partials/builder/vagrant/_Config-not-required.html.md new file mode 100644 index 000000000..7611edca6 --- /dev/null +++ b/website/source/partials/builder/vagrant/_Config-not-required.html.md @@ -0,0 +1,69 @@ + + +- `output_dir` (string) - The directory to create that will contain your output box. We always + create this directory and run from inside of it to prevent Vagrant init + collisions. If unset, it will be set to packer- plus your buildname. + +- `checksum` (string) - The checksum for the .box file. The type of the checksum is specified + with checksum_type, documented below. + +- `checksum_type` (string) - The type of the checksum specified in checksum. Valid values are none, + md5, sha1, sha256, or sha512. Although the checksum will not be verified + when checksum_type is set to "none", this is not recommended since OVA + files can be very large and corruption does happen from time to time. + +- `box_name` (string) - if your source_box is a boxfile that we need to add to Vagrant, this is + the name to give it. If left blank, will default to "packer_" plus your + buildname. + +- `provider` (string) - The vagrant provider. + This parameter is required when source_path have more than one provider, + or when using vagrant-cloud post-processor. Defaults to unset. + +- `communicator` (string) - Communicator +- `vagrantfile_template` (string) - What vagrantfile to use + +- `teardown_method` (string) - Whether to halt, suspend, or destroy the box when the build has + completed. Defaults to "halt" + +- `box_version` (string) - What box version to use when initializing Vagrant. + +- `template` (string) - a path to a golang template for a vagrantfile. Our default template can + be found here. So far the only template variables available to you are + {{ .BoxName }} and {{ .SyncedFolder }}, which correspond to the Packer + options box_name and synced_folder. + +- `synced_folder` (string) - Synced Folder +- `skip_add` (bool) - Don't call "vagrant add" to add the box to your local environment; this + is necessary if you want to launch a box that is already added to your + vagrant environment. + +- `add_cacert` (string) - Equivalent to setting the + --cacert + option in vagrant add; defaults to unset. + +- `add_capath` (string) - Equivalent to setting the + --capath option + in vagrant add; defaults to unset. + +- `add_cert` (string) - Equivalent to setting the + --cert option in + vagrant add; defaults to unset. + +- `add_clean` (bool) - Equivalent to setting the + --clean flag in + vagrant add; defaults to unset. + +- `add_force` (bool) - Equivalent to setting the + --force flag in + vagrant add; defaults to unset. + +- `add_insecure` (bool) - Equivalent to setting the + --insecure flag in + vagrant add; defaults to unset. + +- `skip_package` (bool) - if true, Packer will not call vagrant package to + package your base box into its own standalone .box file. + +- `output_vagrantfile` (string) - Output Vagrantfile +- `package_include` ([]string) - Package Include \ No newline at end of file diff --git a/website/source/partials/builder/vagrant/_Config-required.html.md b/website/source/partials/builder/vagrant/_Config-required.html.md new file mode 100644 index 000000000..a811f3ad0 --- /dev/null +++ b/website/source/partials/builder/vagrant/_Config-required.html.md @@ -0,0 +1,17 @@ + + +- `source_path` (string) - URL of the vagrant box to use, or the name of the vagrant box. + hashicorp/precise64, ./mylocalbox.box and https://example.com/my-box.box + are all valid source boxes. If your source is a .box file, whether + locally or from a URL like the latter example above, you will also need + to provide a box_name. This option is required, unless you set + global_id. You may only set one or the other, not both. + +- `global_id` (string) - the global id of a Vagrant box already added to Vagrant on your system. + You can find the global id of your Vagrant boxes using the command + vagrant global-status; your global_id will be a 7-digit number and + letter comination that you'll find in the leftmost column of the + global-status output. If you choose to use global_id instead of + source_box, Packer will skip the Vagrant initialize and add steps, and + simply launch the box directly using the global id. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_ExportConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_ExportConfig-not-required.html.md new file mode 100644 index 000000000..9fe3971b2 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_ExportConfig-not-required.html.md @@ -0,0 +1,5 @@ + + +- `format` (string) - Either ovf or ova, this specifies the output format + of the exported virtual machine. This defaults to ovf. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_ExportOpts-not-required.html.md b/website/source/partials/builder/virtualbox/common/_ExportOpts-not-required.html.md new file mode 100644 index 000000000..dec0c855a --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_ExportOpts-not-required.html.md @@ -0,0 +1,8 @@ + + +- `export_opts` ([]string) - Additional options to pass to the + VBoxManage + export. This + can be useful for passing product information to include in the resulting + appliance file. Packer JSON configuration file example: + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_GuestAdditionsConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_GuestAdditionsConfig-not-required.html.md new file mode 100644 index 000000000..8ee1d7a57 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_GuestAdditionsConfig-not-required.html.md @@ -0,0 +1,11 @@ + + +- `communicator` (string) - Communicator +- `guest_additions_mode` (string) - The method by which guest additions are + made available to the guest for installation. Valid options are upload, + attach, or disable. If the mode is attach the guest additions ISO will + be attached as a CD device to the virtual machine. If the mode is upload + the guest additions ISO will be uploaded to the path specified by + guest_additions_path. The default value is upload. If disable is used, + guest additions won't be downloaded, either. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_HWConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_HWConfig-not-required.html.md new file mode 100644 index 000000000..058663be1 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_HWConfig-not-required.html.md @@ -0,0 +1,15 @@ + + +- `cpus` (int) - The number of cpus to use for building the VM. + Defaults to 1. + +- `memory` (int) - The amount of memory to use for building the VM + in megabytes. Defaults to 512 megabytes. + +- `sound` (string) - Defaults to none. The type of audio device to use for + sound when building the VM. Some of the options that are available are + dsound, oss, alsa, pulse, coreaudio, null. + +- `usb` (bool) - Specifies whether or not to enable the USB bus when + building the VM. Defaults to false. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_OutputConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_OutputConfig-not-required.html.md new file mode 100644 index 000000000..5794e6900 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_OutputConfig-not-required.html.md @@ -0,0 +1,9 @@ + + +- `output_directory` (string) - This is the path to the directory where the + resulting virtual machine will be created. This may be relative or absolute. + If relative, the path is relative to the working directory when packer + is executed. This directory must not exist or be empty prior to running + the builder. By default this is output-BUILDNAME where "BUILDNAME" is the + name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_RunConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_RunConfig-not-required.html.md new file mode 100644 index 000000000..57715b17d --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_RunConfig-not-required.html.md @@ -0,0 +1,17 @@ + + +- `headless` (bool) - Packer defaults to building VirtualBox virtual + machines by launching a GUI that shows the console of the machine + being built. When this value is set to true, the machine will start + without a console. + +- `vrdp_bind_address` (string) - The IP address that should be + binded to for VRDP. By default packer will use 127.0.0.1 for this. If you + wish to bind to all interfaces use 0.0.0.0. + +- `vrdp_port_min` (int) - The minimum and maximum port + to use for VRDP access to the virtual machine. Packer uses a randomly chosen + port in this range that appears available. By default this is 5900 to + 6000. The minimum and maximum ports are inclusive. + +- `vrdp_port_max` (int) - VRDP Port Max \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_SSHConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_SSHConfig-not-required.html.md new file mode 100644 index 000000000..0db417ad5 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_SSHConfig-not-required.html.md @@ -0,0 +1,16 @@ + + +- `ssh_host_port_min` (int) - The minimum and + maximum port to use for the SSH port on the host machine which is forwarded + to the SSH port on the guest machine. Because Packer often runs in parallel, + Packer will choose a randomly available port in this range to use as the + host port. By default this is 2222 to 4444. + +- `ssh_host_port_max` (int) - SSH Host Port Max +- `ssh_skip_nat_mapping` (bool) - Defaults to false. When enabled, Packer + does not setup forwarded port mapping for SSH requests and uses ssh_port + on the host to communicate to the virtual machine. + +- `ssh_wait_timeout` (time.Duration) - These are deprecated, but we keep them around for BC + TODO(@mitchellh): remove + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_ShutdownConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_ShutdownConfig-not-required.html.md new file mode 100644 index 000000000..aba3347fe --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_ShutdownConfig-not-required.html.md @@ -0,0 +1,20 @@ + + +- `shutdown_command` (string) - The command to use to gracefully shut down the + machine once all the provisioning is done. By default this is an empty + string, which tells Packer to just forcefully shut down the machine unless a + shutdown command takes place inside script so this may safely be omitted. If + one or more scripts require a reboot it is suggested to leave this blank + since reboots may fail and specify the final shutdown command in your + last script. + +- `shutdown_timeout` (string) - The amount of time to wait after executing the + shutdown_command for the virtual machine to actually shut down. If it + doesn't shut down in this time, it is an error. By default, the timeout is + 5m or five minutes. + +- `post_shutdown_delay` (string) - The amount of time to wait after shutting + down the virtual machine. If you get the error + Error removing floppy controller, you might need to set this to 5m + or so. By default, the delay is 0s or disabled. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_VBoxBundleConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_VBoxBundleConfig-not-required.html.md new file mode 100644 index 000000000..8a759809f --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_VBoxBundleConfig-not-required.html.md @@ -0,0 +1,7 @@ + + +- `bundle_iso` (bool) - Defaults to false. When enabled, Packer includes + any attached ISO disc devices into the final virtual machine. Useful for + some live distributions that require installation media to continue to be + attached after installation. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_VBoxManageConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_VBoxManageConfig-not-required.html.md new file mode 100644 index 000000000..970f5281a --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_VBoxManageConfig-not-required.html.md @@ -0,0 +1,13 @@ + + +- `vboxmanage` ([][]string) - Custom VBoxManage commands to + execute in order to further customize the virtual machine being created. The + value of this is an array of commands to execute. The commands are executed + in the order defined in the template. For each command, the command is + defined itself as an array of strings, where each string represents a single + argument on the command-line to VBoxManage (but excluding + VBoxManage itself). Each arg is treated as a configuration + template, where the Name + variable is replaced with the VM name. More details on how to use + VBoxManage are below. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_VBoxManagePostConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_VBoxManagePostConfig-not-required.html.md new file mode 100644 index 000000000..83c75ab18 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_VBoxManagePostConfig-not-required.html.md @@ -0,0 +1,6 @@ + + +- `vboxmanage_post` ([][]string) - Identical to vboxmanage, + except that it is run after the virtual machine is shutdown, and before the + virtual machine is exported. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/common/_VBoxVersionConfig-not-required.html.md b/website/source/partials/builder/virtualbox/common/_VBoxVersionConfig-not-required.html.md new file mode 100644 index 000000000..e7f297bf3 --- /dev/null +++ b/website/source/partials/builder/virtualbox/common/_VBoxVersionConfig-not-required.html.md @@ -0,0 +1,10 @@ + + +- `communicator` (string) - Communicator +- `virtualbox_version_file` (*string) - The path within the virtual machine to + upload a file that contains the VirtualBox version that was used to create + the machine. This information can be useful for provisioning. By default + this is .vbox_version, which will generally be upload it into the + home directory. Set to an empty string to skip uploading this file, which + can be useful when using the none communicator. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/iso/_Config-not-required.html.md b/website/source/partials/builder/virtualbox/iso/_Config-not-required.html.md new file mode 100644 index 000000000..3cf87b358 --- /dev/null +++ b/website/source/partials/builder/virtualbox/iso/_Config-not-required.html.md @@ -0,0 +1,77 @@ + + +- `disk_size` (uint) - The size, in megabytes, of the hard disk to create + for the VM. By default, this is 40000 (about 40 GB). + +- `guest_additions_mode` (string) - The method by which guest additions are + made available to the guest for installation. Valid options are upload, + attach, or disable. If the mode is attach the guest additions ISO will + be attached as a CD device to the virtual machine. If the mode is upload + the guest additions ISO will be uploaded to the path specified by + guest_additions_path. The default value is upload. If disable is used, + guest additions won't be downloaded, either. + +- `guest_additions_path` (string) - The path on the guest virtual machine + where the VirtualBox guest additions ISO will be uploaded. By default this + is VBoxGuestAdditions.iso which should upload into the login directory of + the user. This is a configuration + template where the Version + variable is replaced with the VirtualBox version. + +- `guest_additions_sha256` (string) - The SHA256 checksum of the guest + additions ISO that will be uploaded to the guest VM. By default the + checksums will be downloaded from the VirtualBox website, so this only needs + to be set if you want to be explicit about the checksum. + +- `guest_additions_url` (string) - The URL to the guest additions ISO + to upload. This can also be a file URL if the ISO is at a local path. By + default, the VirtualBox builder will attempt to find the guest additions ISO + on the local file system. If it is not available locally, the builder will + download the proper guest additions ISO from the internet. + +- `guest_additions_interface` (string) - The interface type to use to mount + guest additions when guest_additions_mode is set to attach. Will + default to the value set in iso_interface, if iso_interface is set. + Will default to "ide", if iso_interface is not set. Options are "ide" and + "sata". + +- `guest_os_type` (string) - The guest OS type being installed. By default + this is other, but you can get dramatic performance improvements by + setting this to the proper value. To view all available values for this run + VBoxManage list ostypes. Setting the correct value hints to VirtualBox how + to optimize the virtual hardware to work best with that operating system. + +- `hard_drive_discard` (bool) - When this value is set to true, a VDI + image will be shrunk in response to the trim command from the guest OS. + The size of the cleared area must be at least 1MB. Also set + hard_drive_nonrotational to true to enable TRIM support. + +- `hard_drive_interface` (string) - The type of controller that the primary + hard drive is attached to, defaults to ide. When set to sata, the drive + is attached to an AHCI SATA controller. When set to scsi, the drive is + attached to an LsiLogic SCSI controller. + +- `sata_port_count` (int) - The number of ports available on any SATA + controller created, defaults to 1. VirtualBox supports up to 30 ports on a + maximum of 1 SATA controller. Increasing this value can be useful if you + want to attach additional drives. + +- `hard_drive_nonrotational` (bool) - Forces some guests (i.e. Windows 7+) + to treat disks as SSDs and stops them from performing disk fragmentation. + Also set hard_drive_discard to true to enable TRIM support. + +- `iso_interface` (string) - The type of controller that the ISO is attached + to, defaults to ide. When set to sata, the drive is attached to an AHCI + SATA controller. + +- `keep_registered` (bool) - Set this to true if you would like to keep + the VM registered with virtualbox. Defaults to false. + +- `skip_export` (bool) - Defaults to false. When enabled, Packer will + not export the VM. Useful if the build output is not the resultant image, + but created inside the VM. + +- `vm_name` (string) - This is the name of the OVF file for the new virtual + machine, without the file extension. By default this is packer-BUILDNAME, + where "BUILDNAME" is the name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/ovf/_Config-not-required.html.md b/website/source/partials/builder/virtualbox/ovf/_Config-not-required.html.md new file mode 100644 index 000000000..5f6a98c80 --- /dev/null +++ b/website/source/partials/builder/virtualbox/ovf/_Config-not-required.html.md @@ -0,0 +1,63 @@ + + +- `checksum_type` (string) - The type of the checksum specified in checksum. + Valid values are none, md5, sha1, sha256, or sha512. Although the + checksum will not be verified when checksum_type is set to "none", this is + not recommended since OVA files can be very large and corruption does happen + from time to time. + +- `guest_additions_mode` (string) - The method by which guest additions are + made available to the guest for installation. Valid options are upload, + attach, or disable. If the mode is attach the guest additions ISO will + be attached as a CD device to the virtual machine. If the mode is upload + the guest additions ISO will be uploaded to the path specified by + guest_additions_path. The default value is upload. If disable is used, + guest additions won't be downloaded, either. + +- `guest_additions_path` (string) - The path on the guest virtual machine + where the VirtualBox guest additions ISO will be uploaded. By default this + is VBoxGuestAdditions.iso which should upload into the login directory of + the user. This is a configuration + template where the Version + variable is replaced with the VirtualBox version. + +- `guest_additions_interface` (string) - The interface type to use to mount + guest additions when guest_additions_mode is set to attach. Will + default to the value set in iso_interface, if iso_interface is set. + Will default to "ide", if iso_interface is not set. Options are "ide" and + "sata". + +- `guest_additions_sha256` (string) - The SHA256 checksum of the guest + additions ISO that will be uploaded to the guest VM. By default the + checksums will be downloaded from the VirtualBox website, so this only needs + to be set if you want to be explicit about the checksum. + +- `guest_additions_url` (string) - The URL to the guest additions ISO + to upload. This can also be a file URL if the ISO is at a local path. By + default, the VirtualBox builder will attempt to find the guest additions ISO + on the local file system. If it is not available locally, the builder will + download the proper guest additions ISO from the internet. + +- `import_flags` ([]string) - Additional flags to pass to + VBoxManage import. This can be used to add additional command-line flags + such as --eula-accept to accept a EULA in the OVF. + +- `import_opts` (string) - Additional options to pass to the + VBoxManage import. This can be useful for passing keepallmacs or + keepnatmacs options for existing ovf images. + +- `target_path` (string) - The path where the OVA should be saved + after download. By default, it will go in the packer cache, with a hash of + the original filename as its name. + +- `vm_name` (string) - This is the name of the OVF file for the new virtual + machine, without the file extension. By default this is packer-BUILDNAME, + where "BUILDNAME" is the name of the build. + +- `keep_registered` (bool) - Set this to true if you would like to keep + the VM registered with virtualbox. Defaults to false. + +- `skip_export` (bool) - Defaults to false. When enabled, Packer will + not export the VM. Useful if the build output is not the resultant image, + but created inside the VM. + \ No newline at end of file diff --git a/website/source/partials/builder/virtualbox/ovf/_Config-required.html.md b/website/source/partials/builder/virtualbox/ovf/_Config-required.html.md new file mode 100644 index 000000000..90f3e8359 --- /dev/null +++ b/website/source/partials/builder/virtualbox/ovf/_Config-required.html.md @@ -0,0 +1,12 @@ + + +- `checksum` (string) - The checksum for the source_path file. The + algorithm to use when computing the checksum can be optionally specified + with checksum_type. When checksum_type is not set packer will guess the + checksumming type based on checksum length. checksum can be also be a + file or an URL, in which case checksum_type must be set to file; the + go-getter will download it and use the first hash found. + +- `source_path` (string) - The path to an OVF or OVA file that acts as the + source of this build. This currently must be a local file. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_DriverConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_DriverConfig-not-required.html.md new file mode 100644 index 000000000..65e403370 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_DriverConfig-not-required.html.md @@ -0,0 +1,38 @@ + + +- `fusion_app_path` (string) - Path to "VMware Fusion.app". By default this is + /Applications/VMware Fusion.app but this setting allows you to + customize this. + +- `remote_type` (string) - The type of remote machine that will be used to + build this VM rather than a local desktop product. The only value accepted + for this currently is esx5. If this is not set, a desktop product will + be used. By default, this is not set. + +- `remote_datastore` (string) - The path to the datastore where the VM will be stored + on the ESXi machine. + +- `remote_cache_datastore` (string) - The path to the datastore where supporting files + will be stored during the build on the remote machine. + +- `remote_cache_directory` (string) - The path where the ISO and/or floppy files will + be stored during the build on the remote machine. The path is relative to + the remote_cache_datastore on the remote machine. + +- `remote_host` (string) - The host of the remote machine used for access. + This is only required if remote_type is enabled. + +- `remote_port` (int) - The SSH port of the remote machine + +- `remote_username` (string) - The SSH username used to access the remote machine. + +- `remote_password` (string) - The SSH password for access to the remote machine. + +- `remote_private_key_file` (string) - The SSH key for access to the remote machine. + +- `skip_validate_credentials` (bool) - When Packer is preparing to run a + remote esxi build, and export is not disable, by default it runs a no-op + ovftool command to make sure that the remote_username and remote_password + given are valid. If you set this flag to true, Packer will skip this + validation. Default: false. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md new file mode 100644 index 000000000..80efaedec --- /dev/null +++ b/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md @@ -0,0 +1,41 @@ + + +- `format` (string) - Either "ovf", "ova" or "vmx", this specifies the output + format of the exported virtual machine. This defaults to "ovf". + Before using this option, you need to install ovftool. This option + currently only works when option remote_type is set to "esx5". + Since ovftool is only capable of password based authentication + remote_password must be set when exporting the VM. + +- `ovftool_options` ([]string) - Extra options to pass to ovftool + during export. Each item in the array is a new argument. The options + --noSSLVerify, --skipManifestCheck, and --targetType are reserved, + and should not be passed to this argument. + Currently, exporting the build VM (with ovftool) is only supported when + building on ESXi e.g. when remote_type is set to esx5. See the + Building on a Remote vSphere + Hypervisor + section below for more info. + +- `skip_export` (bool) - Defaults to false. When enabled, Packer will + not export the VM. Useful if the build output is not the resultant + image, but created inside the VM. + Currently, exporting the build VM is only supported when building on + ESXi e.g. when remote_type is set to esx5. See the Building on a + Remote vSphere + Hypervisor + section below for more info. + +- `keep_registered` (bool) - Set this to true if you would like to keep + the VM registered with the remote ESXi server. If you do not need to export + the vm, then also set skip_export: true in order to avoid an unnecessary + step of using ovftool to export the vm. Defaults to false. + +- `skip_compaction` (bool) - VMware-created disks are defragmented and + compacted at the end of the build process using vmware-vdiskmanager or + vmkfstools in ESXi. In certain rare cases, this might actually end up + making the resulting disks slightly larger. If you find this to be the case, + you can disable compaction using this configuration value. Defaults to + false. Default to true for ESXi when disk_type_id is not explicitly + defined and false otherwise. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md new file mode 100644 index 000000000..b61851fd3 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md @@ -0,0 +1,38 @@ + + +- `cpus` (int) - The number of cpus to use when building the VM. + +- `memory` (int) - The amount of memory to use when building the VM + in megabytes. + +- `cores` (int) - The number of cores per socket to use when building the VM. + This corresponds to the cpuid.coresPerSocket option in the .vmx file. + +- `network` (string) - This is the network type that the virtual machine will + be created with. This can be one of the generic values that map to a device + such as hostonly, nat, or bridged. If the network is not one of these + values, then it is assumed to be a VMware network device. (VMnet0..x) + +- `network_adapter_type` (string) - This is the ethernet adapter type the the + virtual machine will be created with. By default the e1000 network adapter + type will be used by Packer. For more information, please consult the + + Choosing a network adapter for your virtual machine for desktop VMware + clients. For ESXi, refer to the proper ESXi documentation. + +- `sound` (bool) - Specify whether to enable VMware's virtual soundcard + device when building the VM. Defaults to false. + +- `usb` (bool) - Enable VMware's USB bus when building the guest VM. + Defaults to false. To enable usage of the XHCI bus for USB 3 (5 Gbit/s), + one can use the vmx_data option to enable it by specifying true for + the usb_xhci.present property. + +- `serial` (string) - This specifies a serial port to add to the VM. + It has a format of Type:option1,option2,.... The field Type can be one + of the following values: FILE, DEVICE, PIPE, AUTO, or NONE. + +- `parallel` (string) - This specifies a parallel port to add to the VM. It + has the format of Type:option1,option2,.... Type can be one of the + following values: FILE, DEVICE, AUTO, or NONE. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_OutputConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_OutputConfig-not-required.html.md new file mode 100644 index 000000000..99deb6e10 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_OutputConfig-not-required.html.md @@ -0,0 +1,9 @@ + + +- `output_directory` (string) - This is the path to the directory where the + resulting virtual machine will be created. This may be relative or absolute. + If relative, the path is relative to the working directory when packer + is executed. This directory must not exist or be empty prior to running + the builder. By default this is output-BUILDNAME where "BUILDNAME" is the + name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_RunConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_RunConfig-not-required.html.md new file mode 100644 index 000000000..e3226dca6 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_RunConfig-not-required.html.md @@ -0,0 +1,25 @@ + + +- `headless` (bool) - Packer defaults to building VMware virtual machines + by launching a GUI that shows the console of the machine being built. When + this value is set to true, the machine will start without a console. For + VMware machines, Packer will output VNC connection information in case you + need to connect to the console to debug the build process. + +- `vnc_bind_address` (string) - The IP address that should be + binded to for VNC. By default packer will use 127.0.0.1 for this. If you + wish to bind to all interfaces use 0.0.0.0. + +- `vnc_port_min` (int) - The minimum and maximum port + to use for VNC access to the virtual machine. The builder uses VNC to type + the initial boot_command. Because Packer generally runs in parallel, + Packer uses a randomly chosen port in this range that appears available. By + default this is 5900 to 6000. The minimum and maximum ports are + inclusive. + +- `vnc_port_max` (int) - VNC Port Max +- `vnc_disable_password` (bool) - Don't auto-generate a VNC password that + is used to secure the VNC communication with the VM. This must be set to + true if building on ESXi 6.5 and 6.7 with VNC enabled. Defaults to + false. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_ShutdownConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_ShutdownConfig-not-required.html.md new file mode 100644 index 000000000..ec9a2a69e --- /dev/null +++ b/website/source/partials/builder/vmware/common/_ShutdownConfig-not-required.html.md @@ -0,0 +1,11 @@ + + +- `shutdown_command` (string) - The command to use to gracefully shut down the + machine once all the provisioning is done. By default this is an empty + string, which tells Packer to just forcefully shut down the machine. + +- `shutdown_timeout` (string) - The amount of time to wait after executing the + shutdown_command for the virtual machine to actually shut down. If it + doesn't shut down in this time, it is an error. By default, the timeout is + 5m or five minutes. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md new file mode 100644 index 000000000..aa47a1074 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md @@ -0,0 +1,14 @@ + + +- `tools_upload_flavor` (string) - The flavor of the VMware Tools ISO to + upload into the VM. Valid values are darwin, linux, and windows. By + default, this is empty, which means VMware tools won't be uploaded. + +- `tools_upload_path` (string) - The path in the VM to upload the + VMware tools. This only takes effect if tools_upload_flavor is non-empty. + This is a configuration + template that has a single + valid variable: Flavor, which will be the value of tools_upload_flavor. + By default the upload path is set to {{.Flavor}}.iso. This setting is not + used when remote_type is esx5. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/common/_VMXConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_VMXConfig-not-required.html.md new file mode 100644 index 000000000..5fd4a9142 --- /dev/null +++ b/website/source/partials/builder/vmware/common/_VMXConfig-not-required.html.md @@ -0,0 +1,23 @@ + + +- `vmx_data` (map[string]string) - Arbitrary key/values to enter + into the virtual machine VMX file. This is for advanced users who want to + set properties that aren't yet supported by the builder. + +- `vmx_data_post` (map[string]string) - Identical to vmx_data, + except that it is run after the virtual machine is shutdown, and before the + virtual machine is exported. + +- `vmx_remove_ethernet_interfaces` (bool) - Remove all ethernet interfaces + from the VMX file after building. This is for advanced users who understand + the ramifications, but is useful for building Vagrant boxes since Vagrant + will create ethernet interfaces when provisioning a box. Defaults to + false. + +- `display_name` (string) - The name that will appear in your vSphere client, + and will be used for the vmx basename. This will override the "displayname" + value in your vmx file. It will also override the "displayname" if you have + set it in the "vmx_data" Packer option. This option is useful if you are + chaining vmx builds and want to make sure that the display name of each step + in the chain is unique. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/iso/_Config-not-required.html.md b/website/source/partials/builder/vmware/iso/_Config-not-required.html.md new file mode 100644 index 000000000..b6ed80e34 --- /dev/null +++ b/website/source/partials/builder/vmware/iso/_Config-not-required.html.md @@ -0,0 +1,65 @@ + + +- `disk_additional_size` ([]uint) - The size(s) of any additional + hard disks for the VM in megabytes. If this is not specified then the VM + will only contain a primary hard disk. The builder uses expandable, not + fixed-size virtual hard disks, so the actual file representing the disk will + not use the full size unless it is full. + +- `disk_adapter_type` (string) - The adapter type of the VMware virtual disk + to create. This option is for advanced usage, modify only if you know what + you're doing. Some of the options you can specify are ide, sata, nvme + or scsi (which uses the "lsilogic" scsi interface by default). If you + specify another option, Packer will assume that you're specifying a scsi + interface of that specified type. For more information, please consult the + + Virtual Disk Manager User's Guide for desktop VMware clients. + For ESXi, refer to the proper ESXi documentation. + +- `vmdk_name` (string) - The filename of the virtual disk that'll be created, + without the extension. This defaults to packer. + +- `disk_size` (uint) - The size of the hard disk for the VM in megabytes. + The builder uses expandable, not fixed-size virtual hard disks, so the + actual file representing the disk will not use the full size unless it + is full. By default this is set to 40000 (about 40 GB). + +- `disk_type_id` (string) - The type of VMware virtual disk to create. This + option is for advanced usage. + +- `format` (string) - Either "ovf", "ova" or "vmx", this specifies the output + format of the exported virtual machine. This defaults to "ovf". + Before using this option, you need to install ovftool. This option + currently only works when option remote_type is set to "esx5". + Since ovftool is only capable of password based authentication + remote_password must be set when exporting the VM. + +- `cdrom_adapter_type` (string) - The adapter type (or bus) that will be used + by the cdrom device. This is chosen by default based on the disk adapter + type. VMware tends to lean towards ide for the cdrom device unless + sata is chosen for the disk adapter and so Packer attempts to mirror + this logic. This field can be specified as either ide, sata, or scsi. + +- `guest_os_type` (string) - The guest OS type being installed. This will be + set in the VMware VMX. By default this is other. By specifying a more + specific OS type, VMware may perform some optimizations or virtual hardware + changes to better support the operating system running in the + virtual machine. + +- `version` (string) - The vmx hardware + version + for the new virtual machine. Only the default value has been tested, any + other value is experimental. Default value is 9. + +- `vm_name` (string) - This is the name of the VMX file for the new virtual + machine, without the file extension. By default this is packer-BUILDNAME, + where "BUILDNAME" is the name of the build. + +- `vmx_disk_template_path` (string) - VMX Disk Template Path +- `vmx_template_path` (string) - Path to a configuration + template that defines the + contents of the virtual machine VMX file for VMware. This is for advanced + users only as this can render the virtual machine non-functional. See + below for more information. For basic VMX modifications, try + vmx_data first. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/vmx/_Config-not-required.html.md b/website/source/partials/builder/vmware/vmx/_Config-not-required.html.md new file mode 100644 index 000000000..1665c6896 --- /dev/null +++ b/website/source/partials/builder/vmware/vmx/_Config-not-required.html.md @@ -0,0 +1,15 @@ + + +- `linked` (bool) - By default Packer creates a 'full' clone of + the virtual machine specified in source_path. The resultant virtual + machine is fully independant from the parent it was cloned from. + +- `remote_type` (string) - The type of remote machine that will be used to + build this VM rather than a local desktop product. The only value accepted + for this currently is esx5. If this is not set, a desktop product will + be used. By default, this is not set. + +- `vm_name` (string) - This is the name of the VMX file for the new virtual + machine, without the file extension. By default this is packer-BUILDNAME, + where "BUILDNAME" is the name of the build. + \ No newline at end of file diff --git a/website/source/partials/builder/vmware/vmx/_Config-required.html.md b/website/source/partials/builder/vmware/vmx/_Config-required.html.md new file mode 100644 index 000000000..ddeb7ebbe --- /dev/null +++ b/website/source/partials/builder/vmware/vmx/_Config-required.html.md @@ -0,0 +1,5 @@ + + +- `source_path` (string) - Path to the source VMX file to clone. If + remote_type is enabled then this specifies a path on the remote_host. + \ No newline at end of file diff --git a/website/source/partials/builder/yandex/_Config-not-required.html.md b/website/source/partials/builder/yandex/_Config-not-required.html.md new file mode 100644 index 000000000..2deb12bba --- /dev/null +++ b/website/source/partials/builder/yandex/_Config-not-required.html.md @@ -0,0 +1,67 @@ + + +- `endpoint` (string) - Non standard api endpoint URL. + +- `service_account_key_file` (string) - Path to file with Service Account key in json format. This + is an alternative method to authenticate to Yandex.Cloud. Alternatively you may set environment variable + YC_SERVICE_ACCOUNT_KEY_FILE. + +- `disk_name` (string) - The name of the disk, if unset the instance name + will be used. + +- `disk_size_gb` (int) - The size of the disk in GB. This defaults to 10, which is 10GB. + +- `disk_type` (string) - Specify disk type for the launched instance. Defaults to network-hdd. + +- `image_description` (string) - The description of the resulting image. + +- `image_family` (string) - The family name of the resulting image. + +- `image_labels` (map[string]string) - Key/value pair labels to + apply to the created image. + +- `image_name` (string) - The unique name of the resulting image. Defaults to + packer-{{timestamp}}. + +- `image_product_ids` ([]string) - License IDs that indicate which licenses are attached to resulting image. + +- `instance_cores` (int) - The number of cores available to the instance. + +- `instance_mem_gb` (int) - The amount of memory available to the instance, specified in gigabytes. + +- `instance_name` (string) - The name assigned to the instance. + +- `labels` (map[string]string) - Key/value pair labels to apply to + the launched instance. + +- `platform_id` (string) - Identifier of the hardware platform configuration for the instance. This defaults to standard-v1. + +- `metadata` (map[string]string) - Metadata applied to the launched + instance. + +- `serial_log_file` (string) - File path to save serial port output of the launched instance. + +- `source_image_folder_id` (string) - The ID of the folder containing the source image. + +- `source_image_id` (string) - The source image ID to use to create the new image + from. + +- `subnet_id` (string) - The Yandex VPC subnet id to use for + the launched instance. Note, the zone of the subnet must match the + zone in which the VM is launched. + +- `use_ipv4_nat` (bool) - If set to true, then launched instance will have external internet + access. + +- `use_ipv6` (bool) - Set to true to enable IPv6 for the instance being + created. This defaults to false, or not enabled. + -> Note: ~> Usage of IPv6 will be available in the future. + +- `use_internal_ip` (bool) - If true, use the instance's internal IP address + instead of its external IP during building. + +- `zone` (string) - The name of the zone to launch the instance. This defaults to ru-central1-a. + +- `state_timeout` (time.Duration) - The time to wait for instance state changes. + Defaults to 5m. + \ No newline at end of file diff --git a/website/source/partials/builder/yandex/_Config-required.html.md b/website/source/partials/builder/yandex/_Config-required.html.md new file mode 100644 index 000000000..9d65be8ae --- /dev/null +++ b/website/source/partials/builder/yandex/_Config-required.html.md @@ -0,0 +1,12 @@ + + +- `folder_id` (string) - The folder ID that will be used to launch instances and store images. + Alternatively you may set value by environment variable YC_FOLDER_ID. + +- `token` (string) - OAuth token to use to authenticate to Yandex.Cloud. Alternatively you may set + value by environment variable YC_TOKEN. + +- `source_image_family` (string) - The source image family to create the new image + from. You can also specify source_image_id instead. Just one of a source_image_id or + source_image_family must be specified. Example: ubuntu-1804-lts + \ No newline at end of file diff --git a/website/source/partials/builders/_building_on_remote_vsphere_hypervisor.html.md b/website/source/partials/builders/_building_on_remote_vsphere_hypervisor.html.md index 4725661cd..8c04d4abb 100644 --- a/website/source/partials/builders/_building_on_remote_vsphere_hypervisor.html.md +++ b/website/source/partials/builders/_building_on_remote_vsphere_hypervisor.html.md @@ -30,35 +30,37 @@ Packer builds on; a vMotion event will cause the Packer build to fail. To use a remote VMware vSphere Hypervisor to build your virtual machine, fill in the required `remote_*` configurations: -### Required: +- `remote_type` - This must be set to "esx5". -- `remote_type` (string) - This must be set to "esx5". +- `remote_host` - The host of the remote machine. -- `remote_host` (string) - The host of the remote machine. +Additionally, there are some optional configurations that you'll likely have to +modify as well: -### Optional: +- `remote_port` - The SSH port of the remote machine -- `remote_port` (int) - The SSH port of the remote machine - -- `remote_datastore` (string) - The path to the datastore where the VM will be stored +- `remote_datastore` - The path to the datastore where the VM will be stored on the ESXi machine. -- `remote_cache_datastore` (string) - The path to the datastore where supporting files +- `remote_cache_datastore` - The path to the datastore where supporting files will be stored during the build on the remote machine. -- `remote_cache_directory` (string) - The path where the ISO and/or floppy files will +- `remote_cache_directory` - The path where the ISO and/or floppy files will be stored during the build on the remote machine. The path is relative to the `remote_cache_datastore` on the remote machine. -- `remote_username` (string) - The SSH username used to access the remote machine. +- `remote_username` - The SSH username used to access the remote machine. -- `remote_password` (string) - The SSH password for access to the remote machine. +- `remote_password` - The SSH password for access to the remote machine. -- `remote_private_key_file` (string) - The SSH key for access to the remote machine. +- `remote_private_key_file` - The SSH key for access to the remote machine. -- `format` (string) (string) - Either "ovf", "ova" or "vmx", this specifies the output +- `format` (string) - Either "ovf", "ova" or "vmx", this specifies the output format of the exported virtual machine. This defaults to "ovf". Before using this option, you need to install `ovftool`. This option currently only works when option remote_type is set to "esx5". Since ovftool is only capable of password based authentication `remote_password` must be set when exporting the VM. + +- `vnc_disable_password` - This must be set to "true" when using VNC with + ESXi 6.5 or 6.7. \ No newline at end of file diff --git a/website/source/partials/helper/communicator/_Config-not-required.html.md b/website/source/partials/helper/communicator/_Config-not-required.html.md new file mode 100644 index 000000000..e994c8fe1 --- /dev/null +++ b/website/source/partials/helper/communicator/_Config-not-required.html.md @@ -0,0 +1,36 @@ + + +- `communicator` (string) - Packer currently supports three kinds of communicators: + + - `none` - No communicator will be used. If this is set, most + provisioners also can't be used. + + - `ssh` - An SSH connection will be established to the machine. This + is usually the default. + + - `winrm` - A WinRM connection will be established. + + In addition to the above, some builders have custom communicators they + can use. For example, the Docker builder has a "docker" communicator + that uses `docker exec` and `docker cp` to execute scripts and copy + files. + +- `pause_before_connecting` (time.Duration) - We recommend that you enable SSH or WinRM as the very last step in your + guest's bootstrap script, but sometimes you may have a race condition where + you need Packer to wait before attempting to connect to your guest. + + If you end up in this situation, you can use the template option + `pause_before_connecting`. By default, there is no pause. For example: + + ```json + { + "communicator": "ssh", + "ssh_username": "myuser", + "pause_before_connecting": "10m" + } + ``` + + In this example, Packer will check whether it can connect, as normal. But once + a connection attempt is successful, it will disconnect and then wait 10 minutes + before connecting to the guest and beginning provisioning. + \ No newline at end of file diff --git a/website/source/partials/helper/communicator/_SSH-not-required.html.md b/website/source/partials/helper/communicator/_SSH-not-required.html.md new file mode 100644 index 000000000..aa63682f1 --- /dev/null +++ b/website/source/partials/helper/communicator/_SSH-not-required.html.md @@ -0,0 +1,98 @@ + + +- `ssh_host` (string) - The address to SSH to. This usually is automatically configured by the + builder. + +- `ssh_port` (int) - The port to connect to SSH. This defaults to `22`. + +- `ssh_username` (string) - The username to connect to SSH with. Required if using SSH. + +- `ssh_password` (string) - A plaintext password to use to authenticate with SSH. + +- `ssh_keypair_name` (string) - If specified, this is the key that will be used for SSH with the + machine. The key must match a key pair name loaded up into Amazon EC2. + By default, this is blank, and Packer will generate a temporary keypair + unless [`ssh_password`](../templates/communicator.html#ssh_password) is + used. + [`ssh_private_key_file`](../templates/communicator.html#ssh_private_key_file) + or `ssh_agent_auth` must be specified when `ssh_keypair_name` is + utilized. + +- `temporary_key_pair_name` (string) - SSH Temporary Key Pair Name +- `ssh_clear_authorized_keys` (bool) - If true, Packer will attempt to remove its temporary key from + `~/.ssh/authorized_keys` and `/root/.ssh/authorized_keys`. This is a + mostly cosmetic option, since Packer will delete the temporary private + key from the host system regardless of whether this is set to true + (unless the user has set the `-debug` flag). Defaults to "false"; + currently only works on guests with `sed` installed. + +- `ssh_private_key_file` (string) - Path to a PEM encoded private key file to use to authenticate with SSH. + The `~` can be used in path and will be expanded to the home directory + of current user. + +- `ssh_interface` (string) - One of `public_ip`, `private_ip`, `public_dns`, or `private_dns`. If + set, either the public IP address, private IP address, public DNS name + or private DNS name will used as the host for SSH. The default behaviour + if inside a VPC is to use the public IP address if available, otherwise + the private IP address will be used. If not in a VPC the public DNS name + will be used. Also works for WinRM. + + Where Packer is configured for an outbound proxy but WinRM traffic + should be direct, `ssh_interface` must be set to `private_dns` and + `.compute.internal` included in the `NO_PROXY` environment + variable. + +- `ssh_ip_version` (string) - SSHIP Version +- `ssh_pty` (bool) - If `true`, a PTY will be requested for the SSH connection. This defaults + to `false`. + +- `ssh_timeout` (time.Duration) - The time to wait for SSH to become available. Packer uses this to + determine when the machine has booted so this is usually quite long. + Example value: `10m`. + +- `ssh_agent_auth` (bool) - If true, the local SSH agent will be used to authenticate connections to + the source instance. No temporary keypair will be created, and the + values of `ssh_password` and `ssh_private_key_file` will be ignored. To + use this option with a key pair already configured in the source AMI, + leave the `ssh_keypair_name` blank. To associate an existing key pair in + AWS with the source instance, set the `ssh_keypair_name` field to the + name of the key pair. + +- `ssh_disable_agent_forwarding` (bool) - If true, SSH agent forwarding will be disabled. Defaults to `false`. + +- `ssh_handshake_attempts` (int) - The number of handshakes to attempt with SSH once it can connect. This + defaults to `10`. + +- `ssh_bastion_host` (string) - A bastion host to use for the actual SSH connection. + +- `ssh_bastion_port` (int) - The port of the bastion host. Defaults to `22`. + +- `ssh_bastion_agent_auth` (bool) - If `true`, the local SSH agent will be used to authenticate with the + bastion host. Defaults to `false`. + +- `ssh_bastion_username` (string) - The username to connect to the bastion host. + +- `ssh_bastion_password` (string) - The password to use to authenticate with the bastion host. + +- `ssh_bastion_private_key_file` (string) - Path to a PEM encoded private key file to use to authenticate with the + bastion host. The `~` can be used in path and will be expanded to the + home directory of current user. + +- `ssh_file_transfer_method` (string) - `scp` or `sftp` - How to transfer files, Secure copy (default) or SSH + File Transfer Protocol. + +- `ssh_proxy_host` (string) - A SOCKS proxy host to use for SSH connection + +- `ssh_proxy_port` (int) - A port of the SOCKS proxy. Defaults to `1080`. + +- `ssh_proxy_username` (string) - The optional username to authenticate with the proxy server. + +- `ssh_proxy_password` (string) - The optional password to use to authenticate with the proxy server. + +- `ssh_keep_alive_interval` (time.Duration) - How often to send "keep alive" messages to the server. Set to a negative + value (`-1s`) to disable. Example value: `10s`. Defaults to `5s`. + +- `ssh_read_write_timeout` (time.Duration) - The amount of time to wait for a remote command to end. This might be + useful if, for example, packer hangs on a connection after a reboot. + Example: `5m`. Disabled by default. + \ No newline at end of file diff --git a/website/source/partials/helper/communicator/_WinRM-not-required.html.md b/website/source/partials/helper/communicator/_WinRM-not-required.html.md new file mode 100644 index 000000000..aac408a0b --- /dev/null +++ b/website/source/partials/helper/communicator/_WinRM-not-required.html.md @@ -0,0 +1,29 @@ + + +- `winrm_username` (string) - The username to use to connect to WinRM. + +- `winrm_password` (string) - The password to use to connect to WinRM. + +- `winrm_host` (string) - The address for WinRM to connect to. + + NOTE: If using an Amazon EBS builder, you can specify the interface + WinRM connects to via + [`ssh_interface`](https://www.packer.io/docs/builders/amazon-ebs.html#ssh_interface) + +- `winrm_port` (int) - The WinRM port to connect to. This defaults to `5985` for plain + unencrypted connection and `5986` for SSL when `winrm_use_ssl` is set to + true. + +- `winrm_timeout` (time.Duration) - The amount of time to wait for WinRM to become available. This defaults + to `30m` since setting up a Windows machine generally takes a long time. + +- `winrm_use_ssl` (bool) - If `true`, use HTTPS for WinRM. + +- `winrm_insecure` (bool) - If `true`, do not check server certificate chain and host name. + +- `winrm_use_ntlm` (bool) - If `true`, NTLMv2 authentication (with session security) will be used + for WinRM, rather than default (basic authentication), removing the + requirement for basic authentication to be enabled within the target + guest. Further reading for remote connection authentication can be found + [here](https://msdn.microsoft.com/en-us/library/aa384295(v=vs.85).aspx). + \ No newline at end of file