Documentation
¶
Index ¶
- func Add(add ...Item)
- func AddFromSource(source string, add ...Item)
- func Apply() error
- func RedError(e error) string
- func RedPrintln(s string)
- func SetAssetLoader(fn func(string) (io.ReadCloser, error))
- func SetDescribe(s string)
- func SetSourcePrefix(s string)
- func SetTitle(s string)
- func Warnf(str string, args ...interface{})
- type Cmd
- type Color
- type File
- func (f *File) Apply(host *Host) (itemStatus, error)
- func (f *File) Clone() Item
- func (f *File) ID() int
- func (f *File) Needs() []string
- func (f *File) Provides() []string
- func (f *File) SetID(id int)
- func (f *File) StaticFiles() []string
- func (f *File) String() string
- func (f *File) Validate() error
- type FileInfo
- type FuncType
- type Function
- func (f *Function) Apply(host *Host) (itemStatus, error)
- func (f *Function) Clone() Item
- func (f *Function) ID() int
- func (f *Function) Needs() []string
- func (f *Function) Provides() []string
- func (f *Function) SetID(id int)
- func (f *Function) StaticFiles() []string
- func (f *Function) String() string
- func (f *Function) Validate() error
- type Group
- type Host
- func (host *Host) Add(add ...Item) error
- func (host *Host) AddFromSource(source string, add ...Item) error
- func (host *Host) Command(ctx context.Context, path string, args ...string) *Cmd
- func (host *Host) Create(path string) (io.WriteCloser, error)
- func (host *Host) Key() string
- func (host *Host) Open(path string) (io.ReadCloser, error)
- func (host *Host) ReadFile(path string) ([]byte, error)
- func (host *Host) Remove(path string) error
- func (host *Host) Stat(path string) (os.FileInfo, error)
- func (host *Host) String() string
- type Item
- type Package
- type Run
- type SSHWriter
- type StaticFiler
- type User
- type Validator
- type VaultResponse
- type VaultResponseData
- type Virtual
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddFromSource ¶
Add to the default run context with explicit source path
func RedPrintln ¶
func RedPrintln(s string)
func SetAssetLoader ¶
func SetAssetLoader(fn func(string) (io.ReadCloser, error))
func SetDescribe ¶
func SetDescribe(s string)
func SetSourcePrefix ¶
func SetSourcePrefix(s string)
Types ¶
type Cmd ¶ added in v0.0.12
type Cmd struct {
Path string
Args []string
Env [][2]string
Dir string
Shell bool // when ssh-ing, try to start a shell instead of just executing a command (gives you working environment vars, etc)
Stdin io.Reader
Stdout io.Writer
Stderr io.Writer
Context context.Context
// contains filtered or unexported fields
}
type File ¶
type File struct {
Path string `khan:"path,shortkey"`
User User
Mode os.FileMode
// Content specifies a static string for the content of the file.
Content string
// Src is a path on the configurer for the source of the file.
// This will be bundled into your khan build output.
Src string `khan:"src,shortvalue"`
// Local is a path on the configuree for the source of the file
Local string
// Template execution mode. Leave blank for no templating. Special
// value "1" is the same as the default templating engine "pongo2",
// a jinja2 style template engine. (See https://github.com/flosch/pongo2)
Template string
Delete bool
// contains filtered or unexported fields
}
func (*File) StaticFiles ¶
type Function ¶ added in v0.0.12
type Function struct {
Fn FuncType
// contains filtered or unexported fields
}
func (*Function) StaticFiles ¶ added in v0.0.12
type Host ¶ added in v0.0.12
type Host struct {
Run *Run
Name string // Friendly name for host
SSH bool
Host string // Host for SSH
VirtMu sync.RWMutex
Virt *Virtual // Virtual model of the host
}
Host is the context for an execution run on a specific server. It contains a virtual model of all changes we are capable of making on a server, including service status and a filesystem. This way a dry run can be pixel-perfect.
func (*Host) AddFromSource ¶ added in v0.0.12
type Item ¶
type Run ¶ added in v0.0.12
type Run struct {
Dry bool
Diff bool
Verbose bool
Pool *sshpool.Pool
Hosts []*Host
User string
// contains filtered or unexported fields
}
Run is the context for an execution run, on one or more servers.
type SSHWriter ¶ added in v0.0.12
type SSHWriter struct {
// contains filtered or unexported fields
}
type StaticFiler ¶
type StaticFiler interface {
StaticFiles() []string
}
type User ¶
type User struct {
Name string
// Primary group. If not specified, user name is used
Group string
Uid int
// Supplemental groups
Groups []string
Gecos string
Home string
Shell string
// Password is the passord encrypted with libcrypt.
// Password if blank will actually be set to "!". If "!", "!!", or "x" are found
// in /etc/shadow, it will be translated to a blank password. If you want an actually
// blank password (not safe) use BlankPassword: true (blank_password: true in yaml).
Password string
BlankPassword bool `khan:"blank_password"`
Delete bool
// contains filtered or unexported fields
}
type VaultResponse ¶ added in v0.0.9
type VaultResponse struct {
Data VaultResponseData
}
type VaultResponseData ¶ added in v0.0.9
type Virtual ¶ added in v0.0.12
type Virtual struct {
// Host metadata extracted from uname command
Uname string
Hostname string
Kernel string
OS string
Arch string
// File system model
Files map[string]os.FileInfo
Contents map[string]string
// User and group model
Users map[string]*User
Groups map[string]*Group
}
Virtual is an in-memory model for all changes we are capable of making on a server, including service status and a filesystem. This way a dry run can be pixel-perfect.
If you start managing files with contents too large for RAM, this will need to be improved. (Currently all managed files, including contents, are in kept in memory in their entirety.)
func NewVirtual ¶ added in v0.0.12
func NewVirtual() *Virtual