Documentation ¶
Index ¶
- Variables
- func FindSSHAuthorizedKeysFile(ctx context.Context, exec ctxt.Executor) string
- func New(etype SSHType, sudo bool, c SSHConfig, env []string) (ctxt.Executor, error)
- func ScpDownload(session *ssh.Session, client *ssh.Client, src, dst string, limit int) error
- type CheckPointExecutor
- type EasySSHExecutor
- func (e *EasySSHExecutor) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
- func (e *EasySSHExecutor) Transfer(ctx context.Context, src, dst string, download bool, limit int) error
- func (e *EasySSHExecutor) TransferTemplate(ctx context.Context, templateFile, dst, fileMode string, config interface{}, ...) error
- type Local
- func (l *Local) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
- func (l *Local) Transfer(ctx context.Context, src, dst string, download bool, limit int) error
- func (l *Local) TransferTemplate(ctx context.Context, templateFile, dst, fileMode string, config interface{}, ...) error
- type NativeSSHExecutor
- func (e *NativeSSHExecutor) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
- func (e *NativeSSHExecutor) Transfer(ctx context.Context, src, dst string, download bool, limit int) error
- func (e *NativeSSHExecutor) TransferTemplate(ctx context.Context, templateFile, dst, fileMode string, config interface{}, ...) error
- type SSHConfig
- type SSHType
Constants ¶
This section is empty.
Variables ¶
var ( // ErrPropSSHCommand is ErrPropSSHCommand ErrPropSSHCommand = errorx.RegisterPrintableProperty("ssh_command") // ErrPropSSHStdout is ErrPropSSHStdout ErrPropSSHStdout = errorx.RegisterPrintableProperty("ssh_stdout") // ErrPropSSHStderr is ErrPropSSHStderr ErrPropSSHStderr = errorx.RegisterPrintableProperty("ssh_stderr") // ErrSSHExecuteFailed is ErrSSHExecuteFailed ErrSSHExecuteFailed = errNSSSH.NewType("execute_failed") // ErrSSHExecuteTimedout is ErrSSHExecuteTimedout ErrSSHExecuteTimedout = errNSSSH.NewType("execute_timedout") )
Functions ¶
func FindSSHAuthorizedKeysFile ¶
FindSSHAuthorizedKeysFile finds the correct path of SSH authorized keys file
Types ¶
type CheckPointExecutor ¶
CheckPointExecutor wraps Executor and inject checkpoints
ATTENTION please: the result of CheckPointExecutor shouldn't be used to impact external system like PD, otherwise, the external system may take wrong action.
type EasySSHExecutor ¶
type EasySSHExecutor struct { Config *easyssh.MakeConfig Locale string // the locale used when executing the command Sudo bool // all commands run with this executor will be using sudo Env []string // env used to be transferred }
EasySSHExecutor implements Executor with EasySSH as transportation layer.
func (*EasySSHExecutor) Execute ¶
func (e *EasySSHExecutor) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
Execute run the command via SSH, it's not invoking any specific shell by default.
func (*EasySSHExecutor) Transfer ¶
func (e *EasySSHExecutor) Transfer(ctx context.Context, src, dst string, download bool, limit int) error
Transfer copies files via SCP This function depends on `scp` (a tool from OpenSSH or other SSH implementation) This function is based on easyssh.MakeConfig.Scp() but with support of copying file from remote to local.
func (*EasySSHExecutor) TransferTemplate ¶
type Local ¶
type Local struct { Config *SSHConfig Sudo bool // all commands run with this executor will be using sudo Locale string // the locale used when executing the command Env []string // env used to be transferred }
Local execute the command at local host.
func (*Local) Execute ¶
func (l *Local) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
Execute implements Executor interface.
type NativeSSHExecutor ¶
type NativeSSHExecutor struct { Config *SSHConfig Locale string // the locale used when executing the command Sudo bool // all commands run with this executor will be using sudo Env []string // env used to be transferred ConnectionTestResult error // test if the connection can be established in initialization phase }
NativeSSHExecutor implements Excutor with native SSH transportation layer.
func (*NativeSSHExecutor) Execute ¶
func (e *NativeSSHExecutor) Execute(ctx context.Context, cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)
Execute run the command via SSH, it's not invoking any specific shell by default.
func (*NativeSSHExecutor) Transfer ¶
func (e *NativeSSHExecutor) Transfer(ctx context.Context, src, dst string, download bool, limit int) error
Transfer copies files via SCP This function depends on `scp` (a tool from OpenSSH or other SSH implementation)
func (*NativeSSHExecutor) TransferTemplate ¶
type SSHConfig ¶
type SSHConfig struct { Host string // hostname of the SSH server Port int // port of the SSH server User string // username to login to the SSH server Password string // password of the user KeyFile string // path to the private key file Passphrase string // passphrase of the private key file Timeout time.Duration // Timeout is the maximum amount of time for the TCP connection to establish. ExeTimeout time.Duration // ExeTimeout is the maximum amount of time for the command to finish Proxy *SSHConfig // ssh proxy config }
SSHConfig is the configuration needed to establish SSH connection.