1. docker部署phpIPAM

docker环境默认已经部署完成

IPAM介绍

IP地址管理(IPAM,IP Address Management的缩写)工具能够帮助网络工程师快速识别企业网络中某个IP地址当前是否可用。

IPAM工具能定期扫描子网,提供子网中IP地址的可用性状态。通过SNMP抓取设备的MAC、ARP等相关信息

传统网管软件Solarwinds Orion、ManageEngine OpUtils(卓豪)都有成熟IPAM模块,而且能与网管平台更好结合,实现IP地址与网管采集信息的关联与展示,但收费不菲,需要在Windows Server系统上部署,系统资源占用较大,如果仅仅只是为IPAM功能,部署、维护一套并不合算。我部署一套IPAM仅想解决Excel记录IP地址不灵活,希望能实现IP、MAC、使用人、部门、使用地点等这类信息的记录,自动化扫描(监控)地址使用情况,同时不希望占用太大系统资源(基于Linux系统),全部容器化部署(包括IPAM和扫描代理)。

1.1 docker-compose文件编写

在对应的目录下编写docker-compose.yml文件

version: '3'

services:
  phpipam-web:
    privileged: true
    image: phpipam/phpipam-www:latest
    ports:
      - "80:80"
    environment:
      - TZ=Asia/Shanghai
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=123456
      - IPAM_DATABASE_WEBHOST=%
    restart: unless-stopped
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    privileged: true
    image: phpipam/phpipam-cron:latest
    environment:
      - TZ=Asia/Shanghai
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=123456
      - SCAN_INTERVAL=1h
    restart: unless-stopped
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    privileged: true
    image: mariadb:10.3.37
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    restart: unless-stopped
    command:
      - mysqld
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - phpipam-db-data:/var/lib/mysql

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

1.2 创建并启动

ubuntu安装docker-compose命令:sudo apt install docker-compose

sudo docker-compose -p phpipam up -d

image.png

1.3 第一次访问配置

1.3.1 选择 New phpipam installation

三个选项新的 phpipam 安装、迁移 phpipam 安装和工作安装,新的 phpIPAM 安装时,选择 New phpipam installation

直接访问ip与端口,首次访问出现安装配置界面 image.png

1.3.2数据库安装

分为自动数据库安装、MySQL 导入说明、手动数据库安装,选择自动数据库安装选项 image.png

1.3.3数据库用户以及密码配置

输入数据库用户名、密码、主机、数据库名称 选择 Install phpipam database 选项

docker-compose 设置的用户名\:root 密码123456,根据你的配置文件来填写 image.png

1.3.4提示数据库安装成功,选择 Continue 继续安装

image.png

1.3.5设置 Web 界面的管理员用户

设置 Web 界面的管理员用户、密码、phpIPAM 界面顶部的标题以及 phpIPAM 安装的 URL,选择Save settings 选项\ 用户名默认是admin,密码设置为1qaz\@WSX\ image.png

1.3.6选择 Proceed to login 跳转到 phpIPAM 登录界面

image.png

1.3.7输入admin 用户密码登录(输入你刚刚设置的admin 和密码)

image.png

1.3.8设置账户中文显示,选择Administrator--Users

image.png

1.3.9选择Admin 用户,点击编辑按钮

image.png

1.3.10注销当前登录会话重新登录,界面中文显示

image.png

镜像压缩包存储位置以及使用

将镜像导出的tar包,保存在基础镜像:centos:7.9.2009下的/root

保存地址:docker仓库地址

# 阿里云
registry.cn-beijing.aliyuncs.com/app_demo/app:centos7.9.2009-ipam1.5.3

# 华为云
swr.cn-north-4.myhuaweicloud.com/app_demo/centos7.9.2009/ipam:centos7.9.2009-ipam1.5.3

# 腾讯云
ccr.ccs.tencentyun.com/app_demo/app:centos7.9.2009-ipam1.5.3

\:::warning\

使用将tar包复制到宿主机的docker环境中

使用sava保存的,使用load导入才行

当初:docker save -o ipam.tar phpipam/phpipam-cron\:latest phpipam/phpipam-www\:latest mariadb:10.3.37

导入:docker load -i ipam.tar

将docker-compose.yml的内容复制进去

启动:docker-compose -p ipam up -d

\:::

机柜中文乱码问题

image.png

解决:上传中文字体到服务器对应php字体目录并修改php代码

由于是docker部署,所以进容器中上传并修改,进入的是phpipam/phpipam-www\:latest容器

docker exec -it phpipam_phpipam-web_1 sh

搜索字体

找到“MesloLGS-Regular.ttf”字体位置就能知道php字体路径了

find / -name MesloLGS-Regular.ttf
/phpipam/css/fonts/MesloLGS-Regular.ttf
# 将对应的字体上传到/phpipam/css/fonts,并删除原来的名字,将新字体重新命名为原来的名字,就可以了
# 无需重启

image.png

怎么把文件传到Docker里

方法一:使用docker cp命令

docker cp命令可以将本地主机上的文件或目录复制到正在运行的Docker容器中。它的语法如下:

docker cp [OPTIONS] SOURCE_PATH CONTAINER:DEST_PATH

其中,SOURCE_PATH为本地主机上的文件或目录路径,CONTAINER为Docker容器的名称或ID,DEST_PATH为目标路径。以下是使用docker cp命令将文件传输到Docker容器的示例:

# 将本地文件复制到Docker容器中
docker cp /path/to/local/file.txt container_name:/path/to/dest/file.txt

# 将本地目录复制到Docker容器中
docker cp /path/to/local/directory container_name:/path/to/dest/directory

通过这种方式,可以将文件或目录从本地主机复制到正在运行的Docker容器中。

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2024-03-22 11:02:04

results matching ""

    No results matching ""