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 server.insecure: true
secret: secret:
argocdServerAdminPassword: $2a$10$OUae.wI5UBlC0ISkvD82XOdbGc9iP8apcXcqNTy4gfjSyiA9Jmw76 argocdServerAdminPassword: $2a$10$vyI/s19oGdrz9rtPVKsZeuXIdPhQQcUzNcn/soL160xBFmvraA3Za
repositories: repositories:
# add default helm-repository from harbor # add default helm-repository from harbor

View File

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

View File

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