当前位置: 首页 > 云计算 > 使用Docker快速部署phpIPAM环境

使用Docker快速部署phpIPAM环境

云计算 0条评论 2023-9-16 1,487 views

在企业运维管理中,管理IP地址通常是一项挑战,有的采用Excel管理、有的用在线共享文档管理,这两个管理方式都在解决2个问题:1)记录IP地址信息;2)多人协作;今天介绍如何安装和使用开源的IP地址管理工具—“phpIPAM”,并在文章介绍采用“Docker”部署的过程,与之前的源码部署相比,更加简单和快速。

phpIPAM概述

phpIPAM是一个开源 Web IP 地址管理应用程序 (IPAM)。其目标是提供轻便、现代且有用的 IP 地址管理。它是基于 php 的应用程序,具有 MySQL 数据库后端,使用 jQuery 库、ajax 和 HTML5/CSS3 功能,其功能清单如下:

  • IPv4/IPv6 IP 地址管理;
  • 部分/子网管理,VLAN管理、VRF管理;
  • 自动显示子网的可用空间;
  • 可视化子网展示;
  • 自动子网扫描/IP状态检查;
  • PowerDNS 集成;
  • 网络地址转换支持;
  • 机架管理;
  • 域认证(AD、LDAP、Radius);
  • 设备/设备类型管理;
  • IP请求模块;
  • IPv4/IPv6计算器;
  • 自定义字段支持;
  • REST Api;

服务器规划

服务器名称IP地址硬件配置用途备注
mgmt-ipam192.168.10.1002C/4G/80GPHPIPAM主服务器

环境及软件版本信息

Docker镜像版本备注
phpipam-wwwlatest最新的生产版本
phpipam-cronlatest用于执行网络发现
mariadblatest数据库
Rocky Linux8.8操作系统环境

安装基础环境

为安装docker compose环境,需要先删除podman和runc两个包。

sudo dnf remove -y podman runc

添加Docker-ce的repo。

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装并启动docker-ce和docker-compose。

sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo systemctl --now enable docker

如果以非root用户运行,需要添加用户到docker组,以实现非用户用户下直接运行“docker”命令(Without sudo)。

注意:这里的“ops”是非用户的用户。

sudo usermod -aG docker ops

使用docker compose运行phpIPAM

完成Docker环境准备后,下面准备phpIPAM的Docker-Compose配置文件。此配置文件来自官方的示例,请根据需要修改。

注意1:一定要修改数据库的密码(my_secret_phpipam_pass)。

注意2:也可以修改配置,使用外部的数据库,即数据库采用虚拟机部署。

例如:我们在/usr/local/phpIPAM文件夹下创建"docker-compose.yml"文件,内容如下:

# WARNING: Replace the example passwords with secure secrets.
# WARNING: 'my_secret_phpipam_pass' and 'my_secret_mysql_root_pass'

version: '3'

services:
  phpipam-web:
    image: phpipam/phpipam-www:latest
    ports:
      - "80:80"
    environment:
      - TZ=Asia/Shanghai
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - IPAM_DATABASE_WEBHOST=%
    restart: unless-stopped
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
      - phpipam-ca:/usr/local/share/ca-certificates:ro
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    image: phpipam/phpipam-cron:latest
    environment:
      - TZ=Asia/Shanghai
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - SCAN_INTERVAL=1h
    restart: unless-stopped
    volumes:
      - phpipam-ca:/usr/local/share/ca-certificates:ro
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
    restart: unless-stopped
    volumes:
      - phpipam-db-data:/var/lib/mysql

volumes:
  phpipam-db-data:
  phpipam-logo:
  phpipam-ca:

使用“docker-compose”命令启用phpIPAM。

cd /usr/local/phpIPAM
docker compose up -d

最后,再添加防火墙的80/443端口,允许外部访问。

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

使用Web初始化PHPIPAM系统

浏览器访问http://,选择“New phpipam installation”,进行初始化。

选择数据库初始化方式,此处选择“Automatic database installation”,自动化配置数据库。

输入数据库的root账户和密码(my_secret_phpipam_pass),点击“Install Phpipam database”。

配置默认本地管理员密码,用户名为“Admin”,配置网站名称和站点访问URL(例如:使用域名访问)。

部署完成后,使用Admin用户登录系统。

点击右上角的“用户”,可以配置页面语言为简体中文。

PHPIPAM支持多种认证方式,AD、LDAP、SAML2(单点登录),根据实际环境选择,这次以集成AD认证为示例。

输入AD的连接信息后,点击“添加”。

进入左侧的“服务器管理”->“用户”,添加AD认证用户到PHPIPAM中,点击右侧的“搜索”按钮,搜索AD中的用户,并添加,选择用户的角色“管理员”或“普通用户”,最后,点击“添加按钮”。

最终,我们成功使用AD用户登录到PHPIPAM系统。

对phpIPAM数据库进行备份

修改phpipam目录权限,以允许写入备份文件(使用root用户可以跳过)。

chown -R ops /usr/local/phpipam

执行phpIPAM数据库备份。

docker compose exec phpipam-mariadb sh -c 'mariadb-dump -uroot -p${MYSQL_ROOT_PASSWORD} --databases phpipam' > phpipamdb-dump-$(date +%F_%H-%M-%S).sql

对phpIPAM数据库进行恢复

建议先停止phpipam-web容器,再进行恢复。

docker compse stop phpipam-web

执行phpIPAM数据库恢复。

docker compose exec -T phpipam-mariadb sh -c 'mariadb -uroot -pmy_secret_phpipam_pass' < phpipamdb-dump-2023-09-16_17-17-51.sql

启动phpipam-web容器。

docker compse up -d

完成

至此,我们完成了通过Docker运行phpIPAM的平台,具体使用方法,请参考官网指导文档。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注