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

Shutdown systemd without sysv #6171

Merged

Conversation

peterupton
Copy link
Contributor

SUMMARY

This PR fixes #4269, allowing Linux systems without shutdown commands to be shutdown using systemd directly.

ISSUE TYPE
  • Bugfix Pull Request
COMPONENT NAME

shutdown

ADDITIONAL INFORMATION

I've added a conditional that sets systemd poweroff with no arguments to be the shutdown command only if there are are no matching search_paths. Note that I used systemd poweroff not systemctl isolate poweroff.target as mentioned in the relevant manual page. The only risk introduced by this change is that a user expects the system to shut down with a message or at a future time, but the system does not have the required command, it will shut down immediately (ignoring the arguments). I believe that this is acceptable, as this behavior is already present in Alpine. The risk is documented in the module notes.

@peterupton peterupton changed the title Shutdown systemd without sysv [WIP] Shutdown systemd without sysv Mar 9, 2023
@ansibullbot
Copy link
Collaborator

@ansibullbot ansibullbot added WIP Work in progress action action plugin bug This issue/PR relates to a bug integration tests/integration module module new_contributor Help guide this first time contributor plugins plugin (any type) system tests tests labels Mar 9, 2023
@github-actions
Copy link

github-actions bot commented Mar 9, 2023

Docs Build 📝

Thank you for contribution!✨

The docsite for this PR is available for download as an artifact from this run:
https://github.com/ansible-collections/community.general/actions/runs/4513491253

File changes:

  • M collections/community/general/index.html
  • M collections/community/general/ldap_attrs_module.html
  • M collections/community/general/ldap_entry_module.html
  • M collections/community/general/ldap_passwd_module.html
  • M collections/community/general/ldap_search_module.html
  • M collections/community/general/nmap_inventory.html
  • M collections/community/general/nmcli_module.html
  • M collections/community/general/redfish_info_module.html
  • M collections/community/general/redhat_subscription_module.html
  • M collections/community/general/redis_module.html
  • M collections/community/general/rhsm_release_module.html
  • M collections/community/general/rhsm_repository_module.html
  • M collections/community/general/shutdown_module.html
  • M collections/community/general/znode_module.html
  • M collections/index_module.html
Click to see the diff comparison.

NOTE: only file modifications are shown here. New and deleted files are excluded.
See the file list and check the published docs to see those files.

The diff output was truncated because it exceeded the maximum size.

diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/index.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/index.html
index fde1c3a..86263f4 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/index.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/index.html
@@ -602,7 +602,7 @@
 <li><p><a class="reference internal" href="redfish_command_module.html#ansible-collections-community-general-redfish-command-module"><span class="std std-ref">redfish_command module</span></a> – Manages Out-Of-Band controllers using Redfish APIs</p></li>
 <li><p><a class="reference internal" href="redfish_config_module.html#ansible-collections-community-general-redfish-config-module"><span class="std std-ref">redfish_config module</span></a> – Manages Out-Of-Band controllers using Redfish APIs</p></li>
 <li><p><a class="reference internal" href="redfish_info_module.html#ansible-collections-community-general-redfish-info-module"><span class="std std-ref">redfish_info module</span></a> – Manages Out-Of-Band controllers using Redfish APIs</p></li>
-<li><p><a class="reference internal" href="redhat_subscription_module.html#ansible-collections-community-general-redhat-subscription-module"><span class="std std-ref">redhat_subscription module</span></a> – Manage registration and subscriptions to RHSM using the <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> command</p></li>
+<li><p><a class="reference internal" href="redhat_subscription_module.html#ansible-collections-community-general-redhat-subscription-module"><span class="std std-ref">redhat_subscription module</span></a> – Manage registration and subscriptions to RHSM using <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code></p></li>
 <li><p><a class="reference internal" href="redis_module.html#ansible-collections-community-general-redis-module"><span class="std std-ref">redis module</span></a> – Various redis commands, replica and flush</p></li>
 <li><p><a class="reference internal" href="redis_data_module.html#ansible-collections-community-general-redis-data-module"><span class="std std-ref">redis_data module</span></a> – Set key value pairs in Redis</p></li>
 <li><p><a class="reference internal" href="redis_data_incr_module.html#ansible-collections-community-general-redis-data-incr-module"><span class="std std-ref">redis_data_incr module</span></a> – Increment keys in Redis</p></li>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_attrs_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_attrs_module.html
