mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-06-10 02:35:54 +00:00
New variables have been added to ipareplica and ipaserver role to enable the removal from the domein with the undeployment. `ipaserver_remove_from_domain` This enables the removal of the server from the domain additionally to the undeployment. `ipaserver_remove_on_server` The value defines the server/replica in the domain that will to be used to remove the server/replica from the domain if `ipaserver_ignore_topology_disconnect` and `ipaserver_remove_from_domain` are enabled. Without the need to enable `ipaserver_ignore_topology_disconnect`, the value will be automatically detected using the replication agreements of the server/replica. For the replica role it is possible to use the server variables, but also the replica versions: `ipareplica_remove_from_domain` and `ipareplica_remove_on_server`. The already existing parameters `ipaserver_ignore_topology_disconnect` and `ipaserver_ignore_last_of_role` have been added to the README files for server and replica with descriptions. The same for the replica versions of the parameters. The ipareplica role is not calling the `ipa-server-install` anymore, it is instead using (including) the server role for the task. The new module `ipaserver_get_connected_server` has been added to the server role to be able to get a connected server using the replication agreements. This module is only used if `ipaserver_ignore_topology_disconnect` is not needed.
62 lines
2.4 KiB
YAML
62 lines
2.4 KiB
YAML
---
|
|
# tasks to uninstall IPA server
|
|
|
|
- name: Uninstall - Set server hostname for removal
|
|
ansible.builtin.set_fact:
|
|
_remove_hostname: "{{ ansible_facts['fqdn'] }}"
|
|
|
|
- name: Uninstall - Remove server
|
|
when: ipaserver_remove_from_domain
|
|
block:
|
|
|
|
- name: Uninstall - Fail on missing ipaadmin_password for server removal
|
|
ansible.builtin.fail:
|
|
msg: "'ipaadmin_password' is needed for 'ipaserver_remove_from_domain'"
|
|
when: ipaadmin_password is not defined
|
|
|
|
- name: Uninstall - Fail on missing ipaserver_remove_on_server with ipaserver_ignore_topology_disconnect
|
|
ansible.builtin.fail:
|
|
msg: "'ipaserver_remove_on_server' is needed for 'ipaserver_remove_from_domain' with 'ipaserver_ignore_topology_disconnect'"
|
|
when: ipaserver_ignore_topology_disconnect | bool
|
|
and ipaserver_remove_on_server is not defined
|
|
|
|
- name: Uninstall - Get connected server
|
|
ipaserver_get_connected_server:
|
|
ipaadmin_principal: "{{ ipaadmin_principal | default('admin') }}"
|
|
ipaadmin_password: "{{ ipaadmin_password }}"
|
|
hostname: "{{ _remove_hostname }}"
|
|
register: result_get_connected_server
|
|
when: ipaserver_remove_on_server is not defined
|
|
|
|
# REMOVE SERVER FROM DOMAIN
|
|
- name: Uninstall - Server del "{{ _remove_hostname }}"
|
|
ipaserver:
|
|
ipaadmin_principal: "{{ ipaadmin_principal | default('admin') }}"
|
|
ipaadmin_password: "{{ ipaadmin_password }}"
|
|
name: "{{ _remove_hostname }}"
|
|
ignore_last_of_role: "{{ ipaserver_ignore_last_of_role }}"
|
|
ignore_topology_disconnect: "{{ ipaserver_ignore_topology_disconnect }}"
|
|
# delete_continue: "{{ ipaserver_delete_continue }}"
|
|
state: absent
|
|
delegate_to: "{{ ipaserver_remove_on_server | default(result_get_connected_server.server) }}"
|
|
when: ipaserver_remove_on_server is defined or
|
|
result_get_connected_server.server is defined
|
|
|
|
- name: Uninstall - Uninstall IPA server
|
|
ansible.builtin.command: >
|
|
/usr/sbin/ipa-server-install
|
|
--uninstall
|
|
-U
|
|
{{ '--ignore-topology-disconnect' if ipaserver_ignore_topology_disconnect
|
|
| bool else '' }}
|
|
{{ '--ignore-last-of-role' if ipaserver_ignore_last_of_role | bool else '' }}
|
|
register: uninstall
|
|
# 1 means that uninstall failed because IPA server was not configured
|
|
failed_when: uninstall.rc != 0 and uninstall.rc != 1
|
|
changed_when: uninstall.rc == 0
|
|
|
|
#- name: Remove IPA server packages
|
|
# ansible.builtin.package:
|
|
# name: "{{ ipaserver_packages }}"
|
|
# state: absent
|