manual

package
v0.0.0-...-b0bff92 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2021 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const ManualInstancePrefix = "manual:"

Variables

View Source
var (
	// ErrProvisioned is returned by ProvisionMachine if the target
	// machine has an existing machine agent.
	ErrProvisioned = errors.New("machine is already provisioned")
)

Functions

func HostAddress

func HostAddress(hostname string) (network.ProviderAddress, error)

HostAddress returns an network.Address for the specified hostname, depending on whether it is an IP or a resolvable hostname. The address is given public scope.

func RecordMachineInState

func RecordMachineInState(client ProvisioningClientAPI, machineParams params.AddMachineParams) (machineId string, err error)

RecordMachineInState records and saves into the state machine the provisioned machine

Types

type ProvisionMachineArgs

type ProvisionMachineArgs struct {
	// user and host of the ssh or winrm conn
	Host string
	User string

	// DataDir is the root directory for juju data.
	// If left blank, the default location "/var/lib/juju" will be used.
	DataDir string

	// Client provides the API needed to provision the machines.
	Client ProvisioningClientAPI

	// Stdin is required to respond to sudo prompts,
	// and must be a terminal (except in tests)
	Stdin io.Reader

	// Stdout is required to present sudo prompts to the user.
	Stdout io.Writer

	// Stderr is required to present machine provisioning progress to the user.
	Stderr io.Writer

	// AuthorizedKeys contains the concatenated authorized-keys to add to the
	// ubuntu user's ~/.ssh/authorized_keys.
	AuthorizedKeys string

	// WinRM contains keys and client interface api with the remote windows machine
	WinRM WinRMArgs

	*params.UpdateBehavior
}

ProvisionMachineArgs used for arguments for the Provisioner methods

type ProvisionMachineFunc

type ProvisionMachineFunc func(ProvisionMachineArgs) (machineId string, err error)

ProvisionMachineFunc that every provisioner should have

type ProvisioningClientAPI

type ProvisioningClientAPI interface {
	AddMachines([]params.AddMachineParams) ([]params.AddMachinesResult, error)
	ForceDestroyMachines(machines ...string) error
	ProvisioningScript(params.ProvisioningScriptParams) (script string, err error)
}

ProvisioningClientAPI defines the methods that are needed for the manual provisioning of machines. An interface is used here to decouple the API consumer from the actual API implementation type.

type WinRMArgs

type WinRMArgs struct {
	// Keys that contains CACert, ClientCert, ClientKey
	Keys *winrm.X509

	// Client for interacting with windows machines
	Client WinrmClientAPI
}

WinRMArgs used for providing special context on how we interface with the windows machine

type WinrmClientAPI

type WinrmClientAPI interface {
	Ping() error
	Run(cmd string, stdout, stderr io.Writer) error
	Password() string
}

WinrmClientAPI minimal interface for winrm windows machines interactions

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL