En anterior post publique como deplegar Openldap en kubernetes. Esto es necesario para tener un directorio activo de usarios y poder centralizar la recuperacion de contrase, alta y baja de usarios y la administracion de los grupos. Ulimamente ya me ha llegado mas de un mail preguntando por la la configuracion del ldap en el lado del cliente, asi que voy a publicar como unificar el login para que los servicios de repos y de compilacion compartan usuarios y grupos desde un unico punto unificado LDAP.
Para este tutorial es necesario docker,docker-compose y una resolucion dns publica o local.
Para este ejemplo voy a usar el dominio bigdatadevops.com
Up OpenLdap
Con este docker compose ensguida lo tendemos uno en pie.
docker-compose.yml
version: '2' services: openldap: image: osixia/openldap:1.3.0 container_name: openldap environment: LDAP_ORGANISATION: "bigdatadevops" LDAP_DOMAIN: "bigdatadevops.com" LDAP_ADMIN_PASSWORD: "mypassword" tty: true stdin_open: true volumes: - /var/lib/ldap - /etc/ldap/slapd.d - /container/service/slapd/assets/certs/ ports: - "389:389" - "636:636" domainname: "bigdatadevops.com" # important: same as hostname hostname: "bigdatadevops.com" networks: - default phpldapadmin: image: osixia/phpldapadmin:latest container_name: phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: "openldap" PHPLDAPADMIN_HTTPS: "false" ports: - "8888:80" networks: - default
docker-compose up -d
Up clientes
A continuacion vamos a levantar los clientes que haran uso del LDAP para loguearse: Para este ejemplo usaremos Artifactory, Bitbucket, gitlab y Jenkins.
En todos los caso tenemos que tienen que estar iniciados y tenemos que ser admin para configurar el LDAP
Up Jenkins
docker run --name jenkins-docker -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -v /jenkins_home:/var/jenkins_home -d akaronte/jenkins-docker
Up Bitbucket
docker volume create --name bitbucketVolume
docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 akaronte/bitbucket-server-mysql
<
Up Gitlab
sudo docker run --detach --hostname bigdatadevops.com --publish 443:443 --publish 80:80 --publish 2222:22 --name gitlab --restart always --volume /gitlab/config:/etc/gitlab --volume /gitlab/logs:/var/log/gitlab --volume /gitlab/:/var/opt/gitlab gitlab/gitlab-ce:12.10.3-ce.0
Up Artifactory
docker run --name artifactory-pro -d -v artifactory5_data:/var/opt/jfrog/artifactory -p 8081:8081 akaronte/artifactory-cpp-ce
El login es «admin» y «password»
Crear grupos y usarios
Nos logueamos en http://bigdatadevops.com:8888
Vamos a crear 2 Organization Unit «ou» Users y Groups.
Despues vamos a crear un grupo POXIS necesario dado que es imprescindible que las cuentas de usario tengan 1.
Con esto ya podemos crear una cuenta de usuario default.
Le añadimos el mail.
Ahora ya tenemos un usuario.
Vamos a crear un grupo GlobalUsers, ha de ser tipo uniqueMembers y ademas del nombre tenemos que añadir un miembro, añadimos la cuenta que acabamos de crear.
Ahora ya tenemos un usario y un grupo con un usuario dentro, sin embargo algunos clientes cogen el grupo del usario por lo que tenemos que añadir el campo seeAlso de la cuenta de usuario que pertenece a estre grupo.
On pongo un video de estas acciones usando el phpldapamdin.
Configuraciones LDAP
Artifactory
Bitbucket
Gitlab
En gitlab tenemos que habilitar en el archivo de configuracion
vi gitlab.rb
gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'OpenLdap', 'host' => 'bigdatadevops.com', 'port' => 389, 'uid' => 'uid', 'encryption' => 'plain', 'verify_certificates' => false, 'bind_dn' => 'cn=admin,dc=bigdatadevops,dc=com', 'password' => 'mypassword', 'active_directory' => true, 'base' => 'ou=Users,dc=bigdatadevops,dc=com', 'group_base' => 'ou=Groups,dc=bigdatedevops,dc=com', 'admin_group' => 'globalUsers' } }
Jenkins
0 comentarios