index f02173c..7c0b694 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_attrs_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_attrs_module.html
@@ -204,13 +204,21 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-ca_path"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-ca-path"><strong>ca_path</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ca_path" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">path</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Set the path to PEM file with CA certs.</p>
+</div></td>
+</tr>
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-dn"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-dn"><strong>dn</strong></p>
 <a class="ansibleOptionLink" href="#parameter-dn" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The DN of the entry to add or remove.</p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-ordered"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-ordered"><strong>ordered</strong></p>
 <a class="ansibleOptionLink" href="#parameter-ordered" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -222,7 +230,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-referrals_chasing"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-referrals-chasing"><strong>referrals_chasing</strong></p>
 <a class="ansibleOptionLink" href="#parameter-referrals_chasing" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -237,7 +245,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-sasl_class"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-sasl-class"><strong>sasl_class</strong></p>
 <a class="ansibleOptionLink" href="#parameter-sasl_class" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -251,7 +259,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-server_uri"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-server-uri"><strong>server_uri</strong></p>
 <a class="ansibleOptionLink" href="#parameter-server_uri" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -262,7 +270,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 <p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;ldapi:///&quot;</span></code></p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-start_tls"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-start-tls"><strong>start_tls</strong></p>
 <a class="ansibleOptionLink" href="#parameter-start_tls" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -274,7 +282,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-state"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-state"><strong>state</strong></p>
 <a class="ansibleOptionLink" href="#parameter-state" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -287,7 +295,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-validate-certs"><strong>validate_certs</strong></p>
 <a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -300,7 +308,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-xorder_discovery"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-attrs-module-parameter-xorder-discovery"><strong>xorder_discovery</strong></p>
 <a class="ansibleOptionLink" href="#parameter-xorder_discovery" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 6.4.0</span></p>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_entry_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_entry_module.html
index ab81771..869ce19 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_entry_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_entry_module.html
@@ -203,20 +203,28 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-ca_path"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-ca-path"><strong>ca_path</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ca_path" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">path</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Set the path to PEM file with CA certs.</p>
+</div></td>
+</tr>
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-dn"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-dn"><strong>dn</strong></p>
 <a class="ansibleOptionLink" href="#parameter-dn" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The DN of the entry to add or remove.</p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-objectClass"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-objectclass"><strong>objectClass</strong></p>
 <a class="ansibleOptionLink" href="#parameter-objectClass" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>If <em>state=present</em>, value or list of values to use when creating the entry. It can either be a string or an actual list of strings.</p>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-recursive"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-recursive"><strong>recursive</strong></p>
 <a class="ansibleOptionLink" href="#parameter-recursive" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 4.6.0</span></p>
@@ -229,7 +237,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-referrals_chasing"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-referrals-chasing"><strong>referrals_chasing</strong></p>
 <a class="ansibleOptionLink" href="#parameter-referrals_chasing" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -244,7 +252,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-sasl_class"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-sasl-class"><strong>sasl_class</strong></p>
 <a class="ansibleOptionLink" href="#parameter-sasl_class" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -258,7 +266,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-server_uri"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-server-uri"><strong>server_uri</strong></p>
 <a class="ansibleOptionLink" href="#parameter-server_uri" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -269,7 +277,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 <p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;ldapi:///&quot;</span></code></p>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-start_tls"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-start-tls"><strong>start_tls</strong></p>
 <a class="ansibleOptionLink" href="#parameter-start_tls" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -281,7 +289,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-state"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-state"><strong>state</strong></p>
 <a class="ansibleOptionLink" href="#parameter-state" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -293,7 +301,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-validate-certs"><strong>validate_certs</strong></p>
 <a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -306,7 +314,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-xorder_discovery"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-entry-module-parameter-xorder-discovery"><strong>xorder_discovery</strong></p>
 <a class="ansibleOptionLink" href="#parameter-xorder_discovery" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 6.4.0</span></p>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_passwd_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_passwd_module.html
index 184d8c6..c1d957b 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_passwd_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_passwd_module.html
@@ -196,20 +196,28 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-ca_path"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-ca-path"><strong>ca_path</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ca_path" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">path</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Set the path to PEM file with CA certs.</p>
+</div></td>
+</tr>
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-dn"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-dn"><strong>dn</strong></p>
 <a class="ansibleOptionLink" href="#parameter-dn" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The DN of the entry to add or remove.</p>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-passwd"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-passwd"><strong>passwd</strong></p>
 <a class="ansibleOptionLink" href="#parameter-passwd" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The (plaintext) password to be set for <em>dn</em>.</p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-referrals_chasing"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-referrals-chasing"><strong>referrals_chasing</strong></p>
 <a class="ansibleOptionLink" href="#parameter-referrals_chasing" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -224,7 +232,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-sasl_class"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-sasl-class"><strong>sasl_class</strong></p>
 <a class="ansibleOptionLink" href="#parameter-sasl_class" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -238,7 +246,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-server_uri"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-server-uri"><strong>server_uri</strong></p>
 <a class="ansibleOptionLink" href="#parameter-server_uri" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -249,7 +257,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 <p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;ldapi:///&quot;</span></code></p>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-start_tls"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-start-tls"><strong>start_tls</strong></p>
 <a class="ansibleOptionLink" href="#parameter-start_tls" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -261,7 +269,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-validate-certs"><strong>validate_certs</strong></p>
 <a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -274,7 +282,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-xorder_discovery"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-passwd-module-parameter-xorder-discovery"><strong>xorder_discovery</strong></p>
 <a class="ansibleOptionLink" href="#parameter-xorder_discovery" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 6.4.0</span></p>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_search_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_search_module.html
index a9aa17a..5439456 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/ldap_search_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/ldap_search_module.html
@@ -203,13 +203,21 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </div></td>
 </tr>
 <tr class="row-odd"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-ca_path"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-ca-path"><strong>ca_path</strong></p>
+<a class="ansibleOptionLink" href="#parameter-ca_path" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">path</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Set the path to PEM file with CA certs.</p>
+</div></td>
+</tr>
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-dn"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-dn"><strong>dn</strong></p>
 <a class="ansibleOptionLink" href="#parameter-dn" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>The LDAP DN to search in.</p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-filter"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-filter"><strong>filter</strong></p>
 <a class="ansibleOptionLink" href="#parameter-filter" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -217,7 +225,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 <p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;(objectClass=*)&quot;</span></code></p>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-referrals_chasing"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-referrals-chasing"><strong>referrals_chasing</strong></p>
 <a class="ansibleOptionLink" href="#parameter-referrals_chasing" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -232,7 +240,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-sasl_class"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-sasl-class"><strong>sasl_class</strong></p>
 <a class="ansibleOptionLink" href="#parameter-sasl_class" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 2.0.0</span></p>
@@ -246,7 +254,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-schema"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-schema"><strong>schema</strong></p>
 <a class="ansibleOptionLink" href="#parameter-schema" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -258,7 +266,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-scope"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-scope"><strong>scope</strong></p>
 <a class="ansibleOptionLink" href="#parameter-scope" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -272,7 +280,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-server_uri"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-server-uri"><strong>server_uri</strong></p>
 <a class="ansibleOptionLink" href="#parameter-server_uri" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 </div></td>
@@ -283,7 +291,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 <p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;ldapi:///&quot;</span></code></p>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-start_tls"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-start-tls"><strong>start_tls</strong></p>
 <a class="ansibleOptionLink" href="#parameter-start_tls" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -295,7 +303,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-validate-certs"><strong>validate_certs</strong></p>
 <a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -308,7 +316,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-l
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-xorder_discovery"></div><p class="ansible-option-title" id="ansible-collections-community-general-ldap-search-module-parameter-xorder-discovery"><strong>xorder_discovery</strong></p>
 <a class="ansibleOptionLink" href="#parameter-xorder_discovery" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 6.4.0</span></p>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/nmap_inventory.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/nmap_inventory.html
index 43c21d6..eb4abe4 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/nmap_inventory.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/nmap_inventory.html
@@ -470,6 +470,15 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-port"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-port"><strong>port</strong></p>
+<a class="ansibleOptionLink" href="#parameter-port" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Only scan specific port or port range (<code class="docutils literal notranslate"><span class="pre">-p</span></code>).</p>
+<p>For example, you could pass <code class="docutils literal notranslate"><span class="pre">22</span></code> for a single port, <code class="docutils literal notranslate"><span class="pre">1-65535</span></code> for a range of ports, or <code class="docutils literal notranslate"><span class="pre">U:53,137,T:21-25,139,8080,S:9</span></code> to check port 53 with UDP, ports 21-25 with TCP, port 9 with SCTP, and ports 137, 139, and 8080 with all.</p>
+</div></td>
+</tr>
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-ports"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-ports"><strong>ports</strong></p>
 <a class="ansibleOptionLink" href="#parameter-ports" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -481,7 +490,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-strict"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-strict"><strong>strict</strong></p>
 <a class="ansibleOptionLink" href="#parameter-strict" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 </div></td>
@@ -494,7 +503,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-sudo"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-sudo"><strong>sudo</strong></p>
 <a class="ansibleOptionLink" href="#parameter-sudo" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 4.8.0</span></p>
@@ -507,7 +516,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 </ul>
 </div></td>
 </tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
+<tr class="row-even"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-udp_scan"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-udp-scan"><strong>udp_scan</strong></p>
 <a class="ansibleOptionLink" href="#parameter-udp_scan" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 <p><span class="ansible-option-versionadded">added in community.general 6.1.0</span></p>
@@ -521,7 +530,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 </ul>
 </div></td>
 </tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
+<tr class="row-odd"><td><div class="ansible-option-cell">
 <div class="ansibleOptionAnchor" id="parameter-use_extra_vars"></div><p class="ansible-option-title" id="ansible-collections-community-general-nmap-inventory-parameter-use-extra-vars"><strong>use_extra_vars</strong></p>
 <a class="ansibleOptionLink" href="#parameter-use_extra_vars" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
 <p><span class="ansible-option-versionadded">added in ansible-core 2.11</span></p>
@@ -570,6 +579,14 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 <span class="nt">sudo</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
 <span class="nt">strict</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
 <span class="nt">address</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">192.168.0.0/24</span>
+
+<span class="c1"># an nmap scan specifying ports and classifying results to an inventory group</span>
+<span class="nt">plugin</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">community.general.nmap</span>
+<span class="nt">address</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">192.168.0.0/24</span>
+<span class="nt">exclude</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">192.168.0.1, web.example.com</span>
+<span class="nt">port</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">22, 443</span>
+<span class="nt">groups</span><span class="p">:</span>
+<span class="w">  </span><span class="nt">web_servers</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;ports</span><span class="nv"> </span><span class="s">|</span><span class="nv"> </span><span class="s">selectattr(&#39;port&#39;,</span><span class="nv"> </span><span class="s">&#39;equalto&#39;,</span><span class="nv"> </span><span class="s">&#39;443&#39;)&quot;</span>
 </pre></div>
 </div>
 <section id="authors">
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/nmcli_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/nmcli_module.html
index 2b8e002..419befa 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/nmcli_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/nmcli_module.html
@@ -187,8 +187,11 @@ see <a class="reference internal" href="#ansible-collections-community-general-n
 <p><span class="ansible-option-versionadded">added in community.general 4.2.0</span></p>
 </div></td>
 <td><div class="ansible-option-cell"><p>Configure method for creating the address for use with IPv6 Stateless Address Autoconfiguration.</p>
+<p><code class="docutils literal notranslate"><span class="pre">default</span></code> and <code class="docutils literal notranslate"><span class="pre">deafult-or-eui64</span></code> have been added in community.general 6.5.0.</p>
 <p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
 <ul class="simple">
+<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;default&quot;</span></code></p></li>
+<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;default-or-eui64&quot;</span></code></p></li>
 <li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;eui64&quot;</span></code></p></li>
 <li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;stable-privacy&quot;</span></code></p></li>
 </ul>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redfish_info_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redfish_info_module.html
index 78977cf..7f33ad7 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redfish_info_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redfish_info_module.html
@@ -19,7 +19,7 @@
         <script src="../../../_static/sphinx_highlight.js"></script>
     <script src="../../../_static/js/theme.js"></script>
     <link rel="search" title="Search" href="../../../search.html" />
-    <link rel="next" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the subscription-manager command" href="redhat_subscription_module.html" />
+    <link rel="next" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using subscription-manager" href="redhat_subscription_module.html" />
     <link rel="prev" title="community.general.redfish_config module – Manages Out-Of-Band controllers using Redfish APIs" href="redfish_config_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
 
 
@@ -564,7 +564,7 @@
 
 <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="redfish_config_module.html" class="btn btn-neutral float-left" title="community.general.redfish_config module – Manages Out-Of-Band controllers using Redfish APIs" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="redhat_subscription_module.html" class="btn btn-neutral float-right" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the subscription-manager command" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="redhat_subscription_module.html" class="btn btn-neutral float-right" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using subscription-manager" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redhat_subscription_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redhat_subscription_module.html
index a4aa10f..5542bb0 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redhat_subscription_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redhat_subscription_module.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the subscription-manager command &mdash; Ansible collections  documentation</title>
+  <title>community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using subscription-manager &mdash; Ansible collections  documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/ansible.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/antsibull-minimal.css" type="text/css" />
@@ -123,7 +123,7 @@
           <li class="breadcrumb-item"><a href="../../index.html">Collection Index</a></li>
           <li class="breadcrumb-item"><a href="../index.html">Collections in the Community Namespace</a></li>
           <li class="breadcrumb-item"><a href="index.html">Community.General</a></li>
-      <li class="breadcrumb-item active">community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> command</li>
+      <li class="breadcrumb-item active">community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code></li>
       <li class="wy-breadcrumbs-aside">
               <!-- User defined GitHub URL -->
               <a href="https://github.com/ansible-collections/community.general/edit/main/plugins/modules/redhat_subscription.py?description=%23%23%23%23%23%20SUMMARY%0A%3C!—%20Your%20description%20here%20–%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> Edit on GitHub</a>
@@ -136,8 +136,8 @@
   
            <div itemprop="articleBody">
              
-  <span class="target" id="ansible-collections-community-general-redhat-subscription-module"></span><section id="community-general-redhat-subscription-module-manage-registration-and-subscriptions-to-rhsm-using-the-subscription-manager-command">
-<h1>community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> command<a class="headerlink" href="#community-general-redhat-subscription-module-manage-registration-and-subscriptions-to-rhsm-using-the-subscription-manager-command" title="Permalink to this heading"></a></h1>
+  <span class="target" id="ansible-collections-community-general-redhat-subscription-module"></span><section id="community-general-redhat-subscription-module-manage-registration-and-subscriptions-to-rhsm-using-subscription-manager">
+<h1>community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code><a class="headerlink" href="#community-general-redhat-subscription-module-manage-registration-and-subscriptions-to-rhsm-using-subscription-manager" title="Permalink to this heading"></a></h1>
 <div class="admonition note">
 <p class="admonition-title">Note</p>
 <p>This module is part of the <a class="reference external" href="https://galaxy.ansible.com/community/general">community.general collection</a> (version 6.5.0).</p>
@@ -160,7 +160,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-r
 <section id="synopsis">
 <h2><a class="toc-backref" href="#id1" role="doc-backlink">Synopsis</a><a class="headerlink" href="#synopsis" title="Permalink to this heading"></a></h2>
 <ul class="simple">
-<li><p>Manage registration and subscription to the Red Hat Subscription Management entitlement platform using the <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> command</p></li>
+<li><p>Manage registration and subscription to the Red Hat Subscription Management entitlement platform using the <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> command, registering using D-Bus if possible.</p></li>
 </ul>
 </section>
 <section id="requirements">
@@ -168,6 +168,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-r
 <p>The below requirements are needed on the host that executes this module.</p>
 <ul class="simple">
 <li><p>subscription-manager</p></li>
+<li><p>Optionally the <code class="docutils literal notranslate"><span class="pre">dbus</span></code> Python library; this is usually included in the OS as it is used by <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code>.</p></li>
 </ul>
 </section>
 <section id="parameters">
@@ -485,6 +486,8 @@ entitlements from a pool (the pool must support this). Mutually exclusive with <
 <ul class="simple">
 <li><p>In order to register a system, subscription-manager requires either a username and password, or an activationkey and an Organization ID.</p></li>
 <li><p>Since 2.5 values for <em>server_hostname</em>, <em>server_insecure</em>, <em>rhsm_baseurl</em>, <em>server_proxy_hostname</em>, <em>server_proxy_port</em>, <em>server_proxy_user</em> and <em>server_proxy_password</em> are no longer taken from the <code class="docutils literal notranslate"><span class="pre">/etc/rhsm/rhsm.conf</span></code> config file and default to None.</p></li>
+<li><p>It is possible to interact with <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> only as root, so root permissions are required to successfully run this module.</p></li>
+<li><p>Since community.general 6.5.0, credentials (that is, <em>username</em> and <em>password</em>, <em>activationkey</em>, or <em>token</em>) are needed only in case the the system is not registered, or <em>force_register</em> is specified; this makes it possible to use the module to tweak an already registered system, for example attaching pools to it (using <em>pool</em>, or <em>pool_ids</em>), and modifying the <code class="docutils literal notranslate"><span class="pre">syspurpose</span></code> attributes (using <em>syspurpose</em>).</p></li>
 </ul>
 </div>
 </section>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redis_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redis_module.html
index 6bc8c37..d404615 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/redis_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/redis_module.html
@@ -20,7 +20,7 @@
     <script src="../../../_static/js/theme.js"></script>
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="next" title="community.general.redis_data module – Set key value pairs in Redis" href="redis_data_module.html" />
-    <link rel="prev" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the subscription-manager command" href="redhat_subscription_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
+    <link rel="prev" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using subscription-manager" href="redhat_subscription_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
 
 
 
@@ -448,7 +448,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-r
           
 
 <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="redhat_subscription_module.html" class="btn btn-neutral float-left" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using the subscription-manager command" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="redhat_subscription_module.html" class="btn btn-neutral float-left" title="community.general.redhat_subscription module – Manage registration and subscriptions to RHSM using subscription-manager" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="redis_data_module.html" class="btn btn-neutral float-right" title="community.general.redis_data module – Set key value pairs in Redis" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/rhsm_release_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/rhsm_release_module.html
index 07c3b7e..bebfc87 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/rhsm_release_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/rhsm_release_module.html
@@ -224,6 +224,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-r
 <p class="admonition-title">Note</p>
 <ul class="simple">
 <li><p>This module will fail on an unregistered system. Use the <code class="docutils literal notranslate"><span class="pre">redhat_subscription</span></code> module to register a system prior to setting the RHSM release.</p></li>
+<li><p>It is possible to interact with <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> only as root, so root permissions are required to successfully run this module.</p></li>
 </ul>
 </div>
 </section>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/rhsm_repository_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/rhsm_repository_module.html
index c688d54..09a2292 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/rhsm_repository_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/rhsm_repository_module.html
@@ -251,6 +251,7 @@ see <a class="reference internal" href="#ansible-collections-community-general-r
 <p class="admonition-title">Note</p>
 <ul class="simple">
 <li><p>In order to manage RHSM repositories the system must be already registered to RHSM manually or using the Ansible <code class="docutils literal notranslate"><span class="pre">redhat_subscription</span></code> module.</p></li>
+<li><p>It is possible to interact with <code class="docutils literal notranslate"><span class="pre">subscription-manager</span></code> only as root, so root permissions are required to successfully run this module.</p></li>
 </ul>
 </div>
 </section>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/shutdown_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/shutdown_module.html
index 5f76440..2c34551 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/shutdown_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/shutdown_module.html
@@ -255,7 +255,7 @@
 <div class="admonition note">
 <p class="admonition-title">Note</p>
 <ul class="simple">
-<li><p><code class="docutils literal notranslate"><span class="pre">PATH</span></code> is ignored on the remote node when searching for the <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> command. Use <em>search_paths</em> to specify locations to search if the default paths do not work.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">PATH</span></code> is ignored on the remote node when searching for the <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> command. Use <em>search_paths</em> to specify locations to search if the default paths do not work. - The <em>msg</em> and <em>delay</em> options are not supported when a shutdown command is not found in <em>search_paths</em>, instead the module will attempt to shutdown the system by calling <code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">shutdown</span></code>.</p></li>
 </ul>
 </div>
 </section>
diff --git a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/znode_module.html b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/znode_module.html
index bf36b93..9b52fa0 100644
--- a/home/runner/work/community.general/community.general/docsbuild/base/collections/community/general/znode_module.html
+++ b/home/runner/work/community.general/community.general/docsbuild/head/collections/community/general/znode_module.html
@@ -260,6 +260,19 @@ see <a class="reference internal" href="#ansible-collections-community-general-z
 </div></td>
 </tr>
 <tr class="row-even"><td><div class="ansible-option-cell">
+<div class="ansibleOptionAnchor" id="parameter-use_tls"></div><p class="ansible-option-title" id="ansible-collections-community-general-znode-module-parameter-use-tls"><strong>use_tls</strong></p>
+<a class="ansibleOptionLink" href="#parameter-use_tls" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
+<p><span class="ansible-option-versionadded">added in community.general 6.5.0</span></p>
+</div></td>
+<td><div class="ansible-option-cell"><p>Using TLS/SSL or not.</p>
+<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
+<ul class="simple">
+<li><p><code class="ansible-option-default-bold docutils literal notranslate"><span class="pre">false</span></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
+<li><p><code cla

@ansibullbot

This comment was marked as outdated.

@felixfontein felixfontein added check-before-release PR will be looked at again shortly before release and merged if possible. backport-6 labels Mar 10, 2023
Copy link
Collaborator

@felixfontein felixfontein left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution!

raise AnsibleError('Unable to find command "{0}" in search paths: {1}'.format(shutdown_bin, search_paths))
display.vvv('Unable to find command "{0}" in search paths: {1}, will attempt a shutdown using systemd '
'directly '.format(shutdown_bin, search_paths))
self._shutdown_command = 'systemctl poweroff'
Copy link
Contributor

Choose a reason for hiding this comment

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

this should have a set of backoffs, systemctl being one but others can be runlevel , halt, poweroff or just using rc scripts directly (sometimes you need a combination of em).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Currently these are distro-specific, for this PR I would suggest only adding systemctl. I believe a future PR should be more generic in the case that a system has a more unusual setup.

@ansibullbot

This comment was marked as outdated.

@ansibullbot ansibullbot added merge_commit This PR contains at least one merge commit. Please resolve! needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html and removed new_contributor Help guide this first time contributor labels Mar 14, 2023
@peterupton peterupton force-pushed the shutdown-systemd-without-sysv branch from 8974edf to 9f59b2a Compare March 14, 2023 20:28
@ansibullbot ansibullbot removed merge_commit This PR contains at least one merge commit. Please resolve! needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html labels Mar 14, 2023
@felixfontein
Copy link
Collaborator

This seems to be working well now.

I've noticed some CI test failures were due to the system running in a container (without an init), those will have to be ignored, or a better error printed. Maybe something like: "We are in a container, no init available". Maybe these errors should be ignored? Maybe that should be in another PR? @bcoca This relates to your suggestion.

The Ubuntu 18.04 container used in CI runs systemd as init, and /bin/systemctl exists.

The Debian Bullseye container also runs systemd as init and /bin/systemctl exists.

So something isn't working well right now. Looking at the debug output in CI, it seems that find is run twice with the same arguments (i.e. it looks for shutdown in both cases):

09:43 Using module file /root/ansible/lib/ansible/modules/find.py
09:43 Pipelining is enabled.
09:43 <192.168.144.4> ESTABLISH SSH CONNECTION FOR USER: root
09:43 <192.168.144.4> SSH: ansible.cfg set ssh_args: (-C)(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
09:43 <192.168.144.4> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: (-o)(StrictHostKeyChecking=no)
09:43 <192.168.144.4> SSH: ANSIBLE_REMOTE_PORT/remote_port/ansible_port set: (-o)(Port=22)
09:43 <192.168.144.4> SSH: ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: (-o)(IdentityFile="/root/ansible_collections/community/general/tests/output/.tmp/id_rsa")
09:43 <192.168.144.4> SSH: ansible_password/ansible_ssh_password not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
09:43 <192.168.144.4> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User="root")
09:43 <192.168.144.4> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
09:43 <192.168.144.4> SSH: Set ssh_common_args: ()
09:43 <192.168.144.4> SSH: Set ssh_extra_args: ()
09:43 <192.168.144.4> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath="/root/.ansible/cp/59eea5fa62")
09:43 <192.168.144.4> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=22 -o 'IdentityFile="/root/ansible_collections/community/general/tests/output/.tmp/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/root/.ansible/cp/59eea5fa62"' 192.168.144.4 '/bin/sh -c '"'"'/usr/bin/python3.6 && sleep 0'"'"''
09:43 <192.168.144.4> (0, b'\n{"files": [], "changed": false, "msg": "All paths examined", "matched": 0, "examined": 298, "skipped_paths": {}, "invocation": {"module_args": {"paths": ["/sbin", "/usr/sbin", "/usr/local/sbin"], "patterns": ["shutdown"], "file_type": "any", "read_whole_file": false, "age_stamp": "mtime", "recurse": false, "hidden": false, "follow": false, "get_checksum": false, "use_regex": false, "excludes": null, "contains": null, "age": null, "size": null, "depth": null}}}\n', b'OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n  7 Dec 2017\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 89\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
09:43 Unable to find command "shutdown" in search paths: ['/sbin', '/usr/sbin', '/usr/local/sbin'], will attempt a shutdown using systemd directly.
09:43 Using module file /root/ansible/lib/ansible/modules/find.py
09:43 Pipelining is enabled.
09:43 <192.168.144.4> ESTABLISH SSH CONNECTION FOR USER: root
09:43 <192.168.144.4> SSH: ansible.cfg set ssh_args: (-C)(-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
09:43 <192.168.144.4> SSH: ANSIBLE_HOST_KEY_CHECKING/host_key_checking disabled: (-o)(StrictHostKeyChecking=no)
09:43 <192.168.144.4> SSH: ANSIBLE_REMOTE_PORT/remote_port/ansible_port set: (-o)(Port=22)
09:43 <192.168.144.4> SSH: ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: (-o)(IdentityFile="/root/ansible_collections/community/general/tests/output/.tmp/id_rsa")
09:43 <192.168.144.4> SSH: ansible_password/ansible_ssh_password not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
09:43 <192.168.144.4> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User="root")
09:43 <192.168.144.4> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
09:43 <192.168.144.4> SSH: Set ssh_common_args: ()
09:43 <192.168.144.4> SSH: Set ssh_extra_args: ()
09:43 <192.168.144.4> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath="/root/.ansible/cp/59eea5fa62")
09:43 <192.168.144.4> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=22 -o 'IdentityFile="/root/ansible_collections/community/general/tests/output/.tmp/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/root/.ansible/cp/59eea5fa62"' 192.168.144.4 '/bin/sh -c '"'"'/usr/bin/python3.6 && sleep 0'"'"''
09:43 <192.168.144.4> (0, b'\n{"files": [], "changed": false, "msg": "All paths examined", "matched": 0, "examined": 978, "skipped_paths": {}, "invocation": {"module_args": {"paths": ["/bin", "/usr/bin"], "patterns": ["shutdown"], "file_type": "any", "read_whole_file": false, "age_stamp": "mtime", "recurse": false, "hidden": false, "follow": false, "get_checksum": false, "use_regex": false, "excludes": null, "contains": null, "age": null, "size": null, "depth": null}}}\n', b'OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n  7 Dec 2017\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 89\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')

(See the lines starting with (0, b'\n{"files":.)

Yeah well, and now looking at the code again, I see the problem...

Another note, should the test that removes systemd-sysv package be put in the "destructive" tests? (From here.)

Makes sense.

@ansibullbot

This comment was marked as outdated.

@ansibullbot

This comment was marked as outdated.

@ansibullbot

This comment was marked as outdated.

@ansibullbot ansibullbot added the stale_ci CI is older than 7 days, rerun before merging label Apr 1, 2023
@ansibullbot ansibullbot removed the stale_ci CI is older than 7 days, rerun before merging label Apr 23, 2023
@peterupton peterupton changed the title [WIP] Shutdown systemd without sysv Shutdown systemd without sysv Apr 26, 2023
@ansibullbot ansibullbot removed the WIP Work in progress label Apr 26, 2023
@ansibullbot ansibullbot added the stale_ci CI is older than 7 days, rerun before merging label May 5, 2023
@felixfontein
Copy link
Collaborator

Please note that two of my review comments (#6171 (review)) are still open.

peterupton and others added 2 commits May 9, 2023 09:31
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
@peterupton
Copy link
Contributor Author

Please note that two of my review comments (#6171 (review)) are still open.

Thank you for the reminder, I've committed the suggestions.

@ansibullbot ansibullbot removed the stale_ci CI is older than 7 days, rerun before merging label May 9, 2023
@felixfontein felixfontein merged commit 88f7b5a into ansible-collections:main May 9, 2023
@felixfontein felixfontein removed the check-before-release PR will be looked at again shortly before release and merged if possible. label May 9, 2023
@felixfontein
Copy link
Collaborator

@peterupton thanks for your contribution!
@bcoca thanks for reviewing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
action action plugin bug This issue/PR relates to a bug integration tests/integration module module plugins plugin (any type) system tests tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

shutdown: does not work on systemd-based systems without systemd-sysv installed
4 participants