OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装

这篇具有很好参考价值的文章主要介绍了OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、OpenLdap介绍

二、PhpLdapAdmin介绍

三、使用docker-compose进行安装

1. docker-compose.yml

2. grafana配置文件

3. provisioning

四、安装openldap、phpldapadmin、grafana

五、配置OpenLDAP

1. 登陆PhpLdapAdmin web管理

2. 需要注意的细节

内容介绍参考:


一、OpenLdap介绍

  OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。它本身是一个小型文件数据库。Ldap是树形结构的,能够通过server + client(服务端+客户端)的方式。进行统一的用户(账号)管理。

举个栗子:如果有100台机器,一个用户需要登录这100台机器。传统的做法就是每台机器中,都需要创建登录账号,操作100次。想想都会疯掉。如果使用ldap来管理,就只需要在ldap服务中创建一次就可以了。账号清理也是类似的道理。我们通过控制一台机器登录账号,即可控制所有机器登录账号。是不是方便很多呢?

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装,运维软件技术,grafana,docker,容器

ldap架构图

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装,运维软件技术,grafana,docker,容器

二、PhpLdapAdmin介绍

   phpLDAPadmin(又称PLA)是一个基于Web的LDAP客户端。它提供了方便,随时随地可访问的,多语言管理为LDAP服务器。其层次树状浏览器和先进的搜索功能,使其直观地浏览和管理LDAP目录。既然是一个Web应用程序,此浏览器的LDAP工作在许多平台上,让您的LDAP服务器轻松地从任何位置管理。

   简单来说就是openldap的一个web管理页面,通过点点的方式代替复杂的命令

三、使用docker-compose进行安装

说明:Grafana只是作为对接LDAP的一个应用,可以替换成其它应用例如jenkins、gitlab等等...

说了不少废话了,该上干货了。下面是应用于生产环境中的配置,由于一些隐私不得进行脱敏~

# 安装目录结构如下

root@10-50-183-112:/home/sunwenbo# tree /home/sunwenbo/
/home/sunwenbo/
├── docker-compose.yml
└── grafana
    ├── grafana.ini
    ├── ldap.toml
    └── provisioning
        ├── access-control
        ├── alerting
        ├── dashboards
        ├── datasources
        ├── notifiers
        └── plugins

8 directories, 3 files

1. docker-compose.yml

完整的内容如下,替换到yml中的xxx即可

version: '3'

services:
  openldap:
    image: osixia/openldap:latest
    container_name: openldap-server
    hostname: ldap.xxx.cn
    restart: always
    environment:
      LDAP_LOG_LEVEL: "256"
      LDAP_ORGANISATION: "xxx Company"
      LDAP_DOMAIN: "xxx.cn"
      LDAP_ADMIN_PASSWORD: 'xxxxxxx'
      LDAP_BASE_DN: "dc=xxx,dc=cn"
      LDAP_TLS: "true"
      LDAP_READONLY_USER: "false"
      LDAP_BACKEND: "mdb"
      LDAP_TLS_CRT_FILENAME: "ldap.crt"
      LDAP_TLS_KEY_FILENAME: "ldap.key"
      LDAP_TLS_DH_PARAM_FILENAME: "dhparam.pem"
      LDAP_TLS_CA_CRT_FILENAME: "ca.crt"
      LDAP_TLS_ENFORCE: "false"
      LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"
      LDAP_TLS_VERIFY_CLIENT: "demand"
      LDAP_REPLICATION: "false"
      KEEP_EXISTING_CONFIG: "false"
      LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"
      LDAP_SSL_HELPER_PREFIX: "ldap"
    tty: true
    stdin_open: true
    ports:
      - 389:389
      - 636:636
    volumes:
      - /data/slapd/database/:/var/lib/ldap/
      - /data/slapd/config/:/etc/ldap/slapd.d/
    networks:
      - openldap-net
  phpldapadmin:
    image: osixia/phpldapadmin:latest
    hostname: phpldapadmin-service
    restart: always
    container_name: phpldapadmin
    privileged: true
    environment:
      PHPLDAPADMIN_HTTPS: "false"
      PHPLDAPADMIN_LDAP_HOSTS: "ldap.xxx.cn"
    ports:
      - 80:80
      - 443:443
    depends_on:
      - openldap
    networks:
      - openldap-net
  grafana:
    image: grafana/grafana:latest
    hostname: grafana
    restart: always
    container_name: grafana
    privileged: true
    ports:
      - 3000:3000
    volumes:
      - /home/sunwenbo/grafana/:/etc/grafana
    depends_on:
      - openldap
    networks:
      - openldap-net
