官方不知道为何下架了12.3的ldap插件,唯有去github寻找一途,终不负有心人,亲测可用
https://github.com/anjia0532/zentao-ldap
我这里在k8s中进行了安装,存储基于本地,数据库用的远程的中央库,安装不赘述,贴下yaml文件吧
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  annotations:
    description: zentao管理平台
  labels:
    k8s-app: manage-zentao
  name: manage-zentao
  namespace: kube-ops
spec:
  minReadySeconds: 10
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: manage-zentao
  strategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: manage-zentao
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                - 10.88.10.90
      containers:
        name: manage-zentao
        image: easysoft/zentao:12.3.3
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: "2"
            memory: 8Gi
          requests:
            cpu: "400m"
            memory: 8Gi
        securityContext:
          privileged: false
          procMount: Default
        volumeMounts:
        - mountPath: /www/zentaopms
          name: manage-zentao-home
        - mountPath: /var/lib/mysql
          name: manage-zentao-mysql
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /data/k8s/manage-zentao-home/data/
        name: manage-zentao-home
      - hostPath:
          path: /data/k8s/manage-zentao-home/mysqldata/
        name: manage-zentao-mysql
---
apiVersion: v1
kind: Service
metadata:
  name: manage-zentao
  namespace: kube-ops
spec:
  ports:
  - name: tcp-80-80
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    k8s-app: manage-zentao
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 3600
  type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: zentao-nginx-ingress
  namespace: kube-ops
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/keep-alive: "1800"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-body-size: 5000m
    nginx.ingress.kubernetes.io/client-header-timeout: "1800"
    nginx.ingress.kubernetes.io/client-body-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
spec:
  tls:
  - hosts: 
    - zt.espnlol.com
    secretName: espnlol.com
  rules:
  - host: zt.espnlol.com
    http: 
      paths:
      - path: /
        backend:
          serviceName: manage-zentao
          servicePort: 80
剩下的初始化操作看下官方文档就好了,非常简单,写的也很清楚
https://www.zentao.net/book/zentaopmshelp/405.html
将上面的ldap插件下载下来:zentao-ldap-12.3-stable.tar.gz
放在服务器的/tmp下,解压之后为:zentao-ldap-12.3-stable,进入目录执行rsync -av ldap/module/ /data/k8s/manage-zentao-home/data/module/将文件同步进module目录,赋予权限chmod -R 777 /data/k8s/manage-zentao-home/data/module,不赋权可能会提示找不到文件哦,同步完成后进入后台,就可以看到LDAP了

进入ldap将相关配置输入即可
| 选项 | 示例值 | 
|---|---|
| LDAP服务器 | ldap://192.168.216.200:389 | 
| 协议版本 | 3 | 
| BindDN | cn=admin,dc=espnlol,dc=com | 
| BindDN 密码 | xxxxxxx | 
| BaseDN: | ou=users,dc=espnlol,dc=com | 
| Search filter | (objectClass=inetOrgperson) | 
| 账号字段 | uid | 
| EMail 字段 | |
| 姓名字段 | sn | 
输入完成,点击保存,手动同步即可把所有账号同步进来,开启ldap之后默认登录,需要在账号前加$,比如$admin