Skip to content
Snippets Groups Projects
Commit 695d09aa authored by Thomas Woerner's avatar Thomas Woerner
Browse files

ipaclient: Backup and set hostname explicitly

This is needed to use ipaclient in ipareplica for client deployment.
parent e6cd47bc
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Authors:
# Thomas Woerner <twoerner@redhat.com>
#
# Based on ipa-client-install code
#
# Copyright (C) 2018 Red Hat
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
ANSIBLE_METADATA = {
'metadata_version': '1.0',
'supported_by': 'community',
'status': ['preview'],
}
DOCUMENTATION = '''
---
module: ipaclient_set_hostname
short description: Backup and set hostname
description:
Backup and set hostname
options:
hostname:
description: The hostname of the machine to join (FQDN).
required: true
author:
- Thomas Woerner
'''
EXAMPLES = '''
# Backup and set hostname
- name: Backup and set hostname
ipaclient_set_hostname:
hostname: client1.example.com
'''
RETURN = '''
'''
import os
import tempfile
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.ansible_ipa_client import *
def main():
module = AnsibleModule(
argument_spec = dict(
hostname=dict(required=True),
),
supports_check_mode = True,
)
module._ansible_debug = True
hostname = module.params.get('hostname')
fstore = sysrestore.FileStore(paths.IPA_CLIENT_SYSRESTORE)
statestore = sysrestore.StateFile(paths.IPA_CLIENT_SYSRESTORE)
tasks.backup_hostname(fstore, statestore)
tasks.set_hostname(hostname)
module.exit_json(changed=True)
if __name__ == '__main__':
main()
...@@ -131,6 +131,11 @@ ...@@ -131,6 +131,11 @@
failed_when: iparmkeytab.rc != 0 and iparmkeytab.rc != 3 and iparmkeytab.rc != 5 failed_when: iparmkeytab.rc != 0 and iparmkeytab.rc != 3 and iparmkeytab.rc != 5
when: ipaclient_use_otp | bool or ipaclient_force_join | bool when: ipaclient_use_otp | bool or ipaclient_force_join | bool
- name: Install - Backup and set hostname
ipaclient_set_hostname:
hostname: "{{ ipadiscovery.hostname }}"
when: not ipaclient_on_master | bool
- name: Install - Join IPA - name: Install - Join IPA
ipajoin: ipajoin:
servers: "{{ ipadiscovery.servers }}" servers: "{{ ipadiscovery.servers }}"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment