Forge Home

freeipa

Manages IPA servers and clients.

17,201 downloads

736 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 6.0.0 (latest)
  • 5.0.2
  • 5.0.1
  • 5.0.0
  • 4.3.0
  • 4.2.0
  • 4.1.1
  • 4.1.0
  • 4.0.0
  • 3.0.1
  • 3.0.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
released Aug 29th 2019
This version is compatible with:
  • Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
  • Puppet >= 5.0.0 < 7.0.0
  • ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'adullact-freeipa', '4.3.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add adullact-freeipa
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install adullact-freeipa --version 4.3.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

adullact/freeipa — version 4.3.0 Aug 29th 2019

Freeipa Puppet module

Table of Contents

  1. Description
  2. Setup - The basics of getting started with Freeipa Puppet Module
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Release Notes

Description

This module will install and configure FreeIPA servers, replicas, and clients.

Setup

What Freeipa Pupppet module affects

The module should not affect a previous installation of FreeIPA, it should fail trying.

Below are all items that module can affect:

  • Modifiy /etc/hosts (if $freeipa::manage_host_entry true)

  • Install the following packages if not present: autofs, bind-dyndb-ldap, epel-release, sssd-common, sssdtools, ipa-client, ipa-server, ipa-server-dns, openldap-clients

Installation of Freeipa server will obviously install a ntp server, a DNS server, a LDAP Directory, a Kerberos server, apache, Certmonger and PKI Tomcat.

Setup Requirements

This module requires :

  • puppetlabs-stdlib

  • stahnma-epel

Versions are given in metadata.json file.

How does the module work.

Usually with a module, the desired state is described. If a value of parameter is changed, then during the next puppet run the node is modified to reach the desired state. The version 3.x is a starting work to reach the target. But, the module is more an idempotent installer of FreeIPA.

So, to ensure that desired state described in code is applied on the node, puppet needs to login to kerberos. Puppet uses a fixed account admin to do this. It is possible to set the password of this account with parameter freeipa::puppet_admin_password. If freeipa::enable_manage_admins is true, the accounts of humans administrators are managed with hash freeipa::humanadmins. If you modify freeipa::humanadmins, next puppet run will take care to update the admins users on master node. The replication will to the job on replicas.

Usage

Example usage:

Creating an IPA master, with the WebUI proxied to https://localhost:8440 and two admin accounts jdupond and mgonzales.

class {'freeipa':
    ipa_role                    => 'master',
    domain                      => 'example.lan',
    ipa_server_fqdn             => 'ipa-server-1.example.lan',
    puppet_admin_password       => 'secret_abc,
    directory_services_password => 'secret_dir',
    install_ipa_server          => true,
    ip_address                  => '10.10.10.35',
    enable_ip_address           => true,
    enable_hostname             => true,
    manage_host_entry           => true,
    install_epel                => true,
    humanadmins                 => {
      jdupond => {
        ensure => 'present',
        password => 'secret123',
      },
      mgonzales => {
        ensure => 'present',
        password => 'secret456',
      },
      hzimmer => {
        ensure => 'absent',
      },
    },
}

Adding a replica:

class {'freeipa':
    ipa_role             => 'replica',
    domain               => 'example.lan',
    ipa_server_fqdn      => 'ipa-server-2.example.lan',
    domain_join_password => 'vagrant123',
    install_ipa_server   => true,
    ip_address           => '10.10.10.36',
    enable_ip_address    => true,
    enable_hostname      => true,
    manage_host_entry    => true,
    install_epel         => true,
    ipa_master_fqdn      => 'ipa-server-1.example.lan',
}

Adding a client:

class {'freeipa':
ipa_role             => 'client',
domain               => 'example.lan',
domain_join_password => 'vagrant123',
install_epel         => true,
ipa_master_fqdn      => 'ipa-server-1.example.lan',
}

REFERENCE

A full description can be found in REFERENCE.md.

Limitations

This module will not work well if managed passwords contain ' or \. They must be banned.

Acceptance tests are done :

  • with last available versions of Puppet 5 and Puppet 6 from puppetlabs packages AIO (facter 3 is shiped).

  • with CentOS 7 for FreeIPA master and replica nodes. IPA masters and replicas works only on Centos >= 7.5.

  • with CentOS 7 and Ubuntu 16.06 for FreeIPA clients .

Puppet4 is EOL since 2019-01-01. Even if puppet 4.10 should work, it is not tested.

Development

Home at URL https://gitlab.adullact.net/adullact/puppet-freeipa

Issues and MR are welcome. CONTRIBUTING.md gives some guidance about contributing process. If you follow these contributing guidelines your patch will likely make it into a release a little more quickly.

Release Notes

Details in CHANGELOG.md. Key points :

  • release 1.6.1 : the fist release under adullact name space. nothing special.

  • releases 2.x : use code ready for Puppet 4.10 and 5.x, uses pdk as guidance, enable acceptance tests, rename classes from easy_ipa to freeipa.

  • releases 3.x : use public and private classes, enable Puppet 6 tests, drop Puppet 4 tests, refactor module to permit management of administrator accounts.

Contributors

Original work from Harvard University Information Technology, mainly written by Rob Ruma (https://github.com/huit/puppet-ipa)

then forked by John Puskar (https://github.com/jpuskar/puppet-freeipa)

then forked by ADULLACT (https://gitlab.adullact.net/adullact/puppet-freeipa) written by :

  • ADULLACT with Fabien Combernous
  • PHOSPHORE.si with Scott Barthelemy and Bertrand RETIF

License

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/>.