Documentation
¶
Overview ¶
Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT.
Index ¶
- Constants
- Variables
- func CommHost() func(multistep.StateBag) (string, error)
- func NewArtifact(provider, dir string, generatedData map[string]interface{}) packer.Artifact
- func SSHPort() func(multistep.StateBag) (int, error)
- func ScanLinesInclCR(data []byte, atEOF bool) (advance int, token []byte, err error)
- type Builder
- type Config
- type FlatConfig
- type StepAddBox
- type StepCreateVagrantfile
- type StepPackage
- type StepSSHConfig
- type StepUp
- type VagrantDriver
- type VagrantSSHConfig
- type Vagrant_2_2_Driver
- func (d *Vagrant_2_2_Driver) Add(args []string) error
- func (d *Vagrant_2_2_Driver) Destroy(id string) error
- func (d *Vagrant_2_2_Driver) Halt(id string) error
- func (d *Vagrant_2_2_Driver) Init(args []string) error
- func (d *Vagrant_2_2_Driver) Package(args []string) error
- func (d *Vagrant_2_2_Driver) SSHConfig(id string) (*VagrantSSHConfig, error)
- func (d *Vagrant_2_2_Driver) Suspend(id string) error
- func (d *Vagrant_2_2_Driver) Up(args []string) (string, string, error)
- func (d *Vagrant_2_2_Driver) Verify() error
- func (d *Vagrant_2_2_Driver) Version() (string, error)
- type VagrantfileOptions
Constants ¶
const BuilderId = "vagrant"
This is the common builder ID to all of these artifacts.
const VAGRANT_MIN_VERSION = ">= 2.0.2"
Variables ¶
var DEFAULT_TEMPLATE = `` /* 515-byte string literal not displayed */
Functions ¶
func NewArtifact ¶
NewArtifact returns a vagrant artifact containing the .box file
func ScanLinesInclCR ¶ added in v1.5.2
Copied and modified from Bufio; this will return data that contains a carriage return, not just data that contains a newline. This allows us to stream progress output from vagrant that would otherwise be smothered. It is a bit noisy, but probably prefereable to suppressing the output in a way that looks like Packer has hung.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder implements packer.Builder and builds the actual VirtualBox images.
func (*Builder) ConfigSpec ¶ added in v1.5.0
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type Config ¶
type Config struct {
common.PackerConfig `mapstructure:",squash"`
common.HTTPConfig `mapstructure:",squash"`
common.ISOConfig `mapstructure:",squash"`
common.FloppyConfig `mapstructure:",squash"`
bootcommand.BootConfig `mapstructure:",squash"`
Comm communicator.Config `mapstructure:",squash"`
// 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.
OutputDir string `mapstructure:"output_dir" required:"false"`
// 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.
SourceBox string `mapstructure:"source_path" required:"true"`
// 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.
GlobalID string `mapstructure:"global_id" required:"true"`
// The checksum for the .box file. The type of the checksum is specified
// with checksum_type, documented below.
Checksum string `mapstructure:"checksum" required:"false"`
// 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.
ChecksumType string `mapstructure:"checksum_type" required:"false"`
// 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.
BoxName string `mapstructure:"box_name" required:"false"`
// If true, Vagrant will automatically insert a keypair to use for SSH,
// replacing Vagrant's default insecure key inside the machine if detected.
// By default, Packer sets this to false.
InsertKey bool `mapstructure:"insert_key" required:"false"`
// 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.
Provider string `mapstructure:"provider" required:"false"`
Communicator string `mapstructure:"communicator"`
// What vagrantfile to use
VagrantfileTpl string `mapstructure:"vagrantfile_template"`
// Whether to halt, suspend, or destroy the box when the build has
// completed. Defaults to "halt"
TeardownMethod string `mapstructure:"teardown_method" required:"false"`
// What box version to use when initializing Vagrant.
BoxVersion string `mapstructure:"box_version" required:"false"`
// a path to a golang template for a vagrantfile. Our default template can
// be found here. The template variables available to you are
// {{ .BoxName }}, {{ .SyncedFolder }}, and {{.InsertKey}}, which
// correspond to the Packer options box_name, synced_folder, and insert_key.
Template string `mapstructure:"template" required:"false"`
SyncedFolder string `mapstructure:"synced_folder"`
// 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.
SkipAdd bool `mapstructure:"skip_add" required:"false"`
// Equivalent to setting the
// --cacert
// option in vagrant add; defaults to unset.
AddCACert string `mapstructure:"add_cacert" required:"false"`
// Equivalent to setting the
// --capath option
// in vagrant add; defaults to unset.
AddCAPath string `mapstructure:"add_capath" required:"false"`
// Equivalent to setting the
// --cert option in
// vagrant add; defaults to unset.
AddCert string `mapstructure:"add_cert" required:"false"`
// Equivalent to setting the
// --clean flag in
// vagrant add; defaults to unset.
AddClean bool `mapstructure:"add_clean" required:"false"`
// Equivalent to setting the
// --force flag in
// vagrant add; defaults to unset.
AddForce bool `mapstructure:"add_force" required:"false"`
// Equivalent to setting the
// --insecure flag in
// vagrant add; defaults to unset.
AddInsecure bool `mapstructure:"add_insecure" required:"false"`
// if true, Packer will not call vagrant package to
// package your base box into its own standalone .box file.
SkipPackage bool `mapstructure:"skip_package" required:"false"`
OutputVagrantfile string `mapstructure:"output_vagrantfile"`
PackageInclude []string `mapstructure:"package_include"`
// contains filtered or unexported fields
}
func (*Config) FlatMapstructure ¶ added in v1.4.5
FlatMapstructure returns a new FlatConfig. FlatConfig is an auto-generated flat version of Config. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type FlatConfig ¶ added in v1.4.5
type FlatConfig struct {
PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name"`
PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type"`
PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug"`
PackerForce *bool `mapstructure:"packer_force" cty:"packer_force"`
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error"`
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables"`
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables"`
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory"`
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min"`
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max"`
ISOChecksum *string `mapstructure:"iso_checksum" required:"true" cty:"iso_checksum"`
ISOChecksumURL *string `mapstructure:"iso_checksum_url" cty:"iso_checksum_url"`
ISOChecksumType *string `mapstructure:"iso_checksum_type" cty:"iso_checksum_type"`
RawSingleISOUrl *string `mapstructure:"iso_url" required:"true" cty:"iso_url"`
ISOUrls []string `mapstructure:"iso_urls" cty:"iso_urls"`
TargetPath *string `mapstructure:"iso_target_path" cty:"iso_target_path"`
TargetExtension *string `mapstructure:"iso_target_extension" cty:"iso_target_extension"`
FloppyFiles []string `mapstructure:"floppy_files" cty:"floppy_files"`
FloppyDirectories []string `mapstructure:"floppy_dirs" cty:"floppy_dirs"`
FloppyLabel *string `mapstructure:"floppy_label" cty:"floppy_label"`
BootGroupInterval *string `mapstructure:"boot_keygroup_interval" cty:"boot_keygroup_interval"`
BootWait *string `mapstructure:"boot_wait" cty:"boot_wait"`
BootCommand []string `mapstructure:"boot_command" cty:"boot_command"`
Type *string `mapstructure:"communicator" cty:"communicator"`
PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting"`
SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host"`
SSHPort *int `mapstructure:"ssh_port" cty:"ssh_port"`
SSHUsername *string `mapstructure:"ssh_username" cty:"ssh_username"`
SSHPassword *string `mapstructure:"ssh_password" cty:"ssh_password"`
SSHKeyPairName *string `mapstructure:"ssh_keypair_name" cty:"ssh_keypair_name"`
SSHTemporaryKeyPairName *string `mapstructure:"temporary_key_pair_name" cty:"temporary_key_pair_name"`
SSHClearAuthorizedKeys *bool `mapstructure:"ssh_clear_authorized_keys" cty:"ssh_clear_authorized_keys"`
SSHPrivateKeyFile *string `mapstructure:"ssh_private_key_file" cty:"ssh_private_key_file"`
SSHPty *bool `mapstructure:"ssh_pty" cty:"ssh_pty"`
SSHTimeout *string `mapstructure:"ssh_timeout" cty:"ssh_timeout"`
SSHAgentAuth *bool `mapstructure:"ssh_agent_auth" cty:"ssh_agent_auth"`
SSHDisableAgentForwarding *bool `mapstructure:"ssh_disable_agent_forwarding" cty:"ssh_disable_agent_forwarding"`
SSHHandshakeAttempts *int `mapstructure:"ssh_handshake_attempts" cty:"ssh_handshake_attempts"`
SSHBastionHost *string `mapstructure:"ssh_bastion_host" cty:"ssh_bastion_host"`
SSHBastionPort *int `mapstructure:"ssh_bastion_port" cty:"ssh_bastion_port"`
SSHBastionAgentAuth *bool `mapstructure:"ssh_bastion_agent_auth" cty:"ssh_bastion_agent_auth"`
SSHBastionUsername *string `mapstructure:"ssh_bastion_username" cty:"ssh_bastion_username"`
SSHBastionPassword *string `mapstructure:"ssh_bastion_password" cty:"ssh_bastion_password"`
SSHBastionPrivateKeyFile *string `mapstructure:"ssh_bastion_private_key_file" cty:"ssh_bastion_private_key_file"`
SSHFileTransferMethod *string `mapstructure:"ssh_file_transfer_method" cty:"ssh_file_transfer_method"`
SSHProxyHost *string `mapstructure:"ssh_proxy_host" cty:"ssh_proxy_host"`
SSHProxyPort *int `mapstructure:"ssh_proxy_port" cty:"ssh_proxy_port"`
SSHProxyUsername *string `mapstructure:"ssh_proxy_username" cty:"ssh_proxy_username"`
SSHProxyPassword *string `mapstructure:"ssh_proxy_password" cty:"ssh_proxy_password"`
SSHKeepAliveInterval *string `mapstructure:"ssh_keep_alive_interval" cty:"ssh_keep_alive_interval"`
SSHReadWriteTimeout *string `mapstructure:"ssh_read_write_timeout" cty:"ssh_read_write_timeout"`
SSHRemoteTunnels []string `mapstructure:"ssh_remote_tunnels" cty:"ssh_remote_tunnels"`
SSHLocalTunnels []string `mapstructure:"ssh_local_tunnels" cty:"ssh_local_tunnels"`
SSHPublicKey []byte `mapstructure:"ssh_public_key" cty:"ssh_public_key"`
SSHPrivateKey []byte `mapstructure:"ssh_private_key" cty:"ssh_private_key"`
WinRMUser *string `mapstructure:"winrm_username" cty:"winrm_username"`
WinRMPassword *string `mapstructure:"winrm_password" cty:"winrm_password"`
WinRMHost *string `mapstructure:"winrm_host" cty:"winrm_host"`
WinRMPort *int `mapstructure:"winrm_port" cty:"winrm_port"`
WinRMTimeout *string `mapstructure:"winrm_timeout" cty:"winrm_timeout"`
WinRMUseSSL *bool `mapstructure:"winrm_use_ssl" cty:"winrm_use_ssl"`
WinRMInsecure *bool `mapstructure:"winrm_insecure" cty:"winrm_insecure"`
WinRMUseNTLM *bool `mapstructure:"winrm_use_ntlm" cty:"winrm_use_ntlm"`
OutputDir *string `mapstructure:"output_dir" required:"false" cty:"output_dir"`
SourceBox *string `mapstructure:"source_path" required:"true" cty:"source_path"`
GlobalID *string `mapstructure:"global_id" required:"true" cty:"global_id"`
Checksum *string `mapstructure:"checksum" required:"false" cty:"checksum"`
ChecksumType *string `mapstructure:"checksum_type" required:"false" cty:"checksum_type"`
BoxName *string `mapstructure:"box_name" required:"false" cty:"box_name"`
InsertKey *bool `mapstructure:"insert_key" required:"false" cty:"insert_key"`
Provider *string `mapstructure:"provider" required:"false" cty:"provider"`
VagrantfileTpl *string `mapstructure:"vagrantfile_template" cty:"vagrantfile_template"`
TeardownMethod *string `mapstructure:"teardown_method" required:"false" cty:"teardown_method"`
BoxVersion *string `mapstructure:"box_version" required:"false" cty:"box_version"`
Template *string `mapstructure:"template" required:"false" cty:"template"`
SyncedFolder *string `mapstructure:"synced_folder" cty:"synced_folder"`
SkipAdd *bool `mapstructure:"skip_add" required:"false" cty:"skip_add"`
AddCACert *string `mapstructure:"add_cacert" required:"false" cty:"add_cacert"`
AddCAPath *string `mapstructure:"add_capath" required:"false" cty:"add_capath"`
AddCert *string `mapstructure:"add_cert" required:"false" cty:"add_cert"`
AddClean *bool `mapstructure:"add_clean" required:"false" cty:"add_clean"`
AddForce *bool `mapstructure:"add_force" required:"false" cty:"add_force"`
AddInsecure *bool `mapstructure:"add_insecure" required:"false" cty:"add_insecure"`
SkipPackage *bool `mapstructure:"skip_package" required:"false" cty:"skip_package"`
OutputVagrantfile *string `mapstructure:"output_vagrantfile" cty:"output_vagrantfile"`
PackageInclude []string `mapstructure:"package_include" cty:"package_include"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type StepAddBox ¶
type StepAddBox struct {
BoxVersion string
CACert string
CAPath string
DownloadCert string
Clean bool
Force bool
Insecure bool
Provider string
SourceBox string
BoxName string
GlobalID string
SkipAdd bool
}
func (*StepAddBox) Cleanup ¶
func (s *StepAddBox) Cleanup(state multistep.StateBag)
func (*StepAddBox) Run ¶
func (s *StepAddBox) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepCreateVagrantfile ¶
type StepCreateVagrantfile struct {
Template string
OutputDir string
SyncedFolder string
GlobalID string
SourceBox string
BoxName string
InsertKey bool
}
func (*StepCreateVagrantfile) Cleanup ¶
func (s *StepCreateVagrantfile) Cleanup(state multistep.StateBag)
func (*StepCreateVagrantfile) Run ¶
func (s *StepCreateVagrantfile) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepPackage ¶
func (*StepPackage) Cleanup ¶
func (s *StepPackage) Cleanup(state multistep.StateBag)
func (*StepPackage) Run ¶
func (s *StepPackage) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepSSHConfig ¶
type StepSSHConfig struct {
GlobalID string
}
func (*StepSSHConfig) Cleanup ¶
func (s *StepSSHConfig) Cleanup(state multistep.StateBag)
func (*StepSSHConfig) Run ¶
func (s *StepSSHConfig) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type VagrantDriver ¶
type VagrantDriver interface {
// Calls "vagrant init"
Init([]string) error
// Calls "vagrant add"
Add([]string) error
// Calls "vagrant up"
Up([]string) (string, string, error)
// Calls "vagrant halt"
Halt(string) error
// Calls "vagrant suspend"
Suspend(string) error
SSHConfig(string) (*VagrantSSHConfig, error)
// Calls "vagrant destroy"
Destroy(string) error
// Calls "vagrant package"[
Package([]string) error
// Verify checks to make sure that this driver should function
// properly. If there is any indication the driver can't function,
// this will return an error.
Verify() error
// Version reads the version of VirtualBox that is installed.
Version() (string, error)
}
func NewDriver ¶
func NewDriver(outputDir string) (VagrantDriver, error)
type VagrantSSHConfig ¶
type Vagrant_2_2_Driver ¶
type Vagrant_2_2_Driver struct {
VagrantCWD string
// contains filtered or unexported fields
}
func (*Vagrant_2_2_Driver) Add ¶
func (d *Vagrant_2_2_Driver) Add(args []string) error
Calls "vagrant add"
func (*Vagrant_2_2_Driver) Destroy ¶
func (d *Vagrant_2_2_Driver) Destroy(id string) error
Calls "vagrant destroy"
func (*Vagrant_2_2_Driver) Halt ¶
func (d *Vagrant_2_2_Driver) Halt(id string) error
Calls "vagrant halt"
func (*Vagrant_2_2_Driver) Init ¶
func (d *Vagrant_2_2_Driver) Init(args []string) error
Calls "vagrant init"
func (*Vagrant_2_2_Driver) Package ¶
func (d *Vagrant_2_2_Driver) Package(args []string) error
Calls "vagrant package"
func (*Vagrant_2_2_Driver) SSHConfig ¶
func (d *Vagrant_2_2_Driver) SSHConfig(id string) (*VagrantSSHConfig, error)
func (*Vagrant_2_2_Driver) Suspend ¶
func (d *Vagrant_2_2_Driver) Suspend(id string) error
Calls "vagrant suspend"
func (*Vagrant_2_2_Driver) Up ¶
func (d *Vagrant_2_2_Driver) Up(args []string) (string, string, error)
Calls "vagrant up"
func (*Vagrant_2_2_Driver) Verify ¶
func (d *Vagrant_2_2_Driver) Verify() error
Verify makes sure that Vagrant exists at the given path
func (*Vagrant_2_2_Driver) Version ¶
func (d *Vagrant_2_2_Driver) Version() (string, error)
Version reads the version of VirtualBox that is installed.