Add http_content func to serve variables from HTTP @ preseed (#10801)
This imports hashicorp/packer-plugin-sdk#43 * code generate things * update docs * update guides * update examples We want to add a new guide.
This commit is contained in:
parent
ff01e6715a
commit
7732f7998c
|
@ -60,12 +60,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
// Build the steps.
|
// Build the steps.
|
||||||
steps := []multistep.Step{
|
steps := []multistep.Step{
|
||||||
&stepPrepareConfig{},
|
&stepPrepareConfig{},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&stepKeypair{
|
&stepKeypair{
|
||||||
Debug: b.config.PackerDebug,
|
Debug: b.config.PackerDebug,
|
||||||
Comm: &b.config.Comm,
|
Comm: &b.config.Comm,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -135,6 +136,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -211,12 +211,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||||
Label: b.config.FloppyConfig.FloppyLabel,
|
Label: b.config.FloppyConfig.FloppyLabel,
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&hypervcommon.StepCreateSwitch{
|
&hypervcommon.StepCreateSwitch{
|
||||||
SwitchName: b.config.SwitchName,
|
SwitchName: b.config.SwitchName,
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -141,6 +142,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -251,12 +251,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||||
Label: b.config.FloppyConfig.FloppyLabel,
|
Label: b.config.FloppyConfig.FloppyLabel,
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&hypervcommon.StepCreateSwitch{
|
&hypervcommon.StepCreateSwitch{
|
||||||
SwitchName: b.config.SwitchName,
|
SwitchName: b.config.SwitchName,
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -143,6 +144,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -209,12 +209,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||||
Label: b.config.FloppyConfig.FloppyLabel,
|
Label: b.config.FloppyConfig.FloppyLabel,
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
new(stepCreateVM),
|
new(stepCreateVM),
|
||||||
new(stepCreateDisk),
|
new(stepCreateDisk),
|
||||||
new(stepSetBootOrder),
|
new(stepSetBootOrder),
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -126,6 +127,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -20,6 +20,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -130,6 +131,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -52,12 +52,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook,
|
||||||
&stepStartVM{
|
&stepStartVM{
|
||||||
vmCreator: b.vmCreator,
|
vmCreator: b.vmCreator,
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&stepTypeBootCommand{
|
&stepTypeBootCommand{
|
||||||
BootConfig: b.config.BootConfig,
|
BootConfig: b.config.BootConfig,
|
||||||
Ctx: b.config.Ctx,
|
Ctx: b.config.Ctx,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -127,6 +128,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -20,6 +20,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -136,6 +137,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -96,12 +96,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
QemuImgArgs: b.config.QemuImgArgs,
|
QemuImgArgs: b.config.QemuImgArgs,
|
||||||
},
|
},
|
||||||
new(stepHTTPIPDiscover),
|
new(stepHTTPIPDiscover),
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&stepPortForward{
|
&stepPortForward{
|
||||||
CommunicatorType: b.config.CommConfig.Comm.Type,
|
CommunicatorType: b.config.CommConfig.Comm.Type,
|
||||||
NetBridge: b.config.NetBridge,
|
NetBridge: b.config.NetBridge,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -153,6 +154,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -298,6 +298,7 @@ func (s *stepRun) applyUserOverrides(defaultArgs map[string]interface{}, config
|
||||||
HTTPIP string
|
HTTPIP string
|
||||||
HTTPPort int
|
HTTPPort int
|
||||||
HTTPDir string
|
HTTPDir string
|
||||||
|
HTTPContent map[string]string
|
||||||
OutputDir string
|
OutputDir string
|
||||||
Name string
|
Name string
|
||||||
SSHHostPort int
|
SSHHostPort int
|
||||||
|
@ -308,6 +309,7 @@ func (s *stepRun) applyUserOverrides(defaultArgs map[string]interface{}, config
|
||||||
HTTPIP: httpIp,
|
HTTPIP: httpIp,
|
||||||
HTTPPort: httpPort,
|
HTTPPort: httpPort,
|
||||||
HTTPDir: config.HTTPDir,
|
HTTPDir: config.HTTPDir,
|
||||||
|
HTTPContent: config.HTTPContent,
|
||||||
OutputDir: config.OutputDir,
|
OutputDir: config.OutputDir,
|
||||||
Name: config.VMName,
|
Name: config.VMName,
|
||||||
SSHHostPort: commHostPort,
|
SSHHostPort: commHostPort,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -128,6 +129,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -406,12 +406,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
Label: b.config.CDConfig.CDLabel,
|
Label: b.config.CDConfig.CDLabel,
|
||||||
},
|
},
|
||||||
new(vboxcommon.StepHTTPIPDiscover),
|
new(vboxcommon.StepHTTPIPDiscover),
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&vboxcommon.StepSshKeyPair{
|
&vboxcommon.StepSshKeyPair{
|
||||||
Debug: b.config.PackerDebug,
|
Debug: b.config.PackerDebug,
|
||||||
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -162,6 +163,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -65,12 +65,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
Label: b.config.CDConfig.CDLabel,
|
Label: b.config.CDConfig.CDLabel,
|
||||||
},
|
},
|
||||||
new(vboxcommon.StepHTTPIPDiscover),
|
new(vboxcommon.StepHTTPIPDiscover),
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&vboxcommon.StepSshKeyPair{
|
&vboxcommon.StepSshKeyPair{
|
||||||
Debug: b.config.PackerDebug,
|
Debug: b.config.PackerDebug,
|
||||||
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -138,6 +139,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -64,12 +64,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
KeepRegistered: b.config.KeepRegistered,
|
KeepRegistered: b.config.KeepRegistered,
|
||||||
},
|
},
|
||||||
new(vboxcommon.StepHTTPIPDiscover),
|
new(vboxcommon.StepHTTPIPDiscover),
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&vboxcommon.StepDownloadGuestAdditions{
|
&vboxcommon.StepDownloadGuestAdditions{
|
||||||
GuestAdditionsMode: b.config.GuestAdditionsMode,
|
GuestAdditionsMode: b.config.GuestAdditionsMode,
|
||||||
GuestAdditionsURL: b.config.GuestAdditionsURL,
|
GuestAdditionsURL: b.config.GuestAdditionsURL,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -136,6 +137,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -117,12 +117,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
},
|
},
|
||||||
&vmwcommon.StepSuppressMessages{},
|
&vmwcommon.StepSuppressMessages{},
|
||||||
&vmwcommon.StepHTTPIPDiscover{},
|
&vmwcommon.StepHTTPIPDiscover{},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&vmwcommon.StepConfigureVNC{
|
&vmwcommon.StepConfigureVNC{
|
||||||
Enabled: !b.config.DisableVNC && !b.config.VNCOverWebsocket,
|
Enabled: !b.config.DisableVNC && !b.config.VNCOverWebsocket,
|
||||||
VNCBindAddress: b.config.VNCBindAddress,
|
VNCBindAddress: b.config.VNCBindAddress,
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -167,6 +168,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -108,12 +108,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
},
|
},
|
||||||
&vmwcommon.StepSuppressMessages{},
|
&vmwcommon.StepSuppressMessages{},
|
||||||
&vmwcommon.StepHTTPIPDiscover{},
|
&vmwcommon.StepHTTPIPDiscover{},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&vmwcommon.StepUploadVMX{
|
&vmwcommon.StepUploadVMX{
|
||||||
RemoteType: b.config.RemoteType,
|
RemoteType: b.config.RemoteType,
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,6 +19,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -149,6 +150,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -89,12 +89,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
HTTPIP: b.config.BootConfig.HTTPIP,
|
HTTPIP: b.config.BootConfig.HTTPIP,
|
||||||
Network: b.config.WaitIpConfig.GetIPNet(),
|
Network: b.config.WaitIpConfig.GetIPNet(),
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&common.StepSshKeyPair{
|
&common.StepSshKeyPair{
|
||||||
Debug: b.config.PackerDebug,
|
Debug: b.config.PackerDebug,
|
||||||
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
DebugKeyPath: fmt.Sprintf("%s.pem", b.config.PackerBuildName),
|
||||||
|
|
|
@ -20,6 +20,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -159,6 +160,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -92,12 +92,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
|
||||||
HTTPIP: b.config.BootConfig.HTTPIP,
|
HTTPIP: b.config.BootConfig.HTTPIP,
|
||||||
Network: b.config.WaitIpConfig.GetIPNet(),
|
Network: b.config.WaitIpConfig.GetIPNet(),
|
||||||
},
|
},
|
||||||
&commonsteps.StepHTTPServer{
|
commonsteps.HTTPServerFromHTTPConfig(&b.config.HTTPConfig),
|
||||||
HTTPDir: b.config.HTTPDir,
|
|
||||||
HTTPPortMin: b.config.HTTPPortMin,
|
|
||||||
HTTPPortMax: b.config.HTTPPortMax,
|
|
||||||
HTTPAddress: b.config.HTTPAddress,
|
|
||||||
},
|
|
||||||
&common.StepRun{
|
&common.StepRun{
|
||||||
Config: &b.config.RunConfig,
|
Config: &b.config.RunConfig,
|
||||||
SetOrder: true,
|
SetOrder: true,
|
||||||
|
|
|
@ -20,6 +20,7 @@ type FlatConfig struct {
|
||||||
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
|
||||||
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
|
||||||
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
|
||||||
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
|
||||||
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
|
||||||
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
|
||||||
|
@ -161,6 +162,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
"packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false},
|
||||||
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
"packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false},
|
||||||
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
"http_directory": &hcldec.AttrSpec{Name: "http_directory", Type: cty.String, Required: false},
|
||||||
|
"http_content": &hcldec.AttrSpec{Name: "http_content", Type: cty.Map(cty.String), Required: false},
|
||||||
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
"http_port_min": &hcldec.AttrSpec{Name: "http_port_min", Type: cty.Number, Required: false},
|
||||||
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
"http_port_max": &hcldec.AttrSpec{Name: "http_port_max", Type: cty.Number, Required: false},
|
||||||
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
"http_bind_address": &hcldec.AttrSpec{Name: "http_bind_address", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -1216,6 +1216,7 @@ var PASSTHROUGHS = map[string]string{"NVME_Present": "{{ .NVME_Present }}",
|
||||||
"WinRMPassword": "{{ .WinRMPassword }}",
|
"WinRMPassword": "{{ .WinRMPassword }}",
|
||||||
"DefaultOrganizationID": "{{ .DefaultOrganizationID }}",
|
"DefaultOrganizationID": "{{ .DefaultOrganizationID }}",
|
||||||
"HTTPDir": "{{ .HTTPDir }}",
|
"HTTPDir": "{{ .HTTPDir }}",
|
||||||
|
"HTTPContent": "{{ .HTTPContent }}",
|
||||||
"SegmentPath": "{{ .SegmentPath }}",
|
"SegmentPath": "{{ .SegmentPath }}",
|
||||||
"NewVHDSizeBytes": "{{ .NewVHDSizeBytes }}",
|
"NewVHDSizeBytes": "{{ .NewVHDSizeBytes }}",
|
||||||
"CTyp": "{{ .CTyp }}",
|
"CTyp": "{{ .CTyp }}",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
source "parallels-iso" "base-ubuntu-amd64" {
|
source "parallels-iso" "base-ubuntu-amd64" {
|
||||||
boot_wait = "10s"
|
boot_wait = "10s"
|
||||||
guest_os_type = "ubuntu"
|
guest_os_type = "ubuntu"
|
||||||
http_directory = local.http_directory
|
http_content = local.http_directory_content
|
||||||
parallels_tools_flavor = "lin"
|
parallels_tools_flavor = "lin"
|
||||||
prlctl_version_file = ".prlctl_version"
|
prlctl_version_file = ".prlctl_version"
|
||||||
shutdown_command = "echo 'vagrant' | sudo -S shutdown -P now"
|
shutdown_command = "echo 'vagrant' | sudo -S shutdown -P now"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
source "virtualbox-iso" "base-ubuntu-amd64" {
|
source "virtualbox-iso" "base-ubuntu-amd64" {
|
||||||
headless = var.headless
|
headless = var.headless
|
||||||
guest_os_type = "Ubuntu_64"
|
guest_os_type = "Ubuntu_64"
|
||||||
http_directory = local.http_directory
|
http_content = local.http_directory_content
|
||||||
shutdown_command = "echo 'vagrant' | sudo -S shutdown -P now"
|
shutdown_command = "echo 'vagrant' | sudo -S shutdown -P now"
|
||||||
ssh_username = "vagrant"
|
ssh_username = "vagrant"
|
||||||
ssh_password = "vagrant"
|
ssh_password = "vagrant"
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
variable "ubuntu_1804_version" {
|
variable "ubuntu_1804_version" {
|
||||||
default = "18.04.4"
|
default = "18.04.5"
|
||||||
}
|
}
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
iso_url_ubuntu_1804 = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04.4-server-amd64.iso"
|
iso_url_ubuntu_1804 = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-${var.ubuntu_1804_version}-server-amd64.iso"
|
||||||
iso_checksum_url_ubuntu_1804 = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/SHA256SUMS"
|
iso_checksum_url_ubuntu_1804 = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/SHA256SUMS"
|
||||||
ubuntu_1804_boot_command = [
|
ubuntu_1804_boot_command = [
|
||||||
"<esc><wait>",
|
"<esc><wait>",
|
||||||
|
|
|
@ -20,4 +20,10 @@ locals {
|
||||||
// value. This validates that the http directory exists even before starting
|
// value. This validates that the http directory exists even before starting
|
||||||
// any builder/provisioner.
|
// any builder/provisioner.
|
||||||
http_directory = dirname(convert(fileset(".", "etc/http/*"), list(string))[0])
|
http_directory = dirname(convert(fileset(".", "etc/http/*"), list(string))[0])
|
||||||
|
http_directory_content = {
|
||||||
|
"/alpine-answers" = file("${local.http_directory}/alpine-answers"),
|
||||||
|
"/alpine-setup.sh" = file("${local.http_directory}/alpine-setup.sh"),
|
||||||
|
"/preseed_hardcoded_ip.cfg" = file("${local.http_directory}/preseed_hardcoded_ip.cfg"),
|
||||||
|
"/preseed.cfg" = file("${local.http_directory}/preseed.cfg"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -51,7 +51,7 @@ require (
|
||||||
github.com/hashicorp/go-version v1.2.0
|
github.com/hashicorp/go-version v1.2.0
|
||||||
github.com/hashicorp/hcl/v2 v2.8.0
|
github.com/hashicorp/hcl/v2 v2.8.0
|
||||||
github.com/hashicorp/packer-plugin-docker v0.0.2
|
github.com/hashicorp/packer-plugin-docker v0.0.2
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.14
|
github.com/hashicorp/packer-plugin-sdk v0.1.1-0.20210323111710-5a7ab7f7a1c0
|
||||||
github.com/hashicorp/vault/api v1.0.4
|
github.com/hashicorp/vault/api v1.0.4
|
||||||
github.com/hetznercloud/hcloud-go v1.15.1
|
github.com/hetznercloud/hcloud-go v1.15.1
|
||||||
github.com/hyperonecom/h1-client-go v0.0.0-20191203060043-b46280e4c4a4
|
github.com/hyperonecom/h1-client-go v0.0.0-20191203060043-b46280e4c4a4
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -394,6 +394,7 @@ github.com/hashicorp/packer v1.6.7-0.20210125170305-539638b0f951/go.mod h1:Z3eun
|
||||||
github.com/hashicorp/packer v1.6.7-0.20210126105722-aef4ced967ec/go.mod h1:2+Vo/c/fA+TD9yFc/h9jQMFm4yG+IymQIr0OdJJOPiE=
|
github.com/hashicorp/packer v1.6.7-0.20210126105722-aef4ced967ec/go.mod h1:2+Vo/c/fA+TD9yFc/h9jQMFm4yG+IymQIr0OdJJOPiE=
|
||||||
github.com/hashicorp/packer v1.6.7-0.20210208125835-f616955ebcb6/go.mod h1:7f5ZpTTRG53rQ58BcTADuTnpiBcB3wapuxl4sF2sGMM=
|
github.com/hashicorp/packer v1.6.7-0.20210208125835-f616955ebcb6/go.mod h1:7f5ZpTTRG53rQ58BcTADuTnpiBcB3wapuxl4sF2sGMM=
|
||||||
github.com/hashicorp/packer v1.6.7-0.20210217093213-201869d627bf/go.mod h1:+EWPPcqee4h8S/y913Dnta1eJkgiqsGXBQgB75A2qV0=
|
github.com/hashicorp/packer v1.6.7-0.20210217093213-201869d627bf/go.mod h1:+EWPPcqee4h8S/y913Dnta1eJkgiqsGXBQgB75A2qV0=
|
||||||
|
github.com/hashicorp/packer v1.7.0/go.mod h1:3KRJcwOctl2JaAGpQMI1bWQRArfWNWqcYjO6AOsVVGQ=
|
||||||
github.com/hashicorp/packer-plugin-docker v0.0.2 h1:j/hQTogaN2pZfZohlZTRu5YvNZg2/qtYYHkxPBxv2Oo=
|
github.com/hashicorp/packer-plugin-docker v0.0.2 h1:j/hQTogaN2pZfZohlZTRu5YvNZg2/qtYYHkxPBxv2Oo=
|
||||||
github.com/hashicorp/packer-plugin-docker v0.0.2/go.mod h1:A2p9qztS4n88KsNF+qBM7BWw2HndW636GpFIjNSvbKM=
|
github.com/hashicorp/packer-plugin-docker v0.0.2/go.mod h1:A2p9qztS4n88KsNF+qBM7BWw2HndW636GpFIjNSvbKM=
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.6/go.mod h1:Nvh28f+Jmpp2rcaN79bULTouNkGNDRfHckhHKTAXtyU=
|
github.com/hashicorp/packer-plugin-sdk v0.0.6/go.mod h1:Nvh28f+Jmpp2rcaN79bULTouNkGNDRfHckhHKTAXtyU=
|
||||||
|
@ -403,8 +404,9 @@ github.com/hashicorp/packer-plugin-sdk v0.0.7-0.20210122130548-45a6ca0a9365/go.m
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.10-0.20210126105622-8e1648006d93/go.mod h1:AtWQLNfpn7cgH2SmZ1PTedwqNOhiPvzcuKfH5sDvIQ0=
|
github.com/hashicorp/packer-plugin-sdk v0.0.10-0.20210126105622-8e1648006d93/go.mod h1:AtWQLNfpn7cgH2SmZ1PTedwqNOhiPvzcuKfH5sDvIQ0=
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.11/go.mod h1:GNb0WNs7zibb8vzUZce1As64z2AW0FEMwhe2J7/NW5I=
|
github.com/hashicorp/packer-plugin-sdk v0.0.11/go.mod h1:GNb0WNs7zibb8vzUZce1As64z2AW0FEMwhe2J7/NW5I=
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.12/go.mod h1:hs82OYeufirGG6KRENMpjBWomnIlte99X6wXAPThJ5I=
|
github.com/hashicorp/packer-plugin-sdk v0.0.12/go.mod h1:hs82OYeufirGG6KRENMpjBWomnIlte99X6wXAPThJ5I=
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.14 h1:42WOZLmIbAYYC1WXxtlrQZN+fFdysVvTmj3jtoI6gOU=
|
|
||||||
github.com/hashicorp/packer-plugin-sdk v0.0.14/go.mod h1:tNb3XzJPnjMl3QuUdKmF47B5ImerdTakalHzUAvW0aw=
|
github.com/hashicorp/packer-plugin-sdk v0.0.14/go.mod h1:tNb3XzJPnjMl3QuUdKmF47B5ImerdTakalHzUAvW0aw=
|
||||||
|
github.com/hashicorp/packer-plugin-sdk v0.1.1-0.20210323111710-5a7ab7f7a1c0 h1:nw4RqF7C4jUWGo5PGDG4dSclU+G/vXyVBHIu5j7akd4=
|
||||||
|
github.com/hashicorp/packer-plugin-sdk v0.1.1-0.20210323111710-5a7ab7f7a1c0/go.mod h1:1d3nqB9LUsXMQaNUiL67Q+WYEtjsVcLNTX8ikVlpBrc=
|
||||||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
||||||
github.com/hashicorp/serf v0.9.2 h1:yJoyfZXo4Pk2p/M/viW+YLibBFiIbKoP79gu7kDAFP0=
|
github.com/hashicorp/serf v0.9.2 h1:yJoyfZXo4Pk2p/M/viW+YLibBFiIbKoP79gu7kDAFP0=
|
||||||
github.com/hashicorp/serf v0.9.2/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
|
github.com/hashicorp/serf v0.9.2/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
|
||||||
|
|
24
vendor/github.com/hashicorp/packer-plugin-sdk/didyoumean/name_suggestion.go
generated
vendored
Normal file
24
vendor/github.com/hashicorp/packer-plugin-sdk/didyoumean/name_suggestion.go
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package didyoumean
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/agext/levenshtein"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NameSuggestion tries to find a name from the given slice of suggested names
|
||||||
|
// that is close to the given name and returns it if found. If no suggestion is
|
||||||
|
// close enough, returns the empty string.
|
||||||
|
//
|
||||||
|
// The suggestions are tried in order, so earlier suggestions take precedence if
|
||||||
|
// the given string is similar to two or more suggestions.
|
||||||
|
//
|
||||||
|
// This function is intended to be used with a relatively-small number of
|
||||||
|
// suggestions. It's not optimized for hundreds or thousands of them.
|
||||||
|
func NameSuggestion(given string, suggestions []string) string {
|
||||||
|
for _, suggestion := range suggestions {
|
||||||
|
dist := levenshtein.Distance(given, suggestion, nil)
|
||||||
|
if dist < 3 { // threshold determined experimentally
|
||||||
|
return suggestion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
14
vendor/github.com/hashicorp/packer-plugin-sdk/multistep/commonsteps/http_config.go
generated
vendored
14
vendor/github.com/hashicorp/packer-plugin-sdk/multistep/commonsteps/http_config.go
generated
vendored
|
@ -23,6 +23,15 @@ type HTTPConfig struct {
|
||||||
// started. The address and port of the HTTP server will be available as
|
// started. The address and port of the HTTP server will be available as
|
||||||
// variables in `boot_command`. This is covered in more detail below.
|
// variables in `boot_command`. This is covered in more detail below.
|
||||||
HTTPDir string `mapstructure:"http_directory"`
|
HTTPDir string `mapstructure:"http_directory"`
|
||||||
|
// Key/Values to serve using an HTTP server. http_content works like and
|
||||||
|
// conflicts with http_directory The keys represent the paths and the values
|
||||||
|
// contents. This is useful for hosting kickstart files and so on. By
|
||||||
|
// default this is empty, which means no HTTP server will be started. The
|
||||||
|
// address and port of the HTTP server will be available as variables in
|
||||||
|
// `boot_command`. This is covered in more detail below. Example: Setting
|
||||||
|
// `"foo/bar"="baz"`, will allow you to http get on
|
||||||
|
// `http://{http_ip}:{http_port}/foo/bar`.
|
||||||
|
HTTPContent map[string]string `mapstructure:"http_content"`
|
||||||
// These are the minimum and maximum port to use for the HTTP server
|
// These are the minimum and maximum port to use for the HTTP server
|
||||||
// started to serve the `http_directory`. Because Packer often runs in
|
// started to serve the `http_directory`. Because Packer often runs in
|
||||||
// parallel, Packer will choose a randomly available port in this range to
|
// parallel, Packer will choose a randomly available port in this range to
|
||||||
|
@ -66,5 +75,10 @@ func (c *HTTPConfig) Prepare(ctx *interpolate.Context) []error {
|
||||||
errors.New("http_port_min must be less than http_port_max"))
|
errors.New("http_port_min must be less than http_port_max"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(c.HTTPContent) > 0 && len(c.HTTPDir) > 0 {
|
||||||
|
errs = append(errs,
|
||||||
|
errors.New("http_content cannot be used in conjunction with http_dir. Consider using the file function to load file in memory and serve them with http_content: https://www.packer.io/docs/templates/hcl_templates/functions/file/file"))
|
||||||
|
}
|
||||||
|
|
||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
|
81
vendor/github.com/hashicorp/packer-plugin-sdk/multistep/commonsteps/step_http_server.go
generated
vendored
81
vendor/github.com/hashicorp/packer-plugin-sdk/multistep/commonsteps/step_http_server.go
generated
vendored
|
@ -3,14 +3,28 @@ package commonsteps
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
|
"sort"
|
||||||
|
|
||||||
|
"github.com/hashicorp/packer-plugin-sdk/didyoumean"
|
||||||
"github.com/hashicorp/packer-plugin-sdk/multistep"
|
"github.com/hashicorp/packer-plugin-sdk/multistep"
|
||||||
"github.com/hashicorp/packer-plugin-sdk/net"
|
"github.com/hashicorp/packer-plugin-sdk/net"
|
||||||
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
|
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func HTTPServerFromHTTPConfig(cfg *HTTPConfig) *StepHTTPServer {
|
||||||
|
return &StepHTTPServer{
|
||||||
|
HTTPDir: cfg.HTTPDir,
|
||||||
|
HTTPContent: cfg.HTTPContent,
|
||||||
|
HTTPPortMin: cfg.HTTPPortMin,
|
||||||
|
HTTPPortMax: cfg.HTTPPortMax,
|
||||||
|
HTTPAddress: cfg.HTTPAddress,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This step creates and runs the HTTP server that is serving files from the
|
// This step creates and runs the HTTP server that is serving files from the
|
||||||
// directory specified by the 'http_directory` configuration parameter in the
|
// directory specified by the 'http_directory` configuration parameter in the
|
||||||
// template.
|
// template.
|
||||||
|
@ -22,6 +36,7 @@ import (
|
||||||
// http_port int - The port the HTTP server started on.
|
// http_port int - The port the HTTP server started on.
|
||||||
type StepHTTPServer struct {
|
type StepHTTPServer struct {
|
||||||
HTTPDir string
|
HTTPDir string
|
||||||
|
HTTPContent map[string]string
|
||||||
HTTPPortMin int
|
HTTPPortMin int
|
||||||
HTTPPortMax int
|
HTTPPortMax int
|
||||||
HTTPAddress string
|
HTTPAddress string
|
||||||
|
@ -29,16 +44,58 @@ type StepHTTPServer struct {
|
||||||
l *net.Listener
|
l *net.Listener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *StepHTTPServer) Handler() http.Handler {
|
||||||
|
if s.HTTPDir != "" {
|
||||||
|
return http.FileServer(http.Dir(s.HTTPDir))
|
||||||
|
}
|
||||||
|
|
||||||
|
return MapServer(s.HTTPContent)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MapServer map[string]string
|
||||||
|
|
||||||
|
func (s MapServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
path := path.Clean(r.URL.Path)
|
||||||
|
content, found := s[path]
|
||||||
|
if !found {
|
||||||
|
paths := make([]string, 0, len(s))
|
||||||
|
for k := range s {
|
||||||
|
paths = append(paths, k)
|
||||||
|
}
|
||||||
|
sort.Strings(paths)
|
||||||
|
err := fmt.Sprintf("%s not found.", path)
|
||||||
|
if sug := didyoumean.NameSuggestion(path, paths); sug != "" {
|
||||||
|
err += fmt.Sprintf(" Did you mean %q?", sug)
|
||||||
|
}
|
||||||
|
|
||||||
|
http.Error(w, err, http.StatusNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := w.Write([]byte(content)); err != nil {
|
||||||
|
// log err in case the file couldn't be 100% transferred for example.
|
||||||
|
log.Printf("http_content serve error: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (s *StepHTTPServer) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *StepHTTPServer) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
ui := state.Get("ui").(packersdk.Ui)
|
ui := state.Get("ui").(packersdk.Ui)
|
||||||
|
|
||||||
if s.HTTPDir == "" {
|
if s.HTTPDir == "" && len(s.HTTPContent) == 0 {
|
||||||
state.Put("http_port", 0)
|
state.Put("http_port", 0)
|
||||||
return multistep.ActionContinue
|
return multistep.ActionContinue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.HTTPDir != "" {
|
||||||
|
if _, err := os.Stat(s.HTTPDir); err != nil {
|
||||||
|
err := fmt.Errorf("Error finding %q: %s", s.HTTPDir, err)
|
||||||
|
state.Put("error", err)
|
||||||
|
ui.Error(err.Error())
|
||||||
|
return multistep.ActionHalt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Find an available TCP port for our HTTP server
|
// Find an available TCP port for our HTTP server
|
||||||
var httpAddr string
|
|
||||||
var err error
|
var err error
|
||||||
s.l, err = net.ListenRangeConfig{
|
s.l, err = net.ListenRangeConfig{
|
||||||
Min: s.HTTPPortMin,
|
Min: s.HTTPPortMin,
|
||||||
|
@ -57,8 +114,7 @@ func (s *StepHTTPServer) Run(ctx context.Context, state multistep.StateBag) mult
|
||||||
ui.Say(fmt.Sprintf("Starting HTTP server on port %d", s.l.Port))
|
ui.Say(fmt.Sprintf("Starting HTTP server on port %d", s.l.Port))
|
||||||
|
|
||||||
// Start the HTTP server and run it in the background
|
// Start the HTTP server and run it in the background
|
||||||
fileServer := http.FileServer(http.Dir(s.HTTPDir))
|
server := &http.Server{Addr: "", Handler: s.Handler()}
|
||||||
server := &http.Server{Addr: httpAddr, Handler: fileServer}
|
|
||||||
go server.Serve(s.l)
|
go server.Serve(s.l)
|
||||||
|
|
||||||
// Save the address into the state so it can be accessed in the future
|
// Save the address into the state so it can be accessed in the future
|
||||||
|
@ -67,9 +123,20 @@ func (s *StepHTTPServer) Run(ctx context.Context, state multistep.StateBag) mult
|
||||||
return multistep.ActionContinue
|
return multistep.ActionContinue
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepHTTPServer) Cleanup(multistep.StateBag) {
|
func (s *StepHTTPServer) Cleanup(state multistep.StateBag) {
|
||||||
if s.l != nil {
|
if s.l != nil {
|
||||||
|
ui := state.Get("ui").(packersdk.Ui)
|
||||||
|
|
||||||
// Close the listener so that the HTTP server stops
|
// Close the listener so that the HTTP server stops
|
||||||
s.l.Close()
|
if err := s.l.Close(); err != nil {
|
||||||
|
err = fmt.Errorf("Failed closing http server on port %d: %w", s.l.Port, err)
|
||||||
|
ui.Error(err.Error())
|
||||||
|
// Here this error should be shown to the UI but it won't
|
||||||
|
// specifically stop Packer from terminating successfully. It could
|
||||||
|
// cause a "Listen leak" if it happenned a lot. Though Listen will
|
||||||
|
// try other ports if one is already used. In the case we want to
|
||||||
|
// Listen on only one port, the next Listen call could fail or be
|
||||||
|
// longer than expected.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,10 @@ func Vault(path string, key string) (string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// neither v1 nor v2 proudced a valid value
|
// neither v1 nor v2 proudced a valid value
|
||||||
return "", fmt.Errorf("Vault data was empty at the given path. Warnings: %s", strings.Join(secret.Warnings, "; "))
|
return "", fmt.Errorf("Vault data was empty at the given path. Check "+
|
||||||
|
"the Vault function docs for help: "+
|
||||||
|
"https://www.packer.io/docs/templates/hcl_templates/functions/contextual/vault. "+
|
||||||
|
"Original warnings from Vault call: %s", strings.Join(secret.Warnings, "; "))
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, ok := data.(map[string]interface{})[key]; ok {
|
if val, ok := data.(map[string]interface{})[key]; ok {
|
||||||
|
|
|
@ -13,12 +13,12 @@ import (
|
||||||
var GitCommit string
|
var GitCommit string
|
||||||
|
|
||||||
// Package version helps plugin creators set and track the sdk version using
|
// Package version helps plugin creators set and track the sdk version using
|
||||||
var Version = "0.0.14"
|
var Version = "0.1.1"
|
||||||
|
|
||||||
// A pre-release marker for the version. If this is "" (empty string)
|
// A pre-release marker for the version. If this is "" (empty string)
|
||||||
// then it means that it is a final release. Otherwise, this is a pre-release
|
// then it means that it is a final release. Otherwise, this is a pre-release
|
||||||
// such as "dev" (in development), "beta", "rc1", etc.
|
// such as "dev" (in development), "beta", "rc1", etc.
|
||||||
var VersionPrerelease = ""
|
var VersionPrerelease = "dev"
|
||||||
|
|
||||||
// SDKVersion is used by the plugin set to allow Packer to recognize
|
// SDKVersion is used by the plugin set to allow Packer to recognize
|
||||||
// what version of the sdk the plugin is.
|
// what version of the sdk the plugin is.
|
||||||
|
|
|
@ -428,7 +428,7 @@ github.com/hashicorp/packer-plugin-docker/post-processor/docker-import
|
||||||
github.com/hashicorp/packer-plugin-docker/post-processor/docker-push
|
github.com/hashicorp/packer-plugin-docker/post-processor/docker-push
|
||||||
github.com/hashicorp/packer-plugin-docker/post-processor/docker-save
|
github.com/hashicorp/packer-plugin-docker/post-processor/docker-save
|
||||||
github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag
|
github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag
|
||||||
# github.com/hashicorp/packer-plugin-sdk v0.0.14
|
# github.com/hashicorp/packer-plugin-sdk v0.1.1-0.20210323111710-5a7ab7f7a1c0
|
||||||
## explicit
|
## explicit
|
||||||
github.com/hashicorp/packer-plugin-sdk/acctest
|
github.com/hashicorp/packer-plugin-sdk/acctest
|
||||||
github.com/hashicorp/packer-plugin-sdk/acctest/provisioneracc
|
github.com/hashicorp/packer-plugin-sdk/acctest/provisioneracc
|
||||||
|
@ -440,6 +440,7 @@ github.com/hashicorp/packer-plugin-sdk/common
|
||||||
github.com/hashicorp/packer-plugin-sdk/communicator
|
github.com/hashicorp/packer-plugin-sdk/communicator
|
||||||
github.com/hashicorp/packer-plugin-sdk/communicator/ssh
|
github.com/hashicorp/packer-plugin-sdk/communicator/ssh
|
||||||
github.com/hashicorp/packer-plugin-sdk/communicator/sshkey
|
github.com/hashicorp/packer-plugin-sdk/communicator/sshkey
|
||||||
|
github.com/hashicorp/packer-plugin-sdk/didyoumean
|
||||||
github.com/hashicorp/packer-plugin-sdk/filelock
|
github.com/hashicorp/packer-plugin-sdk/filelock
|
||||||
github.com/hashicorp/packer-plugin-sdk/guestexec
|
github.com/hashicorp/packer-plugin-sdk/guestexec
|
||||||
github.com/hashicorp/packer-plugin-sdk/hcl2helper
|
github.com/hashicorp/packer-plugin-sdk/hcl2helper
|
||||||
|
|
|
@ -89,25 +89,10 @@ builder.
|
||||||
- `expunge` (boolean) - Set to `true` to expunge the instance when it is
|
- `expunge` (boolean) - Set to `true` to expunge the instance when it is
|
||||||
destroyed. Defaults to `false`.
|
destroyed. Defaults to `false`.
|
||||||
|
|
||||||
- `http_directory` (string) - Path to a directory to serve using an HTTP
|
|
||||||
server. The files in this directory will be available over HTTP that will
|
|
||||||
be requestable from the virtual machine. This is useful for hosting
|
|
||||||
kickstart files and so on. By default this is "", which means no HTTP
|
|
||||||
server will be started. The address and port of the HTTP server will be
|
|
||||||
available as variables in `user_data`. This is covered in more detail
|
|
||||||
below.
|
|
||||||
|
|
||||||
- `http_get_only` (boolean) - Some cloud providers only allow HTTP GET calls
|
- `http_get_only` (boolean) - Some cloud providers only allow HTTP GET calls
|
||||||
to their CloudStack API. If using such a provider, you need to set this to
|
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.
|
`true` in order for the provider to only make GET calls and no POST calls.
|
||||||
|
|
||||||
- `http_port_min` and `http_port_max` (number) - These are the minimum and
|
|
||||||
maximum port to use for the HTTP server started to serve the
|
|
||||||
`http_directory`. Because Packer often runs in parallel, Packer will choose
|
|
||||||
a randomly available port in this range to run the HTTP server. If you want
|
|
||||||
to force the HTTP server to be on one port, make this minimum and maximum
|
|
||||||
port the same. By default the values are 8000 and 9000, respectively.
|
|
||||||
|
|
||||||
- `hypervisor` (string) - The target hypervisor (e.g. `XenServer`, `KVM`) for
|
- `hypervisor` (string) - The target hypervisor (e.g. `XenServer`, `KVM`) for
|
||||||
the new template. This option is required when using `source_iso`.
|
the new template. This option is required when using `source_iso`.
|
||||||
|
|
||||||
|
|
|
@ -146,20 +146,6 @@ can also be supplied to override the typical auto-generated key:
|
||||||
\["en0", "en1", "en2", "en3", "en4", "en5", "en6", "en7", "en8", "en9",
|
\["en0", "en1", "en2", "en3", "en4", "en5", "en6", "en7", "en8", "en9",
|
||||||
"ppp0", "ppp1", "ppp2"\].
|
"ppp0", "ppp1", "ppp2"\].
|
||||||
|
|
||||||
- `http_directory` (string) - Path to a directory to serve using an
|
|
||||||
HTTP server. The files in this directory will be available over HTTP that
|
|
||||||
will be requestable from the virtual machine. This is useful for hosting
|
|
||||||
kickstart files and so on. By default this is "", which means no HTTP server
|
|
||||||
will be started. The address and port of the HTTP server will be available
|
|
||||||
as variables in `boot_command`. This is covered in more detail below.
|
|
||||||
|
|
||||||
- `http_port_min` and `http_port_max` (number) - These are the minimum and
|
|
||||||
maximum port to use for the HTTP server started to serve the
|
|
||||||
`http_directory`. Because Packer often runs in parallel, Packer will choose
|
|
||||||
a randomly available port in this range to run the HTTP server. If you want
|
|
||||||
to force the HTTP server to be on one port, make this minimum and maximum
|
|
||||||
port the same. By default the values are 8000 and 9000, respectively.
|
|
||||||
|
|
||||||
- `memory` (number) - The amount of memory to use for building the VM in
|
- `memory` (number) - The amount of memory to use for building the VM in
|
||||||
megabytes. Defaults to `512` megabytes.
|
megabytes. Defaults to `512` megabytes.
|
||||||
|
|
||||||
|
@ -231,6 +217,14 @@ can also be supplied to override the typical auto-generated key:
|
||||||
virtual machine, without the file extension. By default this is
|
virtual machine, without the file extension. By default this is
|
||||||
"packer-BUILDNAME", where "BUILDNAME" is the name of the build.
|
"packer-BUILDNAME", where "BUILDNAME" is the name of the build.
|
||||||
|
|
||||||
|
## Http directory configuration reference
|
||||||
|
|
||||||
|
@include 'packer-plugin-sdk/multistep/commonsteps/HTTPConfig.mdx'
|
||||||
|
|
||||||
|
### Optional:
|
||||||
|
|
||||||
|
@include 'packer-plugin-sdk/multistep/commonsteps/HTTPConfig-not-required.mdx'
|
||||||
|
|
||||||
## Boot Command
|
## Boot Command
|
||||||
|
|
||||||
The `boot_command` configuration is very important: it specifies the keys to
|
The `boot_command` configuration is very important: it specifies the keys to
|
||||||
|
|
|
@ -180,11 +180,10 @@ build {
|
||||||
## Slowness when transferring large files over WinRM.
|
## Slowness when transferring large files over WinRM.
|
||||||
|
|
||||||
Because of the way our WinRM transfers works, it can take a very long time to
|
Because of the way our WinRM transfers works, it can take a very long time to
|
||||||
upload and download even moderately sized files. If you're experiencing
|
upload and download even moderately sized files. If you're experiencing slowness
|
||||||
slowness using the file provisioner on Windows, it's suggested that you set up
|
using the file provisioner on Windows, it's suggested that you set up an SSH
|
||||||
an SSH server and use the [ssh
|
server and use the [ssh communicator](/docs/communicators/ssh). If you only want
|
||||||
communicator](/docs/communicators/ssh). If you only
|
to transfer files to your guest, and if your builder supports it, you may also
|
||||||
want to transfer files to your guest, and if your builder supports it, you may
|
use the `http_directory` or `http_content` directives. This will cause that
|
||||||
also use the `http_directory` directive. This will cause that directory to be
|
directory to be available to the guest over http, and set the environment
|
||||||
available to the guest over http, and set the environment variable
|
variable `PACKER_HTTP_ADDR` to the address.
|
||||||
`PACKER_HTTP_ADDR` to the address.
|
|
||||||
|
|
|
@ -41,10 +41,10 @@ comment or uncomment the options as you need them.
|
||||||
|
|
||||||
## Where to put the preseed file
|
## Where to put the preseed file
|
||||||
|
|
||||||
The `-iso` builders mentioned above all have an `http_dir` option. Any file
|
The `-iso` builders mentioned above all have an `http_dir` or an `http_content`
|
||||||
inside of your `http_dir` will be served on a local fileserver for your virtual
|
option. Any file inside of your `http_dir` or `http_content` will be served on a
|
||||||
machine to be able to access. One very common use for this directory is to use
|
local fileserver for your virtual machine to be able to access. One very common
|
||||||
it to provide your preseed file.
|
use for this directory is to use it to provide your preseed file.
|
||||||
|
|
||||||
You then reference the file using a `boot_command` to kick off the installation.
|
You then reference the file using a `boot_command` to kick off the installation.
|
||||||
In the example below, see how the `preseed/url` command line option is being
|
In the example below, see how the `preseed/url` command line option is being
|
||||||
|
|
|
@ -60,8 +60,8 @@ available variables are:
|
||||||
|
|
||||||
- `HTTPIP` and `HTTPPort` - The IP and port, respectively of an HTTP server
|
- `HTTPIP` and `HTTPPort` - The IP and port, respectively of an HTTP server
|
||||||
that is started serving the directory specified by the `http_directory`
|
that is started serving the directory specified by the `http_directory`
|
||||||
configuration parameter. If `http_directory` isn't specified, these will be
|
configuration parameter or the content specified in the `http_content` map. If
|
||||||
blank!
|
`http_directory` or `http_content` isn't specified, these will be blank!
|
||||||
- `Name` - The name of the VM.
|
- `Name` - The name of the VM.
|
||||||
|
|
||||||
For more examples of various boot commands, see the sample projects from our
|
For more examples of various boot commands, see the sample projects from our
|
||||||
|
|
|
@ -7,6 +7,15 @@
|
||||||
started. The address and port of the HTTP server will be available as
|
started. The address and port of the HTTP server will be available as
|
||||||
variables in `boot_command`. This is covered in more detail below.
|
variables in `boot_command`. This is covered in more detail below.
|
||||||
|
|
||||||
|
- `http_content` (map[string]string) - Key/Values to serve using an HTTP server. http_content works like and
|
||||||
|
conflicts with http_directory The keys represent the paths and the values
|
||||||
|
contents. This is useful for hosting kickstart files and so on. By
|
||||||
|
default this is empty, which means no HTTP server will be started. The
|
||||||
|
address and port of the HTTP server will be available as variables in
|
||||||
|
`boot_command`. This is covered in more detail below. Example: Setting
|
||||||
|
`"foo/bar"="baz"`, will allow you to http get on
|
||||||
|
`http://{http_ip}:{http_port}/foo/bar`.
|
||||||
|
|
||||||
- `http_port_min` (int) - These are the minimum and maximum port to use for the HTTP server
|
- `http_port_min` (int) - These are the minimum and maximum port to use for the HTTP server
|
||||||
started to serve the `http_directory`. Because Packer often runs in
|
started to serve the `http_directory`. Because Packer often runs in
|
||||||
parallel, Packer will choose a randomly available port in this range to
|
parallel, Packer will choose a randomly available port in this range to
|
||||||
|
|
Loading…
Reference in New Issue