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.