docs: generate builders partials from struct comments
This commit is contained in:
parent
4bf6a56d71
commit
4ae10f08b2
138
cmd/struct-markdown/main.go
Normal file
138
cmd/struct-markdown/main.go
Normal file
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
cmd/struct-markdown/template.go
Normal file
33
cmd/struct-markdown/template.go
Normal file
@ -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(`<!-- Code generated from the comments of the {{ .Name }} struct in {{ .SourcePath }}; DO NOT EDIT MANUALLY -->
|
||||||
|
{{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)
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudAccessConfig struct in builder/alicloud/ecs/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudAccessConfig struct in builder/alicloud/ecs/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudDiskDevice struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudDiskDevices struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `system_disk_mapping` (AlicloudDiskDevice) - Image disk mapping for system
|
||||||
|
disk.
|
||||||
|
|
||||||
|
- `image_disk_mappings` ([]AlicloudDiskDevice) - Add one or more data
|
||||||
|
disks to the image.
|
||||||
|
|
@ -0,0 +1,53 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudImageConfig struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the AlicloudImageConfig struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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://.
|
||||||
|
|
@ -0,0 +1,78 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/alicloud/ecs/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/alicloud/ecs/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,130 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/chroot/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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".
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/chroot/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
<!-- Code generated from the comments of the AMIBlockDevices struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,97 @@
|
|||||||
|
<!-- Code generated from the comments of the AMIConfig struct in builder/amazon/common/ami_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the AMIConfig struct in builder/amazon/common/ami_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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).
|
||||||
|
|
@ -0,0 +1,65 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
<!-- Code generated from the comments of the AmiFilterOptions struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `most_recent` (bool) - Most Recent
|
@ -0,0 +1,50 @@
|
|||||||
|
<!-- Code generated from the comments of the BlockDevice struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
<!-- Code generated from the comments of the LaunchBlockDevices struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,246 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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_<UUID>`, 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
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
<!-- Code generated from the comments of the SubnetFilterOptions struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `most_free` (bool) - Most Free
|
||||||
|
- `random` (bool) - Random
|
@ -0,0 +1,15 @@
|
|||||||
|
<!-- Code generated from the comments of the VaultAWSEngineOptions struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
@ -0,0 +1,8 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/ebs/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/ebssurrogate/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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".
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/ebssurrogate/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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`.
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
<!-- Code generated from the comments of the RootBlockDevice struct in builder/amazon/ebssurrogate/root_block_device.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<!-- Code generated from the comments of the BlockDevice struct in builder/amazon/ebsvolume/block_device.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `tags` (awscommon.TagMap) - Tags applied to the AMI. This is a
|
||||||
|
template engine, see Build template
|
||||||
|
data for more information.
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/ebsvolume/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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`.
|
||||||
|
|
@ -0,0 +1,24 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/instance/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,18 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/amazon/instance/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,20 @@
|
|||||||
|
<!-- Code generated from the comments of the ClientConfig struct in builder/azure/arm/clientconfig.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
@ -0,0 +1,185 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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-<n>.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.
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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`
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<!-- Code generated from the comments of the PlanInformation struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `plan_name` (string) - Plan Name
|
||||||
|
- `plan_product` (string) - Plan Product
|
||||||
|
- `plan_publisher` (string) - Plan Publisher
|
||||||
|
- `plan_promotion_code` (string) - Plan Promotion Code
|
@ -0,0 +1,12 @@
|
|||||||
|
<!-- Code generated from the comments of the SharedImageGallery struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,97 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/cloudstack/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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_<UUID>, where <UUID> 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
|
@ -0,0 +1,33 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/cloudstack/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/digitalocean/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/digitalocean/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
<!-- Code generated from the comments of the AwsAccessConfig struct in builder/docker/ecr_login.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/docker/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/docker/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,119 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/googlecompute/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/googlecompute/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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"
|
||||||
|
|
@ -0,0 +1,61 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/hyperone/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/hyperone/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
<!-- Code generated from the comments of the OutputConfig struct in builder/hyperv/common/output_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
<!-- Code generated from the comments of the ShutdownConfig struct in builder/hyperv/common/shutdown_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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).
|
||||||
|
|
@ -0,0 +1,128 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/hyperv/iso/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
<output_directory>/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.
|
||||||
|
|
@ -0,0 +1,117 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/hyperv/vmcx/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
<output_directory>/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.
|
||||||
|
|
@ -0,0 +1,41 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/lxc/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `output_directory` (string) - The directory in which to save the exported
|
||||||
|
tar.gz. Defaults to output-<BuildName> in the current directory.
|
||||||
|
|
||||||
|
- `container_name` (string) - The name of the LXC container. Usually stored
|
||||||
|
in /var/lib/lxc/containers/<container_name>. Defaults to
|
||||||
|
packer-<BuildName>.
|
||||||
|
|
||||||
|
- `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-<template_name>. 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.
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/lxc/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/lxd/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/lxd/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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, ...
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/ncloud/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/ncloud/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,57 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/openstack/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/openstack/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,18 @@
|
|||||||
|
<!-- Code generated from the comments of the ImageConfig struct in builder/openstack/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
<!-- Code generated from the comments of the ImageConfig struct in builder/openstack/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `image_name` (string) - The name of the resulting image.
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Code generated from the comments of the ImageFilter struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the ImageFilterOptions struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `name` (string) - Name
|
||||||
|
- `owner` (string) - Owner
|
||||||
|
- `tags` ([]string) - Tags
|
||||||
|
- `visibility` (string) - Visibility
|
||||||
|
- `properties` (map[string]string) - Properties
|
@ -0,0 +1,85 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
<!-- Code generated from the comments of the RunConfig struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
<!-- Code generated from the comments of the HWConfig struct in builder/parallels/common/hw_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
<!-- Code generated from the comments of the OutputConfig struct in builder/parallels/common/output_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
<!-- Code generated from the comments of the PrlctlConfig struct in builder/parallels/common/prlctl_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<!-- Code generated from the comments of the PrlctlPostConfig struct in builder/parallels/common/prlctl_post_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `prlctl_post` ([][]string) - Identical to prlctl, except
|
||||||
|
that it is run after the virtual machine is shutdown, and before the virtual
|
||||||
|
machine is exported.
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
<!-- Code generated from the comments of the PrlctlVersionConfig struct in builder/parallels/common/prlctl_version_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Code generated from the comments of the ShutdownConfig struct in builder/parallels/common/shutdown_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the ToolsConfig struct in builder/parallels/common/tools_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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".
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
<!-- Code generated from the comments of the ToolsConfig struct in builder/parallels/common/tools_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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".
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/parallels/iso/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/parallels/pvm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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".
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/parallels/pvm/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `source_path` (string) - The path to a PVM directory that acts as the source
|
||||||
|
of this build.
|
||||||
|
|
@ -0,0 +1,140 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/qemu/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/scaleway/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/scaleway/config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudAccessConfig struct in builder/tencentcloud/cvm/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `skip_region_validation` (bool) - Do not check region and zone when validate.
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudAccessConfig struct in builder/tencentcloud/cvm/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudImageConfig struct in builder/tencentcloud/cvm/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudImageConfig struct in builder/tencentcloud/cvm/image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,44 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudRunConfig struct in builder/tencentcloud/cvm/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
@ -0,0 +1,9 @@
|
|||||||
|
<!-- Code generated from the comments of the TencentCloudRunConfig struct in builder/tencentcloud/cvm/run_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,20 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/triton/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
<!-- Code generated from the comments of the AccessConfig struct in builder/triton/access_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
<!-- Code generated from the comments of the MachineImageFilter struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `most_recent` (bool) - Most Recent
|
@ -0,0 +1,39 @@
|
|||||||
|
<!-- Code generated from the comments of the SourceMachineConfig struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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:
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
<!-- Code generated from the comments of the SourceMachineConfig struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the TargetImageConfig struct in builder/triton/target_image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
<!-- Code generated from the comments of the TargetImageConfig struct in builder/triton/target_image_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,69 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/vagrant/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Code generated from the comments of the Config struct in builder/vagrant/builder.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
<!-- Code generated from the comments of the ExportConfig struct in builder/virtualbox/common/export_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `format` (string) - Either ovf or ova, this specifies the output format
|
||||||
|
of the exported virtual machine. This defaults to ovf.
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
<!-- Code generated from the comments of the ExportOpts struct in builder/virtualbox/common/export_opts.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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:
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Code generated from the comments of the GuestAdditionsConfig struct in builder/virtualbox/common/guest_additions_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,15 @@
|
|||||||
|
<!-- Code generated from the comments of the HWConfig struct in builder/virtualbox/common/hw_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
<!-- Code generated from the comments of the OutputConfig struct in builder/virtualbox/common/output_config.go; DO NOT EDIT MANUALLY -->
|
||||||
|
|
||||||
|
- `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.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user