Documentation
¶
Index ¶
- Constants
- func RunCommand(args ...string) error
- func ShellCommand(command string) *exec.Cmd
- type Artifact
- type Builder
- type CommandWrapper
- type Config
- type LxcAttachCommunicator
- func (c *LxcAttachCommunicator) CheckInit() (string, error)
- func (c *LxcAttachCommunicator) Download(src string, w io.Writer) error
- func (c *LxcAttachCommunicator) DownloadDir(src string, dst string, exclude []string) error
- func (c *LxcAttachCommunicator) Execute(commandString string) (*exec.Cmd, error)
- func (c *LxcAttachCommunicator) Start(ctx context.Context, cmd *packer.RemoteCmd) error
- func (c *LxcAttachCommunicator) Upload(dst string, r io.Reader, fi *os.FileInfo) error
- func (c *LxcAttachCommunicator) UploadDir(dst string, src string, exclude []string) error
- type StepProvision
- type StepWaitInit
Constants ¶
View Source
const BuilderId = "ustream.lxc"
The unique ID for this builder
Variables ¶
This section is empty.
Functions ¶
func RunCommand ¶ added in v1.3.0
func ShellCommand ¶
ShellCommand takes a command string and returns an *exec.Cmd to execute it within the context of a shell (/bin/sh).
Types ¶
type CommandWrapper ¶
CommandWrapper is a type that given a command, will possibly modify that command in-flight. This might return an error.
type Config ¶
type Config struct {
common.PackerConfig `mapstructure:",squash"`
// The path to the lxc configuration file.
ConfigFile string `mapstructure:"config_file" required:"true"`
// The directory in which to save the exported
// tar.gz. Defaults to output-<BuildName> in the current directory.
OutputDir string `mapstructure:"output_directory" required:"false"`
// The name of the LXC container. Usually stored
// in /var/lib/lxc/containers/<container_name>. Defaults to
// packer-<BuildName>.
ContainerName string `mapstructure:"container_name" required:"false"`
// Allows you to specify a wrapper command, such
// as ssh so you can execute packer builds on a remote host. Defaults to
// Empty.
CommandWrapper string `mapstructure:"command_wrapper" required:"false"`
// The timeout in seconds to wait for the the
// container to start. Defaults to 20 seconds.
RawInitTimeout string `mapstructure:"init_timeout" required:"false"`
// Options to pass to lxc-create. For
// instance, you can specify a custom LXC container configuration file with
// ["-f", "/path/to/lxc.conf"]. Defaults to []. See man 1 lxc-create for
// available options.
CreateOptions []string `mapstructure:"create_options" required:"false"`
// Options to pass to lxc-start. For
// instance, you can override parameters from the LXC container configuration
// file via ["--define", "KEY=VALUE"]. Defaults to []. See
// man 1 lxc-start for available options.
StartOptions []string `mapstructure:"start_options" required:"false"`
// Options to pass to lxc-attach. For
// instance, you can prevent the container from inheriting the host machine's
// environment by specifying ["--clear-env"]. Defaults to []. See
// man 1 lxc-attach for available options.
AttachOptions []string `mapstructure:"attach_options" required:"false"`
// The LXC template name to use.
Name string `mapstructure:"template_name" required:"true"`
// Options to pass to the given
// lxc-template command, usually located in
// /usr/share/lxc/templates/lxc-<template_name>. Note: This gets passed as
// ARGV to the template command. Ensure you have an array of strings, as a
// single string with spaces probably won't work. Defaults to [].
Parameters []string `mapstructure:"template_parameters" required:"false"`
// Environmental variables to
// use to build the template with.
EnvVars []string `mapstructure:"template_environment_vars" required:"true"`
// The minimum run level to wait for the
// container to reach. Note some distributions (Ubuntu) simulate run levels
// and may report 5 rather than 3.
TargetRunlevel int `mapstructure:"target_runlevel" required:"false"`
InitTimeout time.Duration
// contains filtered or unexported fields
}
type LxcAttachCommunicator ¶
type LxcAttachCommunicator struct {
RootFs string
ContainerName string
AttachOptions []string
CmdWrapper CommandWrapper
}
func (*LxcAttachCommunicator) CheckInit ¶
func (c *LxcAttachCommunicator) CheckInit() (string, error)
func (*LxcAttachCommunicator) Download ¶
func (c *LxcAttachCommunicator) Download(src string, w io.Writer) error
func (*LxcAttachCommunicator) DownloadDir ¶
func (c *LxcAttachCommunicator) DownloadDir(src string, dst string, exclude []string) error
func (*LxcAttachCommunicator) Execute ¶
func (c *LxcAttachCommunicator) Execute(commandString string) (*exec.Cmd, error)
type StepProvision ¶
type StepProvision struct{}
StepProvision provisions the instance within a chroot.
func (*StepProvision) Cleanup ¶
func (s *StepProvision) Cleanup(state multistep.StateBag)
func (*StepProvision) Run ¶
func (s *StepProvision) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepWaitInit ¶
func (*StepWaitInit) Cleanup ¶
func (s *StepWaitInit) Cleanup(multistep.StateBag)
func (*StepWaitInit) Run ¶
func (s *StepWaitInit) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
Click to show internal directories.
Click to hide internal directories.