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

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *