timorunge.freeipa_client
freeipa_client
Este rol instala y configura el cliente FreeIPA según tus necesidades.
En combinación con
freeipa
(Github), es posible (y ha sido probado) usar freeipa_client
con la versión más reciente de FreeIPA en Debian 9.4 y Ubuntu >= 18.04 (mira la
sección de ejemplos).
Requisitos
Este rol requiere Ansible 2.5.0 o superior.
Puedes usar pip para instalar (y definir) una versión estable:
pip install ansible==2.7.9
Todos los requisitos de plataforma están listados en el archivo de metadatos.
Para configurar este rol correctamente, es necesario que puedas comunicarte por los puertos requeridos con un Servidor FreeIPA (Repositorio de Github).
Instalación
ansible-galaxy install timorunge.freeipa_client
Variables del Rol
Es necesario establecer las siguientes variables para que este rol funcione (sin personalización). Estas variables no tienen valores predeterminados:
# Dominio DNS principal de la implementación IPA
# Tipo: Str
freeipa_client_domain: example.com
# El nombre del host de esta máquina (FQDN)
# Tipo: Str
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# Contraseña para unirse al reino IPA
# Tipo: Str
freeipa_client_password: Passw0rd
# Principal para usar al unirse al reino IPA
# Tipo: Str
freeipa_client_principal: admin
# Nombre del reino Kerberos de la implementación IPA
# Tipo: Str
freeipa_client_realm: EXAMPLE.COM
# FQDN del servidor IPA
# Tipo: Str
freeipa_client_server: ipa.example.com
Las variables que se pueden pasar a este rol y una breve descripción de ellas son las siguientes. (Para todas las variables, consulta defaults/main.yml)
# El comando base para la instalación de FreeIPA
# Tipo: Str
freeipa_client_install_base_command: ipa-client-install --unattended
# Las opciones de instalación predeterminadas de FreeIPA
# Tipo: Lista
freeipa_client_install_options:
- "--domain={{ freeipa_client_domain }}"
- "--server={{ freeipa_client_server }}"
- "--realm={{ freeipa_client_realm }}"
- "--principal={{ freeipa_client_principal }}"
- "--password={{ freeipa_client_password }}"
- "--mkhomedir"
- "--hostname={{ freeipa_client_fqdn }}"
- "--force-join"
Ejemplos
Para mantener el documento conciso, se han eliminado las opciones de instalación. Puedes encontrar las opciones de instalación en este documento o en la página man en línea para ipa-client-install.
1) Instalar el cliente FreeIPA con configuraciones predeterminadas
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
roles:
- timorunge.freeipa_client
2) Instalar el servidor FreeIPA con opciones de instalación personalizadas
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--no-ntp"
- "--ssh-trust-dns"
- "--ip-address=172.20.1.2"
- "--ip-address=172.20.2.2"
roles:
- timorunge.freeipa_client
3) Instalar el cliente FreeIPA y agregar múltiples servidores IPA
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server:
- ipa-eu-central-1.example.com
- ipa-eu-west-1.example.com
- ipa-eu-west-2.example.com
- ipa-eu-west-3.example.com
- ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
Opciones de instalación del cliente FreeIPA
Una descripción general de las opciones de instalación para ipa-client-install (4.6.4).
Uso: ipa-client-install [opciones]
Opciones:
--version muestra el número de versión del programa y sale
-h, --help muestra este mensaje de ayuda y sale
-U, --unattended la (des)instalación desatendida nunca solicita al usuario
--uninstall desinstala una instalación existente. La desinstalación puede
ejecutarse con la opción --unattended
Opciones básicas:
-p PRINCIPAL, --principal=PRINCIPAL
principal para usar al unirse al reino IPA
--ca-cert-file=FILE
carga el certificado CA desde este archivo
--ip-address=IP_ADDRESS
Especifica la dirección IP que debe añadirse al DNS. Esta
opción puede usarse varias veces
--all-ip-addresses Todas las direcciones IP enrutables configuradas en cualquier interfaz
se agregarán al DNS
--domain=DOMAIN_NAME
dominio DNS principal de la implementación IPA (no
necesariamente relacionado con el nombre de host actual)
--server=SERVER FQDN del servidor IPA
--realm=REALM_NAME nombre del reino Kerberos de la implementación IPA (típicamente
un nombre en mayúsculas del dominio DNS principal)
--hostname=HOST_NAME
El nombre del host de esta máquina (FQDN). Si se especifica,
el nombre del host se establecerá y la configuración del sistema
se actualizará para persistir después de reiniciar. Por defecto,
se utiliza el resultado de la llamada getfqdn() del módulo socket de Python.
Opciones del cliente:
-w PASSWORD, --password=PASSWORD
contraseña para unirse al reino IPA (asume contraseña masiva
a menos que también se establezca el principal)
-W Solicitar una contraseña para unirse al reino IPA
--noac no modificar el nsswitch.conf y la configuración PAM
-f, --force forzar la configuración del conf de LDAP/Kerberos
--configure-firefox
configura Firefox para usar credenciales del dominio IPA
--firefox-dir=FIREFOX_DIR
especifica el directorio donde está instalado Firefox (por
ejemplo: '/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
ruta al keytab respaldado de una inscripción anterior
--mkhomedir crea directorios de inicio para usuarios en su primer inicio de sesión
--force-join Fuerza la inscripción del cliente incluso si ya está inscrito
--ntp-server=NTP_SERVER
servidor ntp a utilizar. Esta opción puede usarse varias
veces
-N, --no-ntp no configurar ntp
--force-ntpd detener y deshabilitar cualquier servicio de sincronización de tiempo y fecha
además de ntpd
--nisdomain=NISDOMAIN
nombre de dominio NIS
--no-nisdomain no configurar el nombre del dominio NIS
--ssh-trust-dns configurar el cliente OpenSSH para confiar en los registros SSHFP de DNS
--no-ssh no configurar el cliente OpenSSH
--no-sshd no configurar el servidor OpenSSH
--no-sudo no configurar SSSD como fuente de datos para sudo
--no-dns-sshfp no crear automáticamente registros DNS SSHFP
--kinit-attempts=KINIT_ATTEMPTS
número de intentos para obtener el TGT de host (predeterminado es 5).
--request-cert solicitar un certificado para la máquina
Opciones de SSSD:
--fixed-primary Configurar sssd para usar un servidor fijo como servidor IPA
primario
--permit deshabilitar reglas de acceso por defecto, permitir todo el acceso.
--enable-dns-updates
Configura la máquina para intentar actualizaciones de DNS cuando la
dirección IP cambie.
--no-krb5-offline-passwords
Configurar SSSD para no almacenar la contraseña del usuario cuando el
servidor está fuera de línea
--preserve-sssd Preservar la configuración antigua de SSSD si es posible
Opciones de automontaje:
--automount-location=AUTOMOUNT_LOCATION
Ubicación de automontaje
Opciones de registro y salida:
-v, --verbose imprimir información de depuración
-d, --debug alias para --verbose (obsoleto)
-q, --quiet salida solo errores
--log-file=FILE registrar en el archivo dado
Pruebas
Las pruebas en Travis se realizan con Docker y docker_test_runner. Las pruebas en Travis realizan análisis y verificaciones de sintaxis.
Para más detalles y comprobaciones adicionales, consulta la configuración de docker_test_runner y el entrypoint de Docker.
# Pruebas localmente:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Dependencias
Este rol requiere un Servidor FreeIPA (Repositorio de Github) en funcionamiento.
Licencia
Licencia BSD 3-Clause "Nueva" o "Revisada"
Información del Autor
- Timo Runge
FreeIPA Identity Management Client provisioning.
ansible-galaxy install timorunge.freeipa_client