Compare commits
2 Commits
02bc040e2a
...
7be2679b91
Author | SHA1 | Date | |
---|---|---|---|
7be2679b91 | |||
3c6e3ed914 |
@ -1,3 +0,0 @@
|
||||
kind: Added
|
||||
body: 'Notifications: http service added'
|
||||
time: 2025-03-13T23:23:20.130625927-05:00
|
@ -1,3 +0,0 @@
|
||||
kind: Added
|
||||
body: Variable support. Can be referenced with `%{var:nameOfVar}%` in select string fields.
|
||||
time: 2025-03-16T23:40:47.248328622-05:00
|
@ -1,3 +0,0 @@
|
||||
kind: Changed
|
||||
body: 'vault: initialize vault before validating config'
|
||||
time: 2025-03-13T22:48:40.584581357-05:00
|
3
.changes/unreleased/Changed-20250321-090849.yaml
Normal file
3
.changes/unreleased/Changed-20250321-090849.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
kind: Changed
|
||||
body: 'Commands: `host` can now be `localhost` or `127.0.0.1` to run commands locally'
|
||||
time: 2025-03-21T09:08:49.871021144-05:00
|
6
.changes/v0.10.2.md
Normal file
6
.changes/v0.10.2.md
Normal file
@ -0,0 +1,6 @@
|
||||
## v0.10.2 - 2025-03-19
|
||||
### Added
|
||||
* Notifications: http service added
|
||||
* Variable support. Can be referenced with `%{var:nameOfVar}%` in select string fields.
|
||||
### Changed
|
||||
* vault: initialize vault before validating config
|
@ -6,6 +6,13 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||
|
||||
|
||||
## v0.10.2 - 2025-03-19
|
||||
### Added
|
||||
* Notifications: http service added
|
||||
* Variable support. Can be referenced with `%{var:nameOfVar}%` in select string fields.
|
||||
### Changed
|
||||
* vault: initialize vault before validating config
|
||||
|
||||
## v0.10.1 - 2025-03-11
|
||||
### Added
|
||||
* UserCommands: add ssh public keys when running locally
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
const versionStr = "0.10.1"
|
||||
const versionStr = "0.10.2"
|
||||
|
||||
var (
|
||||
versionCmd = &cobra.Command{
|
||||
|
@ -61,7 +61,8 @@ func (command *Command) RunCmd(cmdCtxLogger zerolog.Logger, opts *ConfigOpts) ([
|
||||
}
|
||||
}
|
||||
|
||||
if command.Host != nil {
|
||||
if !IsHostLocal(command.Host) {
|
||||
|
||||
outputArr, errSSH = command.RunCmdSSH(cmdCtxLogger, opts)
|
||||
if errSSH != nil {
|
||||
return outputArr, errSSH
|
||||
@ -492,11 +493,10 @@ func (cmd *Command) GenerateLogger(opts *ConfigOpts) zerolog.Logger {
|
||||
Str("Backy-cmd", cmd.Name).Str("Host", "local machine").
|
||||
Logger()
|
||||
|
||||
if cmd.Host != nil {
|
||||
if !IsHostLocal(cmd.Host) {
|
||||
cmdLogger = opts.Logger.With().
|
||||
Str("Backy-cmd", cmd.Name).Str("Host", *cmd.Host).
|
||||
Str("Backy-cmd", cmd.Name).Str("Host", cmd.Host).
|
||||
Logger()
|
||||
|
||||
}
|
||||
return cmdLogger
|
||||
}
|
||||
@ -508,7 +508,7 @@ func (opts *ConfigOpts) ExecCmdsSSH(cmdList []string, hostsList []string) {
|
||||
for _, c := range cmdList {
|
||||
cmd := opts.Cmds[c]
|
||||
cmd.RemoteHost = host
|
||||
cmd.Host = &host.Host
|
||||
cmd.Host = host.Host
|
||||
opts.Logger.Info().Str("host", h).Str("cmd", c).Send()
|
||||
_, err := cmd.RunCmdSSH(cmd.GenerateLogger(opts), opts)
|
||||
if err != nil {
|
||||
@ -541,6 +541,7 @@ func (c *Command) GetVariablesFromConf(opts *ConfigOpts) {
|
||||
c.ScriptEnvFile = replaceVarInString(opts.Vars, c.ScriptEnvFile, opts.Logger)
|
||||
c.Name = replaceVarInString(opts.Vars, c.Name, opts.Logger)
|
||||
c.OutputFile = replaceVarInString(opts.Vars, c.OutputFile, opts.Logger)
|
||||
c.Host = replaceVarInString(opts.Vars, c.Host, opts.Logger)
|
||||
}
|
||||
|
||||
// func executeUserCommands() []string {
|
||||
|
@ -527,13 +527,13 @@ func processCmds(opts *ConfigOpts) error {
|
||||
}
|
||||
}
|
||||
|
||||
// resolve hosts
|
||||
if cmd.Host != nil {
|
||||
cmdHost := replaceVarInString(opts.Vars, *cmd.Host, opts.Logger)
|
||||
if cmdHost != *cmd.Host {
|
||||
cmd.Host = &cmdHost
|
||||
if !IsHostLocal(cmd.Host) {
|
||||
|
||||
cmdHost := replaceVarInString(opts.Vars, cmd.Host, opts.Logger)
|
||||
if cmdHost != cmd.Host {
|
||||
cmd.Host = cmdHost
|
||||
}
|
||||
host, hostFound := opts.Hosts[*cmd.Host]
|
||||
host, hostFound := opts.Hosts[cmd.Host]
|
||||
if hostFound {
|
||||
cmd.RemoteHost = host
|
||||
cmd.RemoteHost.Host = host.Host
|
||||
@ -541,12 +541,12 @@ func processCmds(opts *ConfigOpts) error {
|
||||
cmd.RemoteHost.HostName = host.HostName
|
||||
}
|
||||
} else {
|
||||
opts.Logger.Info().Msgf("adding host %s to host list", *cmd.Host)
|
||||
opts.Logger.Info().Msgf("adding host %s to host list", cmd.Host)
|
||||
if opts.Hosts == nil {
|
||||
opts.Hosts = make(map[string]*Host)
|
||||
}
|
||||
opts.Hosts[*cmd.Host] = &Host{Host: *cmd.Host}
|
||||
cmd.RemoteHost = &Host{Host: *cmd.Host}
|
||||
opts.Hosts[cmd.Host] = &Host{Host: cmd.Host}
|
||||
cmd.RemoteHost = &Host{Host: cmd.Host}
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -607,8 +607,10 @@ func processCmds(opts *ConfigOpts) error {
|
||||
opts.Logger.Debug().Msg("changing password for user: " + cmd.Username)
|
||||
cmd.UserPassword = getExternalConfigDirectiveValue(cmd.UserPassword, opts)
|
||||
}
|
||||
if cmd.Host != nil {
|
||||
host, ok := opts.Hosts[*cmd.Host]
|
||||
|
||||
if !IsHostLocal(cmd.Host) {
|
||||
|
||||
host, ok := opts.Hosts[cmd.Host]
|
||||
if ok {
|
||||
cmd.userMan, err = usermanager.NewUserManager(host.OS)
|
||||
}
|
||||
@ -677,7 +679,9 @@ func processHooks(cmd *Command, hooks []string, opts *ConfigOpts, hookType strin
|
||||
}
|
||||
|
||||
func detectOSType(cmd *Command, opts *ConfigOpts) error {
|
||||
if cmd.Host == nil {
|
||||
|
||||
if IsHostLocal(cmd.Host) {
|
||||
|
||||
if runtime.GOOS == "linux" {
|
||||
cmd.OS = "linux"
|
||||
opts.Logger.Info().Msg("Unix/Linux type OS detected")
|
||||
@ -686,7 +690,7 @@ func detectOSType(cmd *Command, opts *ConfigOpts) error {
|
||||
return fmt.Errorf("using an os that is not yet supported for user commands")
|
||||
}
|
||||
|
||||
host, ok := opts.Hosts[*cmd.Host]
|
||||
host, ok := opts.Hosts[cmd.Host]
|
||||
if ok {
|
||||
if host.OS != "" {
|
||||
return nil
|
||||
|
@ -46,9 +46,9 @@ func (opts *ConfigOpts) ListCommand(cmd string) {
|
||||
}
|
||||
|
||||
// is it remote or local
|
||||
if cmdInfo.Host != nil {
|
||||
if !IsHostLocal(cmdInfo.Host) {
|
||||
println()
|
||||
print("Host: ", *cmdInfo.Host)
|
||||
print("Host: ", cmdInfo.Host)
|
||||
println()
|
||||
|
||||
} else {
|
||||
|
@ -441,8 +441,8 @@ func (command *Command) RunCmdSSH(cmdCtxLogger zerolog.Logger, opts *ConfigOpts)
|
||||
|
||||
cmdCtxLogger.Info().
|
||||
Str("Command", command.Name).
|
||||
Str("Host", *command.Host).
|
||||
Msgf("Running %s on host %s", getCommandTypeAndSetCommandInfoLabel(command.Type), *command.Host)
|
||||
Str("Host", command.Host).
|
||||
Msgf("Running %s on host %s", getCommandTypeAndSetCommandInfoLabel(command.Type), command.Host)
|
||||
|
||||
// cmdCtxLogger.Debug().Str("cmd", command.Cmd).Strs("args", command.Args).Send()
|
||||
|
||||
@ -811,3 +811,8 @@ func CheckIfHostHasHostName(host string) (bool, string) {
|
||||
println(HostName)
|
||||
return HostName != "", HostName
|
||||
}
|
||||
|
||||
func IsHostLocal(host string) bool {
|
||||
host = strings.ToLower(host)
|
||||
return host == "127.0.0.1" || host == "localhost" || host == ""
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ type (
|
||||
// See CommandType enum further down the page for acceptable values
|
||||
Type CommandType `yaml:"type,omitempty"`
|
||||
|
||||
Host *string `yaml:"host,omitempty"`
|
||||
Host string `yaml:"host,omitempty"`
|
||||
|
||||
Hooks *Hooks `yaml:"hooks,omitempty"`
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user