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

[WIP] Docs: Ansible Control Node #74164

Open
wants to merge 1 commit into
base: devel
Choose a base branch
from

Conversation

gundalow
Copy link
Contributor

@gundalow gundalow commented Apr 6, 2021

SUMMARY

[ ] Move from remote node to target node (as sometimes it isn't remote)
[ ] Drop Ansible from control node?
[ ] Case insensitive search to find other instances

FIXME: More places to review
This will need backporting.

ISSUE TYPE
  • Docs Pull Request

Correct terminology.
@ansibot ansibot added WIP This issue/PR is a work in progress. Nevertheless it was shared for getting input from peers. affects_2.12 docs This issue/PR relates to or includes documentation. module This issue/PR relates to a module. needs_triage Needs a first human triage before being processed. support:core This issue/PR relates to code supported by the Ansible Engineering Team. windows Windows community labels Apr 6, 2021
@@ -29,6 +29,12 @@ when a term comes up on the mailing list.
ansible-base
Used only for 2.10. The installable package (RPM/Python/Deb package) generated from the `ansible/ansible repository <https://github.com/ansible/ansible>`_. See ``ansible-core``.

Ansible control node
FIXME. Also make it clear that "local" plugins (lookups, etc) run here.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could someone please help provide a detailed description of what's the control node is and what does and doesn't run on it.

Different types of plugins, local_actions, etc

Copy link
Contributor

Choose a reason for hiding this comment

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

@gundalow see https://docs.ansible.com/ansible/latest/network/getting_started/basic_concepts.html#control-node - the text there is a shared snippet, and we can certainly use the same description here

@@ -396,6 +402,13 @@ when a term comes up on the mailing list.
Ansible will never feel like assembly programming). There are an
infinite number of variable names you can use for registration.

Remote node
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could someone please help provide a detailed description of what's the remote node is and what does and doesn't run on it.

If you are running with an ssh-jump host is that a remote node, or something else, do we have a specific term for that?

Copy link
Member

Choose a reason for hiding this comment

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

We typically don't call this a remote node, but a target or managed node. Since the node can actually be local.

Only modules execute on a target node.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yup, realised that after I progressed. I've asked Nitz to raise this at the architects meeting and confirm terminology, then I'll update.

Copy link
Member

Choose a reason for hiding this comment

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

We did talk about this yesterday, and I think we decided on effectively:

  • Control Node
  • Target Node
  • Some 3rd term to describe networking and cloud targets, since Target Node means the node where module code runs. However with networking the module is running in a different place than the "resource" that is being managed. This couldn't really been decided on. We mentioned "automation target" or "target resource".

Note that in the product/platform we often call "target node" the "managed node", but managed carries extra connotations that don't universally apply.

Copy link
Contributor

Choose a reason for hiding this comment

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

We use 'managed node' here as well: https://docs.ansible.com/ansible/latest/network/getting_started/basic_concepts.html#managed-nodes
We picked that because it can describe network devices or other nodes that are not "systems" or "machines" . . . what connotations does the phrase have that don't apply universally?
I'm not against changing to 'target node', necessarily, just trying to understand the thinking.

@@ -850,15 +850,15 @@ DEFAULT_LOAD_CALLBACK_PLUGINS:
DEFAULT_LOCAL_TMP:
name: Controller temporary directory
Copy link
Contributor Author

Choose a reason for hiding this comment

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

fix this

@samdoran samdoran removed the needs_triage Needs a first human triage before being processed. label Apr 8, 2021
@@ -359,7 +359,7 @@ COVERAGE_REMOTE_OUTPUT:
COVERAGE_REMOTE_PATHS:
name: Sets the list of paths to run coverage for.
description:
- A list of paths for files on the Ansible controller to run coverage for when executing on the remote host.
- A list of paths for files on the Ansible controll node to run coverage for when executing on the remote host.
Copy link
Contributor

Choose a reason for hiding this comment

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

controll -> control

description:
- This connection plugin allows ansible to execute tasks on the Ansible 'controller' instead of on a remote host.
- This connection plugin allows ansible to execute tasks on the Ansible control node instead of on a remote node.
Copy link
Contributor

Choose a reason for hiding this comment

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

remote or target here ?

Copy link
Contributor

Choose a reason for hiding this comment

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

This looks like it should remain remote. Maybe remote host is the right thing here as well, though, not remote node. That way both words remain different than what we're standardizing on for the target node

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- This connection plugin allows ansible to execute tasks on the Ansible control node instead of on a remote node.
- This connection plugin allows Ansible to execute tasks on the Ansible control node instead of on a remote host.

Copy link
Contributor

Choose a reason for hiding this comment

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

The reason it should be remote host is that, almost by definition, any connection plugin allows Ansible to execute tasks on the target node. What's different about the local connection plugin is that instead of primarily being used to make a remote host the target, the local connection plugin can only target the control node to run the tasks on.

@ansibot ansibot added stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html labels Apr 16, 2021
Copy link
Contributor

@acozine acozine left a comment

Choose a reason for hiding this comment

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

Nice cleanup! I put a few questions/comments in below.

@@ -29,6 +29,12 @@ when a term comes up on the mailing list.
ansible-base
Used only for 2.10. The installable package (RPM/Python/Deb package) generated from the `ansible/ansible repository <https://github.com/ansible/ansible>`_. See ``ansible-core``.

Ansible control node
FIXME. Also make it clear that "local" plugins (lookups, etc) run here.
Copy link
Contributor

Choose a reason for hiding this comment

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

@gundalow see https://docs.ansible.com/ansible/latest/network/getting_started/basic_concepts.html#control-node - the text there is a shared snippet, and we can certainly use the same description here

@@ -33,7 +33,7 @@ Other:
======

* **Upgrading**: If upgrading from ``ansible < 2.10`` or from ``ansible-base`` and using pip, you must ``pip uninstall ansible`` or ``pip uninstall ansible-base`` before installing ``ansible-core`` to avoid conflicts.
* Python 3.8 on the controller node is a soft requirement for this release. ``ansible-core`` 2.11 still works with the same versions of Python that ``ansible-base`` 2.10 worked with, however 2.11 emits a warning when running on a controller node with a Python version less than 3.8. This warning can be disabled by setting ``ANSIBLE_CONTROLLER_PYTHON_WARNING=False`` in your environment. ``ansible-core`` 2.12 will require Python 3.8 or greater.
* Python 3.8 on the control node is a soft requirement for this release. ``ansible-core`` 2.11 still works with the same versions of Python that ``ansible-base`` 2.10 worked with, however 2.11 emits a warning when running on a control node with a Python version less than 3.8. This warning can be disabled by setting ``ANSIBLE_CONTROLLER_PYTHON_WARNING=False`` in your environment. ``ansible-core`` 2.12 will require Python 3.8 or greater.
Copy link
Contributor

Choose a reason for hiding this comment

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

+1 for fixing these

@@ -396,6 +402,13 @@ when a term comes up on the mailing list.
Ansible will never feel like assembly programming). There are an
infinite number of variable names you can use for registration.

Remote node
Copy link
Contributor

Choose a reason for hiding this comment

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

We use 'managed node' here as well: https://docs.ansible.com/ansible/latest/network/getting_started/basic_concepts.html#managed-nodes
We picked that because it can describe network devices or other nodes that are not "systems" or "machines" . . . what connotations does the phrase have that don't apply universally?
I'm not against changing to 'target node', necessarily, just trying to understand the thinking.

@@ -359,7 +359,7 @@ COVERAGE_REMOTE_OUTPUT:
COVERAGE_REMOTE_PATHS:
name: Sets the list of paths to run coverage for.
description:
- A list of paths for files on the Ansible controller to run coverage for when executing on the remote host.
- A list of paths for files on the Ansible controll node to run coverage for when executing on the remote host.
Copy link
Contributor

Choose a reason for hiding this comment

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

as bmillemathias said:

Suggested change
- A list of paths for files on the Ansible controll node to run coverage for when executing on the remote host.
- A list of paths for files on the Ansible control node to run coverage for when executing on the remote host.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects_2.12 docs This issue/PR relates to or includes documentation. module This issue/PR relates to a module. needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. support:core This issue/PR relates to code supported by the Ansible Engineering Team. windows Windows community WIP This issue/PR is a work in progress. Nevertheless it was shared for getting input from peers.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants