Skip to content
Snippets Groups Projects
Select Git revision
  • d24bdbcefda7172f419b9d4c07636d99d15baec0
  • master default protected
  • v1.15.1
  • v1.15.0
  • v1.14.7
  • v1.14.6
  • v1.14.5
  • v1.14.4
  • v1.14.3
  • v1.14.2
  • v1.14.1
  • v1.14.0
  • v1.13.2
  • v1.13.1
  • v1.13.0
  • v1.12.1
  • v1.12.0
  • v1.11.1
  • v1.11.0
  • v1.10.0
  • v1.9.2
  • v1.9.1
22 results

README.md

Blame
  • ipaclient_ipa_conf.py 2.86 KiB
    #!/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_ipa_conf
    short description: Configure ipa.conf
    description:
      Configure ipa.conf
    options:
      servers:
        description: The FQDN of the IPA servers to connect to.
        required: true
        type: list
      domain:
        description: The primary DNS domain of an existing IPA deployment.
        required: false
      realm:
        description:  The Kerberos realm of an existing IPA deployment.
        required: false
      hostname:
        description: The hostname of the machine to join (FQDN).
        required: true
      basedn:
        description: The basedn of the detected IPA server.
        returned: always
        type: string
        sample: dc=example,dc=com
    author:
        - Thomas Woerner
    '''
    
    EXAMPLES = '''
    # Backup and set hostname
    - name: Backup and set hostname
      ipaclient_ipa_conf:
        server: server.example.com
        domain: example.com
        realm: EXAMPLE.COM
        hostname: client1.example.com
        basedn: dc=example,dc=com
    '''
    
    RETURN = '''
    '''
    
    from ansible.module_utils.basic import AnsibleModule
    from ansible.module_utils.ansible_ipa_client import (
        paths, sysrestore, configure_ipa_conf
    )
    
    
    def main():
        module = AnsibleModule(
            argument_spec=dict(
                domain=dict(required=True, default=None),
                servers=dict(required=True, type='list', default=None),
                realm=dict(required=True, default=None),
                hostname=dict(required=True, default=None),
                basedn=dict(required=True),
            ),
            supports_check_mode=True,
        )
    
        module._ansible_debug = True
        servers = module.params.get('servers')
        domain = module.params.get('domain')
        realm = module.params.get('realm')
        hostname = module.params.get('hostname')
        basedn = module.params.get('basedn')
    
        fstore = sysrestore.FileStore(paths.IPA_CLIENT_SYSRESTORE)
    
        configure_ipa_conf(fstore, basedn, realm, domain, servers, hostname)
    
        module.exit_json(changed=True)
    
    
    if __name__ == '__main__':
        main()