diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
commit | 975f66f2eebe9dadba04f275774d4ab83f74cf25 (patch) | |
tree | 89bd26a93aaae6a25749145b7e4bca4a1e75b2be /ansible_collections/microsoft/ad/plugins/modules/membership.py | |
parent | Initial commit. (diff) | |
download | ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.tar.xz ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.zip |
Adding upstream version 7.7.0+dfsg.upstream/7.7.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/microsoft/ad/plugins/modules/membership.py')
-rw-r--r-- | ansible_collections/microsoft/ad/plugins/modules/membership.py | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/ansible_collections/microsoft/ad/plugins/modules/membership.py b/ansible_collections/microsoft/ad/plugins/modules/membership.py new file mode 100644 index 000000000..f4d8521cf --- /dev/null +++ b/ansible_collections/microsoft/ad/plugins/modules/membership.py @@ -0,0 +1,141 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +module: membership +short_description: Manage domain/workgroup membership for a Windows host +description: +- Manages domain membership or workgroup membership for a Windows host. Also supports hostname changes. +- This module may require subsequent use of the M(ansible.windows.win_reboot) action if changes are made. +options: + dns_domain_name: + description: + - When I(state=domain), this is the DNS name of the domain to which the targeted Windows host should be joined. + - This cannot be set when I(offline_join_blob) is specified. + type: str + domain_admin_user: + description: + - Username of a domain admin for the target domain (required to join or leave the domain). + - This must be set unless I(offline_join_blob) is specified. + type: str + domain_admin_password: + description: + - Password for the specified C(domain_admin_user). + - This must be set unless I(offline_join_blob) is specified. + type: str + domain_ou_path: + description: + - The desired OU path for adding the computer object. + - This is only used when adding the target host to a domain, if it is already a member then it is ignored. + - This cannot be set when I(offline_join_blob) is specified. + type: str + hostname: + description: + - The desired hostname for the Windows host. + - This cannot be set when I(offline_join_blob) is specified. + type: str + offline_join_blob: + description: + - The base64 string of the domain offline join blob to use when joining + the host to a domain. + - This blob can been generated by the + M(microsoft.ad.offline_join) module. + - This is mutually exclusive with I(domain_admin_user), I(dns_domain_name), + and I(domain_ou_path). + - It also cannot be used with I(hostname). + type: str + reboot: + description: + - If C(true), this will reboot the host if a reboot was required to configure the domain. + - If C(false), this will not reboot the host if a reboot was required and instead sets the I(reboot_required) return value to C(true). + - If changing from a domain to workgroup, the connection account must be a local user that can connect to the host + after it has unjoined the domain. + - This cannot be used with async mode. + - To use this parameter, ensure the fully qualified module name is used in the task or the I(collections) keyword includes this collection. + type: bool + default: false + state: + description: + - Whether the target host should be a member of a domain or workgroup. + - When I(state=domain), I(dns_domain_name), I(domain_admin_user), and I(domain_admin_password) or + I(offline_join_blob) must be set. + - When I(state=workgroup), I(workgroup_name) must be set. + choices: + - domain + - workgroup + required: true + type: str + workgroup_name: + description: + - When I(state=workgroup), this is the name of the workgroup that the Windows host should be in. + type: str +extends_documentation_fragment: +- ansible.builtin.action_common_attributes +- ansible.builtin.action_common_attributes.flow +attributes: + check_mode: + support: full + diff_mode: + support: full + platform: + platforms: + - windows + action: + support: full + async: + support: partial + details: Supported for all scenarios except with I(reboot=True). + bypass_host_loop: + support: none +seealso: +- module: microsoft.ad.domain +- module: microsoft.ad.domain_controller +- module: microsoft.ad.group +- module: microsoft.ad.offline_join +- module: microsoft.ad.user +- module: microsoft.ad.computer +- module: ansible.windows.win_group +- module: ansible.windows.win_group_membership +- module: ansible.windows.win_user +- ref: Migration guide <ansible_collections.microsoft.ad.docsite.guide_migration.migrated_modules.win_domain_membership> + description: This module replaces C(ansible.windows.win_domain_membership). See the migration guide for details. +- module: ansible.windows.win_domain_membership +author: +- Matt Davis (@nitzmahone) +- Jordan Borean (@jborean93) +""" + +EXAMPLES = r""" +- name: join host to ansible.vagrant with automatic reboot + microsoft.ad.membership: + dns_domain_name: ansible.vagrant + hostname: mydomainclient + domain_admin_user: testguy@ansible.vagrant + domain_admin_password: password123! + domain_ou_path: "OU=Windows,OU=Servers,DC=ansible,DC=vagrant" + state: domain + reboot: true + +- name: join host to workgroup with manual reboot in later task + microsoft.ad.membership: + workgroup_name: mywg + domain_admin_user: '{{ win_domain_admin_user }}' + domain_admin_password: '{{ win_domain_admin_password }}' + state: workgroup + register: workgroup_res + +- name: reboot host after joining workgroup + ansible.windows.win_reboot: + when: workgroup_res.reboot_required +""" + +RETURN = r""" +reboot_required: + description: True if changes were made that require a reboot. + returned: always + type: bool + sample: true +""" |