networks:
  openldap-net:
    driver: bridge

2. grafana配置文件

grafana.ini 只修改以下内容即可

#################################### Auth LDAP ##########################
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml                                                                  
allow_sign_up = true             
# prevent synchronizing ldap users organization roles
# skip_org_role_sync = false                                                     

# LDAP background sync (Enterprise only)
# At 1 am every day
sync_cron = "0 1 * * *"
active_sync_enabled = true   

ldap.toml 配置如下,xxx替换为实际的dc

[[servers]]
host = "10.50.183.112"
port = 389
ssl_skip_verify = false

bind_dn = "cn=admin,dc=xxx,dc=cn"
bind_password = 'xxxxxxx'

search_filter = "(cn=%s)"

search_base_dns = ["ou=users,dc=xxx,dc=cn"]

group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
group_search_base_dns = ["ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"]
group_search_filter_user_attribute = "uid"

[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email =  "email"

[[servers.group_mappings]]
group_dn = "cn=Grafana-admins,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Admin"

[[servers.group_mappings]]
group_dn = "cn=Grafana-editors,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Editor"

[[servers.group_mappings]]
# group_dn = "*"  #修改为*,可以认为所有LDAP用户都是viewer角色,根据实际需求进行配置
group_dn = "cn=Grafana-viewers,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Viewer"

3. provisioning

这个目录不做任何修改只是单纯的挂载出来了。

四、安装openldap、phpldapadmin、grafana

一条命令搞定

root@10-50-183-112:/home/sunwenbo# docker-compose  up -d 
[+] Running 4/4
 ✔ Network sunwenbo_openldap-net  Created                                                                                                                                                                                             0.0s 
 ✔ Container openldap-server      Started                                                                                                                                                                                             0.2s 
 ✔ Container phpldapadmin         Started                                                                                                                                                                                             0.6s 
 ✔ Container grafana              Started                                                                                                                                                                                             0.6s 
root@10-50-183-112:/home/sunwenbo# docker-compose ps 
NAME                IMAGE                        COMMAND                 SERVICE             CREATED             STATUS              PORTS
grafana             grafana/grafana:latest       "/run.sh"               grafana             16 seconds ago      Up 14 seconds       0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
openldap-server     osixia/openldap:latest       "/container/tool/run"   openldap            16 seconds ago      Up 15 seconds       0.0.0.0:389->389/tcp, :::389->389/tcp, 0.0.0.0:636->636/tcp, :::636->636/tcp
phpldapadmin        osixia/phpldapadmin:latest   "/container/tool/run"   phpldapadmin        16 seconds ago      Up 14 seconds       0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp

检查端口是否监听

root@10-50-183-112:/home/sunwenbo# netstat  -nlpt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      323033/sshd: /usr/s 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      377291/docker-proxy 
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      377156/docker-proxy 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      377266/docker-proxy 
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      377137/docker-proxy 
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      377248/docker-proxy 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      591/systemd-resolve 
tcp6       0      0 :::22                   :::*                    LISTEN      323033/sshd: /usr/s 
tcp6       0      0 :::80                   :::*                    LISTEN      377299/docker-proxy 
tcp6       0      0 :::389                  :::*                    LISTEN      377162/docker-proxy 
tcp6       0      0 :::443                  :::*                    LISTEN      377273/docker-proxy 
tcp6       0      0 :::636                  :::*                    LISTEN      377144/docker-proxy 
tcp6       0      0 :::3000                 :::*                    LISTEN      377253/docker-proxy 

五、配置OpenLDAP

1. 登陆PhpLdapAdmin web管理

目录结构如下

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装,运维软件技术,grafana,docker,容器

2. 需要注意的细节

OU:创建选择为Generic: Organisational Unit

CN:创建选择为Generic: Posix Group

将名字为test的人员添加到CN

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装,运维软件技术,grafana,docker,容器

登陆grafana验证

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装,运维软件技术,grafana,docker,容器

有不明白的地方欢迎随时找我~

查询用户信息
ldapsearch -x -H ldap://10.50.183.112:389 -D "cn=admin,dc=bigmodel,dc=cn" -w "StrongAdminPassw0rd" -b "dc=bigmodel,dc=cn" "(cn=sunwenbo)"

查询组信息
ldapsearch -x -H ldap://10.50.183.112:389 -D "cn=admin,dc=bigmodel,dc=cn" -w "StrongAdminPassw0rd" -b "dc=bigmodel,dc=cn" "(&(objectClass=organizationalUnit)(ou=groups)"

内容介绍参考:

小白篇(十九):openLdap介绍(又名:Ldap介绍)_belialxing的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-701878.html

到了这里,关于OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-compose部署redis

    docker-compose是什么? Docker Compose是一个用于 定义和运行多个容器Docker应用程序的工具 。它允许您定义一组容器,这些容器组成一个完整的应用程序,且这些容器之间可以互相通信。通过Docker Compose,您可以使用一个单独的文件来定义应用程序的 服务、网络、卷等元素,并且可

    2024年02月12日
    浏览(25)
  • 四十六、docker-compose部署

    一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器,快速的部署项目。 使用docker-compose部署主要是编写docker-compose.yml脚本。 不论是Dockerfile还是docker-compose.yml脚本的编写都依赖上下文,所以需要明确部署文

    2023年04月19日
    浏览(30)
  • docker-compose部署Jenkins

    1、docker安装 1.1 配置docker-yum源 yum -y install yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 1.2 查看可选择的docker-ce版本 yum list docker-ce --showduplicates|sort -r 1.3安装指定版本docker yum -y install docker-ce-19.03.9 ps:如果安装docker-ce-19.03.9报错: package docker

    2024年02月02日
    浏览(52)
  • ES-部署(docker-compose)

    参考资料 http://www.baiyp.ren/elasticsearch-集群部署.html 说明 一个服务器,三个es服务节点,一个kibana容器,一个elasticsearch-head服务节点。 es版本为7.17.5。 服务器地址:192.168.127.142。 elasticsearch 不建议使用docker,容器部署不适合有状态服务。这里是为了学习方便。 安装流程 安装

    2024年02月08日
    浏览(33)
  • docker-compose部署milvus

    上一篇介绍了使用kubernetes来部署milvus,这篇介绍下使用docker-compose来部署milvus。 下载docker-compose 下载最新版的 docker-compose-linux-x86_64 在服务器上使用 安装docker-compose 将docker拷贝到/usr/local/bin目录下,重命名为 docker-compose 默认下载下来的文件只有读写权限,使用 chmod +x docker-

    2024年02月13日
    浏览(37)
  • docker-compose部署mysql

    docker-compose 虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一个个的启动是很麻烦的。所以如果可以事先将\\\"启动脚本\\\"写好的话,之后就算虚拟机

    2024年02月02日
    浏览(33)
  • Docker-Compose编排与部署

    目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境          Docker Compose 的前身是 Fig,它是一个 定义及运行多个 Docker 容器的工具 。可以使用 YAML 文件来配置应用程序的服

    2024年02月14日
    浏览(35)
  • 使用docker、docker-compose部署微服务

    这里已经在docker安装并启动好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。 注意如果配置文件中有Redis、MySQL、nacos这些的连接信息,需要把IP地址改为服务器的公网地址或者内网地址,不会连接不到。 我这里以微服务版若依的网关服务为例,上传到指定目录。 官方文档

    2024年02月10日
    浏览(31)
  • 使用 docker-compose 部署 Jenkins

    注:我是在虚拟机(Ubuntu)上部署了 docker-compose,然后才使用 docker-compose 部署 Jenkins! 关于如何在 Ubuntu 部署 docker-compose,可以看我其它的文章。 docker_jenkins_compose 目录下创建 docker-compose.yml 文件: 进入 docker-compose.yml 文件: 按下键盘上的 i ,进入可以编写的模式。 将下面的

    2024年02月17日
    浏览(30)
  • docker-compose 部署flink集群

    详见 https://blog.csdn.net/qq_42267173/article/details/124687804 https://blog.csdn.net/m0_72838865/article/details/126421685 https://www.cnblogs.com/cw2blog/p/16689584.html 容器启停相关的 启动报错 解决参考:https://blog.csdn.net/xiojing825/article/details/79494408 docker-compose up -d 后台运行,不输出日志到窗口 想web访问,但

    2024年02月05日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包