Skip to content

Add docs for foreman_ansible_director plugin#4730

Draft
maximiliankolb wants to merge 6 commits intotheforeman:masterfrom
ATIX-AG:foreman_ansible_director
Draft

Add docs for foreman_ansible_director plugin#4730
maximiliankolb wants to merge 6 commits intotheforeman:masterfrom
ATIX-AG:foreman_ansible_director

Conversation

@maximiliankolb
Copy link
Copy Markdown
Contributor

What changes are you introducing?

This patch adds a guide to provide documentation for the Ansible Director plugin.

Why are you introducing these changes? (Explanation, links to references, issues, etc.)

Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)

Contributor checklists

  • I am okay with my commits getting squashed when you merge this PR.
  • I am familiar with the contributing guidelines.

Please cherry-pick my commits into:

  • Foreman 3.18/Katello 4.20 (Satellite 6.19)
  • Foreman 3.17/Katello 4.19
  • Foreman 3.16/Katello 4.18 (Satellite 6.18; orcharhino 7.6 and 7.7)
  • Foreman 3.15/Katello 4.17
  • Foreman 3.14/Katello 4.16 (Satellite 6.17; orcharhino 7.4; orcharhino 7.5)
  • Foreman 3.13/Katello 4.15 (EL9 only)
  • Foreman 3.12/Katello 4.14 (Satellite 6.16; orcharhino 7.2 on EL9 only; orcharhino 7.3)
  • We do not accept PRs for Foreman older than 3.12.

@github-actions github-actions bot added Needs tech review Requires a review from the technical perspective Needs style review Requires a review from docs style/grammar perspective Needs testing Requires functional testing labels Mar 23, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 23, 2026

The PR preview for c7b3dcf is available at theforeman-foreman-documentation-preview-pr-4730.surge.sh

The following output files are affected by this PR:

show diff

show diff as HTML

@maximiliankolb maximiliankolb force-pushed the foreman_ansible_director branch 5 times, most recently from 98e10f6 to c2fbee3 Compare April 1, 2026 13:43
@maximiliankolb maximiliankolb force-pushed the foreman_ansible_director branch from c2fbee3 to d279598 Compare April 2, 2026 10:08
Comment on lines +9 to +14
By default, {Team} supports Ansible that is packaged for the platform your {ProjectServer} or {SmartProxyServer} runs on.
If you want to configure different client platforms that rely on different Ansible or Python versions, you can use the Ansible Director plugin.
The Ansible Director plugin allows you to manage Ansible content, Ansible Execution Environments, and Ansible environments independent of your {Project} platform.

// TODO: Reword to better explain that you can technically use them in parallel but it's most likely not necessary.
You can use the Ansible plugin and Ansible Director plugin simultaneously on {Project} but they are unrelated.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could this be split out into a separate overview-like chapter?

@@ -0,0 +1,33 @@
:_mod-docs-content-type: ASSEMBLY
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There are a lot of sections here (15). So that made me think: How to reduce the number of modules?

The idea I had was to reconsider what the user story is. Rather than "I want to import..."/"I want to delete...", should the main focus in fact be "I want to manage and be in control of my Ansible content"? That's a tiny shift in mindset but could help redesign the procedures into something like:

  1. In the web UI, go to XYZ to view your current Ansible content.
  2. Want to add something? Go to Import Ansible content.
  3. Want to remove something? Go to Delete Ansible content.
  4. View the list of content again to check it's all to your liking now.

It could be a way to reduce the number of procedures because you'd effectively combine them into a smaller list of more wholesome procedures that cover more, but in context of what the user's actual goal is.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This applies to some of the other assemblies as well so I'd suggest to look at options for reimagining the underlying user stories there as well.

.Prerequisites
* Your {Project} account has a role that grants the `create_ansible_content`, `view_ansible_content`, and `view_organizations` permissions.

.Procedure
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a very long procedure (like many of the other web UI procedures here). Downstream, we now have a (soft) limit on max 10 steps per procedure. This one is already at 10 steps. Is there a way to document fewer steps and rely on the instructions in the web UI more? In other words: what can the user figure out on their own from the interface, so that we don't have to document it explicitly? The workflow itself doesn't look too complex (it's just about filling a form...) but the procedure makes it look complex, just due to the sheer number of the steps involved.

@maximiliankolb
Copy link
Copy Markdown
Contributor Author

TODO

Mention two roles provided by the plugin:

  • AnsibleDirector Manager: This role contains every permission defined by the plugin and can be used to limit a users scope to only this plugin.
  • AnsibleDirector Viewer: This role contains every read-only (i.e. begins with view_) permission defined by the plugin. A user with this role can only see/query data relating to the plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs style review Requires a review from docs style/grammar perspective Needs tech review Requires a review from the technical perspective Needs testing Requires functional testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants