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

RFC: Enhanced Ansible support #98

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

parlt91
Copy link
Contributor

@parlt91 parlt91 commented Dec 5, 2024

This RFC describes planned enhancements to the existing Ansible implementation in Uyuni

See the rendered version.

Signed-off-by: Pascal Arlt <parlt@suse.com>
@parlt91 parlt91 changed the title Enhanced Ansible support RFC: Enhanced Ansible support Dec 5, 2024
Copy link
Member

@rjmateus rjmateus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good, but I have a few questions. Thank you for the great work

accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
Copy link
Member

@meaksh meaksh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Pascal for this RFC! I've just added some comments and clarifications

accepted/00104-enhanced-ansible-support.md Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
Copy link
Contributor

@cbbayburt cbbayburt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @parlt91. Looks good to me. All my concerns are already discussed under other reviews.

Here's a couple of remarks:

  1. I think it's important that users have the exact list of the clients on which the playbook is executed. IIUC we'll store this in action details. This should be a hard requirement.

  2. We should explore the formulas with forms UI to reuse as much as we can. Formulas UI also uses yaml to define the forms, so there's some opportunity there.

@parlt91 parlt91 force-pushed the enhanced-ansible-support branch from 7826c48 to a09b412 Compare December 17, 2024 10:03
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
accepted/00104-enhanced-ansible-support.md Outdated Show resolved Hide resolved
Signed-off-by: Pascal Arlt <parlt@suse.com>
@parlt91 parlt91 force-pushed the enhanced-ansible-support branch from a09b412 to ac56a48 Compare December 18, 2024 10:08
@parlt91
Copy link
Contributor Author

parlt91 commented Jan 23, 2025

@meaksh @rjmateus @admd I think I've addressed all your prior questions. Could you go through the RFC one more time and approve if you have no more questions? I'd like to start with development once I return from the bug squad ASAP.

Copy link
Member

@rjmateus rjmateus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@admd admd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Pascal

@HVSharma12
Copy link

HVSharma12 commented Feb 6, 2025

Hi Team, I noticed that Uyuni currently uses the Salt ansiblegate module to communicate with the Ansible. Given that Ansible Runner is already available in Factory, has there been any consideration for using Ansible Runner?

Potential benefits of using Ansible Runner:

  • Structured Logging: Playbook execution logs and results are stored in runner's artifact directory.
  • Project-Based Configuration: Supports dedicated project directories for inventories, environments, and dependencies.
  • Runner supports job timeout and failure handling via the settings file (idle_timeout, job_timeout).

I built an ephemeral Ansible Runner container for testing that:

  • Runs playbooks and roles inside a containerized environment.
  • Stores artifacts, logs, playbooks, and environments on the host VM.
  • Requires only SSH access from the host VM to target nodes (no need to install Ansible on the host).
  • Packages ansible, ansible-vault, ansible-runner, and dependencies inside the container.
  • Allows commands to be executed directly from the host VM without requiring Ansible on the control node.

You can check out the setup here: https://github.com/HVSharma12/ansible-runner-container/tree/main.

Would it make sense to evaluate Ansible Runner as an alternative execution method as compared to using ansible command for Uyuni's Ansible integration, especially given the structured logging and project-based configuration benefits?

@meaksh
Copy link
Member

meaksh commented Feb 14, 2025

Hey @HVSharma12, thanks for notes and feedback about ansible-runner!

As I mentioned in Slack, we didn't know about this way of operating Ansible, neither that users are frequently using this, i.a. in AWX. I see the benefits of enabling Salt's ansible modules to handle the Ansible executions via ansible-runner instead of the normal CLI interface.

This is definetely something we should explore and probably adopt, and I think it deserves its own RFC, something like Adding support for ansible-runner in Uyuni and Salt. This will require development efforts on the Salt side.

For now, the present RFC about the "Enhacement of Ansible support" is mostly around exposing more functionality to Uyuni from what we have already implemented, without much intervention on the Salt side.

I'd vote for preparing a separated RFC, describe the design, so hopefully we can agree on a proposal and go with the implementation it at some point.

@rjmateus
Copy link
Member

thank you for your contribution @HVSharma12
I agree with Pablo, the current RFC is in the scope of giving more visibility and option to interact with ansible. But you proposal looks promising and I think we should research it after the current development effort.
@admd any comment on this?

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

Successfully merging this pull request may close these issues.

7 participants