dataset/seed/ldap-client/dictionaries/21_ldap-client.xml
2023-08-29 10:37:29 +02:00

94 lines
4.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<rougail version="0.10">
<services>
<service name="ldap-client" target="risotto" engine="ansible">
<certificate authority="LDAP" owner="ldap_key_file_owner" owner_type="variable" server="ldap_server_address">ldap_client</certificate>
<file engine="ansible" source="ldap.conf" file_type="variable">ldap_client_file</file>
</service>
</services>
<variables>
<family name="ldap" description="OpenLDAP directory">
<family name="server" description="Server">
<variable name='ldap_server_address' type='domainname' hidden="True" mandatory='True' supplier="LDAP"/>
<variable name="ldap_server_ip" type="ip" hidden="True"/>
<variable name='ldap_port' type='port' hidden="True">
<value>636</value>
</variable>
<variable name='prefix_domain_name' hidden="True" mandatory="True" provider="global:prefix_domain_name"/>
</family>
<family name="client" description="Client">
<variable name='ldapclient_family' type='unix_user' description="Restrict service configuration for a LDAP family" help='"all" for all families.' supplier="LDAP:family"/>
<variable name='ldapclient_user' type='string' mandatory='False' hidden="True" supplier="LDAP:dn"/>
<variable name='ldapclient_address' hidden="True"/>
<variable name='ldapclient_user_password' type='password' mandatory='True' hidden="True" supplier="LDAP:password"/>
<variable name='ldapclient_base_dn' type='string' mandatory="True" supplier="LDAP:base_dn" hidden="True"/>
<variable name='ldapclient_search_dn' type='string' mandatory="True" hidden="True"/>
<variable name='ldapclient_group_dn' type='string' mandatory="True" hidden="True"/>
<variable name='ldapclient_user_dn' type='string' mandatory="True" hidden="True"/>
<variable name="ldap_key_file_owner" type="unix_user" hidden="True">
<value>root</value>
</variable>
<variable name="ldap_client_file" type="filename" hidden="True"/>
</family>
</family>
</variables>
<constraints>
<check name='valid_base_dn'>
<target>ldapclient_base_dn</target>
</check>
<fill name="get_ip">
<param type="information">zones</param>
<param type="variable">ldap_server_address</param>
<target>ldap_server_ip</target>
</fill>
<fill name='get_default_base_dn'>
<param type="variable">prefix_domain_name</param>
<target>ldapclient_base_dn</target>
</fill>
<fill name='calc_value'>
<param>ou=accounts</param>
<param type="variable">ldapclient_base_dn</param>
<param name="join">,</param>
<target>ldapclient_search_dn</target>
</fill>
<fill name='calc_value'>
<param>cn=</param>
<param type='variable'>ldapclient_address</param>
<param>,</param>
<param type='variable'>ldapclient_base_dn</param>
<param name="join"></param>
<target>ldapclient_user</target>
</fill>
<fill name="get_client_address">
<param type='variable'>ldap_server_ip</param>
<param type='variable'>domain_name_eth</param>
<param type='variable'>network_eth</param>
<target>ldapclient_address</target>
</fill>
<fill name="get_password">
<param name="server_name" type="variable">ldap_server_address</param>
<param name="username" type="variable">ldapclient_user</param>
<param name="description">remote account</param>
<param name="type">cleartext</param>
<param name="hide" type="variable">hide_secret</param>
<param name="temporary" type="boolean">True</param>
<target>ldapclient_user_password</target>
</fill>
<fill name="calc_ldapclient_base_dn">
<param type="variable">ldapclient_base_dn</param>
<param name="group" type="boolean">True</param>
<target>ldapclient_group_dn</target>
</fill>
<fill name="calc_ldapclient_base_dn">
<param type="variable">ldapclient_base_dn</param>
<target>ldapclient_user_dn</target>
</fill>
<fill name="calc_value">
<param>/etc/ldap/ldap.conf</param>
<param name="condition" type="variable">os_name</param>
<param name="expected">Debian</param>
<param name="default">/etc/openldap/ldap.conf</param>
<target>ldap_client_file</target>
</fill>
</constraints>
</rougail>