update go-ansible to version 2 and update output format

This commit is contained in:
2024-04-26 00:05:02 +03:00
parent 4c795c172a
commit f25a1c3364
4 changed files with 28 additions and 45 deletions

0
README.md Normal file
View File

View File

@@ -1961,7 +1961,7 @@ releases:
server.insecure: true
secret:
argocdServerAdminPassword: $2a$10$OUae.wI5UBlC0ISkvD82XOdbGc9iP8apcXcqNTy4gfjSyiA9Jmw76
argocdServerAdminPassword: $2a$10$vyI/s19oGdrz9rtPVKsZeuXIdPhQQcUzNcn/soL160xBFmvraA3Za
repositories:
# add default helm-repository from harbor

View File

@@ -1,16 +1,16 @@
package kubespray
func InstallCluster(tags string) {
playbookConfig := getPlaybookParameters(tags)
runPlaybook("kubespray/project/cluster.yml", playbookConfig)
ansiblePlaybookOptions := getPlaybookParameters(tags)
runPlaybook("kubespray/project/cluster.yml", ansiblePlaybookOptions)
}
func UpgradeCluster(tags string) {
playbookConfig := getPlaybookParameters(tags)
runPlaybook("kubespray/project/upgrade_cluster.yml", playbookConfig)
ansiblePlaybookOptions := getPlaybookParameters(tags)
runPlaybook("kubespray/project/upgrade_cluster.yml", ansiblePlaybookOptions)
}
func ResetCluster() {
playbookConfig := getPlaybookParameters("reset")
runPlaybook("kubespray/project/reset.yml", playbookConfig)
ansiblePlaybookOptions := getPlaybookParameters("reset")
runPlaybook("kubespray/project/reset.yml", ansiblePlaybookOptions)
}

View File

@@ -7,47 +7,30 @@ import (
"os"
"path/filepath"
"github.com/apenella/go-ansible/pkg/execute"
"github.com/apenella/go-ansible/pkg/inventory"
"github.com/apenella/go-ansible/pkg/options"
"github.com/apenella/go-ansible/pkg/playbook"
"github.com/apenella/go-ansible/v2/pkg/execute"
"github.com/apenella/go-ansible/v2/pkg/execute/stdoutcallback"
"github.com/apenella/go-ansible/v2/pkg/playbook"
)
func getPlaybookParameters(tags string) config.AnsiblePlaybookConfig {
func getPlaybookParameters(tags string) playbook.AnsiblePlaybookOptions {
cfg := config.GetConfig()
ansibleInventoryOptions := inventory.AnsibleInventoryOptions{
Graph: true,
Inventory: "kubespray/inventory/hosts",
Vars: true,
Yaml: false,
}
ansiblePlaybookOptions := playbook.AnsiblePlaybookOptions{
Inventory: ansibleInventoryOptions.Inventory,
Inventory: "kubespray/inventory/hosts",
Tags: tags,
}
ansiblePlaybookConnectionOptions := options.AnsibleConnectionOptions{
User: cfg.Credentials.User,
User: cfg.Credentials.User,
Become: true,
}
if cfg.Credentials.PrivateKeyFile != "" {
ansiblePlaybookConnectionOptions.PrivateKey = cfg.Credentials.PrivateKeyFile
}
ansiblePlaybookPrivilegeEscalationOptions := options.AnsiblePrivilegeEscalationOptions{
Become: true,
ansiblePlaybookOptions.PrivateKey = cfg.Credentials.PrivateKeyFile
}
if cfg.Credentials.AskSudoPassword {
ansiblePlaybookPrivilegeEscalationOptions.AskBecomePass = true
ansiblePlaybookOptions.AskBecomePass = true
}
return config.AnsiblePlaybookConfig{
ConnectionOptions: ansiblePlaybookConnectionOptions,
PrivilegeEscalationOptions: ansiblePlaybookPrivilegeEscalationOptions,
PlaybookOptions: ansiblePlaybookOptions,
}
return ansiblePlaybookOptions
}
func CopyK8SAdminConfig(pathInDataDir string) {
@@ -72,19 +55,19 @@ func CopyK8SAdminConfig(pathInDataDir string) {
}
}
func runPlaybook(playbookPath string, playbookConfig config.AnsiblePlaybookConfig) {
playbook := &playbook.AnsiblePlaybookCmd{
Playbooks: []string{playbookPath},
ConnectionOptions: &playbookConfig.ConnectionOptions,
PrivilegeEscalationOptions: &playbookConfig.PrivilegeEscalationOptions,
Options: &playbookConfig.PlaybookOptions,
Exec: execute.NewDefaultExecute(
execute.WithEnvVar("ANSIBLE_FORCE_COLOR", "true"),
// execute.WithEnvVar("ANSIBLE_STDOUT_CALLBACK", "true"),
func runPlaybook(playbookPath string, playbookOptions playbook.AnsiblePlaybookOptions) {
playbookCmd := playbook.NewAnsiblePlaybookCmd(
playbook.WithPlaybooks(playbookPath),
playbook.WithPlaybookOptions(&playbookOptions),
)
exec := stdoutcallback.NewDenseStdoutCallbackExecute(
execute.NewDefaultExecute(
execute.WithCmd(playbookCmd),
execute.WithErrorEnrich(playbook.NewAnsiblePlaybookErrorEnrich()),
),
}
)
err := playbook.Run(context.TODO())
err := exec.Execute(context.Background())
if err != nil {
panic(err)
}