[slapd] added slapd role
							parent
							
								
									ae189b7b77
								
							
						
					
					
						commit
						19685dc466
					
				|  | @ -0,0 +1,11 @@ | ||||||
|  | #!/usr/bin/env ansible-playbook | ||||||
|  | --- | ||||||
|  | - hosts: daniel.adm.crans.org | ||||||
|  |   vars: | ||||||
|  |     ldap: | ||||||
|  |       replica: true | ||||||
|  |       master_ip: 172.16.1.1 # faire une query pour l'adresse de tealc sur le ldap | ||||||
|  |       replica_rid: 2 | ||||||
|  |       ip: 172.16.1.12 | ||||||
|  |   roles: | ||||||
|  |     - slapd | ||||||
|  | @ -0,0 +1,6 @@ | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | - name: Restart slapd | ||||||
|  |   service: | ||||||
|  |     name: slapd.service | ||||||
|  |     state: restarted | ||||||
|  | @ -0,0 +1,30 @@ | ||||||
|  | --- | ||||||
|  | - name: Install slapd | ||||||
|  |   apt: | ||||||
|  |     update_cache: true | ||||||
|  |     name: | ||||||
|  |       - slapd | ||||||
|  |   register: apt_result | ||||||
|  |   retries: 3 | ||||||
|  |   until: apt_result is succeeded | ||||||
|  | 
 | ||||||
|  | - name: Remove slapd config directory | ||||||
|  |   files: | ||||||
|  |     path: /etc/ldap/slapd.d/ | ||||||
|  |     state: absent | ||||||
|  | 
 | ||||||
|  | - name: Deploy slapd configuration | ||||||
|  |   template: | ||||||
|  |     src: ldap/slapd.conf.j2 | ||||||
|  |     dest: /etc/slapd/slapd.conf | ||||||
|  |     mode: 0600 | ||||||
|  |     owner: openldap | ||||||
|  |     group: openldap | ||||||
|  |   notify: Restart slapd | ||||||
|  |   | ||||||
|  | - name: Deploy ldap services | ||||||
|  |   lineinfile: | ||||||
|  |      path: /etc/default/slapd | ||||||
|  |      regexp: '^SLAPD_SERVICES=' | ||||||
|  |      line: 'SLAPD_SERVICES="ldaps://{{ ldap.ip }}/ ldapi:///"' | ||||||
|  |   notify: Restart slapd | ||||||
|  | @ -0,0 +1,195 @@ | ||||||
|  | # This is the main slapd configuration file. See slapd.conf(5) for more | ||||||
|  | # info on the configuration options. | ||||||
|  | 
 | ||||||
|  | ####################################################################### | ||||||
|  | # Global Directives: | ||||||
|  | 
 | ||||||
|  | # Schema and objectClass definitions | ||||||
|  | include         /etc/ldap/schema/core.schema | ||||||
|  | include         /etc/ldap/schema/cosine.schema | ||||||
|  | include         /etc/ldap/schema/nis.schema | ||||||
|  | include         /etc/ldap/schema/inetorgperson.schema | ||||||
|  | 
 | ||||||
|  | # Where the pid file is put. The init.d script | ||||||
|  | # will not stop the server if you change this. | ||||||
|  | pidfile         /var/run/slapd/slapd.pid | ||||||
|  | 
 | ||||||
|  | # List of arguments that were passed to the server | ||||||
|  | argsfile        /var/run/slapd/slapd.args | ||||||
|  | 
 | ||||||
|  | # Read slapd.conf(5) for possible values | ||||||
|  | loglevel        none | ||||||
|  | 
 | ||||||
|  | # Where the dynamically loaded modules are stored | ||||||
|  | modulepath      /usr/lib/ldap | ||||||
|  | moduleload      back_mdb | ||||||
|  | {% if not ldap.replica %} | ||||||
|  | moduleload 		auditlog | ||||||
|  | 
 | ||||||
|  | overlay 		auditlog | ||||||
|  | auditlog 		/var/log/openldap/auditlog.log | ||||||
|  | 
 | ||||||
|  | moduleload 		syncprov | ||||||
|  | {% endif %} | ||||||
|  | 
 | ||||||
|  | # TODO FAIRE LES CERTIFICATS | ||||||
|  | # TLS Certificates | ||||||
|  | #TLSCipherSuite HIGH:MEDIUM:-SSLv2:-SSLv3 | ||||||
|  | #TLSCACertificateFile /etc/ssl/certs/ServENS.crt | ||||||
|  | #TLSCertificateFile /etc/ldap/ldap.pem | ||||||
|  | #TLSCertificateKeyFile /etc/ldap/ldap.key | ||||||
|  | 
 | ||||||
|  | # The maximum number of entries that is returned for a search operation | ||||||
|  | sizelimit 500 | ||||||
|  | 
 | ||||||
|  | # The tool-threads parameter sets the actual amount of cpu's that is used | ||||||
|  | # for indexing. | ||||||
|  | tool-threads 1 | ||||||
|  | 
 | ||||||
|  | ####################################################################### | ||||||
|  | # Specific Backend Directives for mdb: | ||||||
|  | # Backend specific directives apply to this backend until another | ||||||
|  | # 'backend' directive occurs | ||||||
|  | backend         mdb | ||||||
|  | 
 | ||||||
|  | ####################################################################### | ||||||
|  | # Specific Backend Directives for 'other': | ||||||
|  | # Backend specific directives apply to this backend until another | ||||||
|  | # 'backend' directive occurs | ||||||
|  | #backend                <other> | ||||||
|  | 
 | ||||||
|  | ####################################################################### | ||||||
|  | # Specific Directives for database #1, of type mdb: | ||||||
|  | # Database specific directives apply to this databasse until another | ||||||
|  | # 'database' directive occurs | ||||||
|  | database        mdb | ||||||
|  | 
 | ||||||
|  | # The base of your directory in database #1 | ||||||
|  | suffix          "dc=crans,dc=org" | ||||||
|  | 
 | ||||||
|  | # rootdn directive for specifying a superuser on the database. This is needed | ||||||
|  | # for syncrepl. | ||||||
|  | rootdn          "cn=admin,dc=crans,dc=org" | ||||||
|  | 
 | ||||||
|  | # Where the database file are physically stored for database #1 | ||||||
|  | directory       "/var/lib/ldap" | ||||||
|  | 
 | ||||||
|  | # The dbconfig settings are used to generate a DB_CONFIG file the first | ||||||
|  | # time slapd starts.  They do NOT override existing an existing DB_CONFIG | ||||||
|  | # file.  You should therefore change these settings in DB_CONFIG directly | ||||||
|  | # or remove DB_CONFIG and restart slapd for changes to take effect. | ||||||
|  | 
 | ||||||
|  | # For the Debian package we use 2MB as default but be sure to update this | ||||||
|  | # value if you have plenty of RAM | ||||||
|  | #dbconfig set_cachesize 0 2097152 0 | ||||||
|  | 
 | ||||||
|  | # Sven Hartge reported that he had to set this value incredibly high | ||||||
|  | # to get slapd running at all. See http://bugs.debian.org/303057 for more | ||||||
|  | # information. | ||||||
|  | 
 | ||||||
|  | # Number of objects that can be locked at the same time. | ||||||
|  | #dbconfig set_lk_max_objects 1500 | ||||||
|  | # Number of locks (both requested and granted) | ||||||
|  | #dbconfig set_lk_max_locks 1500 | ||||||
|  | # Number of lockers | ||||||
|  | #dbconfig set_lk_max_lockers 1500 | ||||||
|  | 
 | ||||||
|  | # Indexing options for database #1 | ||||||
|  | index           objectClass eq | ||||||
|  | 
 | ||||||
|  | # Save the time that the entry gets modified, for database #1 | ||||||
|  | lastmod         on | ||||||
|  | 
 | ||||||
|  | # Checkpoint the BerkeleyDB database periodically in case of system | ||||||
|  | # failure and to speed slapd shutdown. | ||||||
|  | checkpoint      512 30 | ||||||
|  | 
 | ||||||
|  | {% if ldap.replica %} | ||||||
|  | syncrepl | ||||||
|  |         rid={{ ldap.replica_rid }} | ||||||
|  |         provider=ldaps://{{ ldap.master_ip }}:636 | ||||||
|  |         bindmethod=simple | ||||||
|  |         binddn="cn=replicator,dc=crans,dc=org" | ||||||
|  |         credentials=test1234 # TODO cranspasswords | ||||||
|  |         searchbase="dc=crans,dc=org" | ||||||
|  |         schemachecking=on | ||||||
|  |         type=refreshOnly | ||||||
|  |         interval=00:00:10:00 | ||||||
|  |         scope=sub | ||||||
|  |         tls_reqcert=allow | ||||||
|  | {% endif %} | ||||||
|  | 
 | ||||||
|  | {% if ldap.replica %} | ||||||
|  | # The userPassword by default can be changed | ||||||
|  | # by the entry owning it if they are authenticated. | ||||||
|  | # Others should not be able to see it, except the | ||||||
|  | # admin entry below | ||||||
|  | # These access lines apply to database #1 only | ||||||
|  | access to attrs=userPassword,shadowLastChange | ||||||
|  |         by anonymous auth | ||||||
|  |         by * none | ||||||
|  | 
 | ||||||
|  | # Ensure read access to the base for things like | ||||||
|  | # supportedSASLMechanisms.  Without this you may | ||||||
|  | # have problems with SASL not knowing what | ||||||
|  | # mechanisms are available and the like. | ||||||
|  | # Note that this is covered by the 'access to *' | ||||||
|  | # ACL below too but if you change that as people | ||||||
|  | # are wont to do you'll still need this if you | ||||||
|  | # want SASL (and possible other things) to work | ||||||
|  | # happily. | ||||||
|  | access to dn.base="" by * read | ||||||
|  | 
 | ||||||
|  | # The admin dn has full write access, everyone else | ||||||
|  | # can read everything. | ||||||
|  | access to * | ||||||
|  |         by * read | ||||||
|  | {% else %} | ||||||
|  | overlay syncprov | ||||||
|  | 
 | ||||||
|  | # The userPassword by default can be changed | ||||||
|  | # by the entry owning it if they are authenticated. | ||||||
|  | # Others should not be able to see it, except the | ||||||
|  | # admin entry below | ||||||
|  | # These access lines apply to database #1 only | ||||||
|  | access to attrs=userPassword,shadowLastChange | ||||||
|  |         by anonymous auth | ||||||
|  |         by self write | ||||||
|  |         by set="[cn=nounou,ou=group,dc=crans,dc=org]/memberUid & user/uid" write | ||||||
|  |         by dn="cn=replicator,dc=crans,dc=org" read | ||||||
|  |         by * none | ||||||
|  | 
 | ||||||
|  | access to attrs=loginShell,mail,telephoneNumber | ||||||
|  |         by self write | ||||||
|  |         by set="[cn=nounou,ou=group,dc=crans,dc=org]/memberUid & user/uid" write | ||||||
|  |         by dn="cn=replicator,dc=crans,dc=org" read | ||||||
|  |         by * read | ||||||
|  | 
 | ||||||
|  | # Ensure read access to the base for things like | ||||||
|  | # supportedSASLMechanisms.  Without this you may | ||||||
|  | # have problems with SASL not knowing what | ||||||
|  | # mechanisms are available and the like. | ||||||
|  | # Note that this is covered by the 'access to *' | ||||||
|  | # ACL below too but if you change that as people | ||||||
|  | # are wont to do you'll still need this if you | ||||||
|  | # want SASL (and possible other things) to work | ||||||
|  | # happily. | ||||||
|  | access to dn.base="" by * read | ||||||
|  | 
 | ||||||
|  | # The admin dn has full write access, everyone else | ||||||
|  | # can read everything. | ||||||
|  | access to * | ||||||
|  |         by set="[cn=nounou,ou=group,dc=crans,dc=org]/memberUid & user/uid" write | ||||||
|  |         by dn="cn=replicator,dc=crans,dc=org" read | ||||||
|  |         by * read | ||||||
|  | {% endif %} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ####################################################################### | ||||||
|  | # Specific Directives for database #2, of type 'other' (can be mdb too): | ||||||
|  | # Database specific directives apply to this databasse until another | ||||||
|  | # 'database' directive occurs | ||||||
|  | #database        <other> | ||||||
|  | 
 | ||||||
|  | # The base of your directory for database #2 | ||||||
|  | #suffix         "dc=debian,dc=org" | ||||||
		Loading…
	
		Reference in New Issue