Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ansible Configuration Support #124

Closed
z0mbix opened this issue Jul 26, 2023 · 6 comments
Closed

Ansible Configuration Support #124

z0mbix opened this issue Jul 26, 2023 · 6 comments
Labels

Comments

@z0mbix
Copy link

z0mbix commented Jul 26, 2023

Hi, this is a fantastic package and it's working really well for what I need so many thanks for all the hard work and thought on implementing this.

I'm still having to use an ansible.cfg to add some configuration. I know I could use env vars to do this, but are there any plans to support ansible configuration with this package?

@apenella
Copy link
Owner

Hi @z0mbix!
I appreciate your message, thank you! I am really happy to know that the library is useful for you :)

I never had a use case to support ansible configuration rather than the env vars, but if you have an idea, you can elaborate on it, and I would give it a thought.

Thanks!

@z0mbix
Copy link
Author

z0mbix commented Jul 27, 2023

I've managed to do this which is working fine:

	defaultAnsibleEnvVars := map[string]string{
		"ANSIBLE_DISPLAY_OK_HOSTS":      "false",
		"ANSIBLE_DISPLAY_SKIPPED_HOSTS": "false",
		"ANSIBLE_FORCE_COLOR":           "true",
		"ANSIBLE_NOCOWS":                "true",
		"ANSIBLE_PLAYBOOK_DIR":          ansiblePlaybookDir,
		"ANSIBLE_PYTHON_INTERPRETER":    "auto_silent",
		"ANSIBLE_RETRY_FILES_ENABLED":   "false",
		"ANSIBLE_ROLES_PATH":            ansibleRolesPath,
		"ANSIBLE_SHOW_CUSTOM_STATS":     "true",
	}
	defaultExecutor.EnvVars = defaultAnsibleEnvVars

So it's not a real problem, just thought it may be nicer to handle these with proper types to avoid it being so "stringy"

@apenella
Copy link
Owner

HI @z0mbix!
I have been thinking about it and a solution to solve it would be inspired by the options pattern.

I need to refine the idea but the first approach would be:

  • Create new packages with a set of functions that returns such as WithAnsibleDisplayOkHost(), WithForceColor(), WithPlaybookDir(dir string), etc.
  • Add a new attribute to the structs AnsiblePlaybookCmd and AnsibleAdhocCmd, which would be a list of those configuration functions
  • Inject those configurations to the executor through env vars.

@apenella
Copy link
Owner

apenella commented Feb 28, 2024

Hi @z0mbix!
I have been working on the feature proposed some time ago, which involves implementing a mechanism for configuring Ansible settings. I am now preparing to merge the first prerelease of version 2.0.0. You can find the changes here: #126. Please note that there are significant breaking changes in this new major release.

@z0mbix
Copy link
Author

z0mbix commented Feb 28, 2024

Great news! Very much looking forward to 2.x.x 👏

@apenella
Copy link
Owner

The following guide provides how to use ansible configuration settings.
https://github.com/apenella/go-ansible?tab=readme-ov-file#configuration-package

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants