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