CentOS 7 部署 GLPI 系统及集成方案

一、系统环境准备

1. 安装必要依赖

更新系统

sudo yum update -y

安装EPEL仓库

sudo yum install -y epel-release

安装必要组件

sudo yum install -y httpd mariadb-server mariadb php php-mysql php-gd php-ldap php-json php-xml php-mbstring php-zip php-curl php-bcmath php-imap php-apcu wget unzip

2. 配置防火墙

开启防火墙服务

sudo systemctl start firewalld

sudo systemctl enable firewalld

开放HTTP和HTTPS端口

sudo firewall-cmd --permanent --add-service=http

sudo firewall-cmd --permanent --add-service=https

sudo firewall-cmd --reload

二、数据库配置

1. 启动MariaDB并设置开机启动

sudo systemctl start mariadb

sudo systemctl enable mariadb

2. 安全配置MariaDB

sudo mysql_secure_installation
(按照提示设置root密码并完成安全配置)

3. 创建GLPI数据库

mysql -u root -p -e "CREATE DATABASE glpidb CHARACTER SET utf8 COLLATE utf8_unicode_ci;"

mysql -u root -p -e "CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'YourStrongPassword123';"

mysql -u root -p -e "GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost';"

mysql -u root -p -e "FLUSH PRIVILEGES;"

三、安装GLPI

1. 下载并解压GLPI

cd /var/www/html

sudo wget https://github.com/glpi-project/glpi/releases/download/10.0.7/glpi-10.0.7.tgz

sudo tar -xvzf glpi-10.0.7.tgz

sudo mv glpi glpi-web

sudo chown -R apache:apache /var/www/html/glpi-web

sudo chmod -R 755 /var/www/html/glpi-web

2. 配置Apache

sudo tee /etc/httpd/conf.d/glpi.conf <<EOF

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /var/www/html/glpi-web

ServerName glpi.example.com

<Directory /var/www/html/glpi-web>

Options FollowSymLinks

AllowOverride All

Require all granted

</Directory>

ErrorLog /var/log/httpd/glpi_error.log

CustomLog /var/log/httpd/glpi_access.log combined

</VirtualHost>

EOF

3. 调整PHP配置

sudo sed -i 's/^memory_limit =.*/memory_limit = 256M/' /etc/php.ini

sudo sed -i 's/^upload_max_filesize =.*/upload_max_filesize = 64M/' /etc/php.ini

sudo sed -i 's/^post_max_size =.*/post_max_size = 64M/' /etc/php.ini

sudo sed -i 's/^max_execution_time =.*/max_execution_time = 600/' /etc/php.ini

4. 重启服务

sudo systemctl restart httpd

sudo systemctl enable httpd

四、GLPI初始化安装

  1. 通过浏览器访问 http://your-server-ip/glpi-web

  2. 按照向导完成安装,使用之前创建的数据库信息

  3. 完成安装后删除安装目录:sudo rm -rf /var/www/html/glpi-web/install/install.php

五、系统集成配置

1. 与CMDB集成

GLPI本身就是一个CMDB系统,但可以与其他CMDB系统集成:

安装FusionInventory插件实现自动发现

cd /var/www/html/glpi-web/plugins

sudo wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi10.0%2B1.1/fusioninventory-10.0+1.1.tar.bz2

sudo tar -xjf fusioninventory-10.0+1.1.tar.bz2

sudo chown -R apache:apache /var/www/html/glpi-web/plugins/fusioninventory

然后在GLPI界面中激活FusionInventory插件并配置自动发现任务。

2. 与服务台系统集成

GLPI内置服务台功能,但可以与外部服务台集成:

安装REST API插件

cd /var/www/html/glpi-web/plugins

sudo wget https://github.com/pluginsGLPI/webservices/releases/download/2.7.0/glpi-webservices-2.7.0.tar.bz2

sudo tar -xjf glpi-webservices-2.7.0.tar.bz2

sudo chown -R apache:apache /var/www/html/glpi-web/plugins/webservices

在GLPI界面中激活Webservices插件并配置API访问权限。

六、一键安装Python脚本

创建glpi_installer.py文件:

#!/usr/bin/env python3

import os

import subprocess

import getpass

def run_command(cmd):

process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

stdout, stderr = process.communicate()

if process.returncode != 0:

print(f"Error executing: {cmd}")

print(stderr.decode())

exit(1)

return stdout.decode()

def install_glpi():

print("=== 开始安装GLPI ===")

安装依赖

print("安装系统依赖...")

run_command("yum update -y")

run_command("yum install -y epel-release")

run_command("yum install -y httpd mariadb-server mariadb php php-mysql php-gd php-ldap php-json php-xml php-mbstring php-zip php-curl php-bcmath php-imap php-apcu wget unzip")

配置防火墙

print("配置防火墙...")

run_command("systemctl start firewalld")

run_command("systemctl enable firewalld")

run_command("firewall-cmd --permanent --add-service=http")

run_command("firewall-cmd --permanent --add-service=https")

run_command("firewall-cmd --reload")

配置MariaDB

print("配置数据库...")

run_command("systemctl start mariadb")

run_command("systemctl enable mariadb")

安全配置数据库

db_password = getpass.getpass("设置MariaDB root密码: ")

run_command(f"mysql -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY '{db_password}';\"")

run_command("mysql -e \"DELETE FROM mysql.user WHERE User='';\"")

run_command("mysql -e \"DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\"")

run_command("mysql -e \"DROP DATABASE IF EXISTS test;\"")

run_command("mysql -e \"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';\"")

run_command("mysql -e \"FLUSH PRIVILEGES;\"")

创建GLPI数据库

glpi_db = input("输入GLPI数据库名 (默认glpidb): ") or "glpidb"

glpi_user = input("输入GLPI数据库用户 (默认glpiuser): ") or "glpiuser"

glpi_pass = getpass.getpass("输入GLPI数据库密码: ")

run_command(f"mysql -u root -p{db_password} -e \"CREATE DATABASE {glpi_db} CHARACTER SET utf8 COLLATE utf8_unicode_ci;\"")

run_command(f"mysql -u root -p{db_password} -e \"CREATE USER '{glpi_user}'@'localhost' IDENTIFIED BY '{glpi_pass}';\"")

run_command(f"mysql -u root -p{db_password} -e \"GRANT ALL PRIVILEGES ON {glpi_db}.* TO '{glpi_user}'@'localhost';\"")

run_command(f"mysql -u root -p{db_password} -e \"FLUSH PRIVILEGES;\"")

下载安装GLPI

print("下载安装GLPI...")

run_command("cd /var/www/html && wget https://github.com/glpi-project/glpi/releases/download/10.0.7/glpi-10.0.7.tgz")

run_command("cd /var/www/html && tar -xvzf glpi-10.0.7.tgz")

run_command("mv /var/www/html/glpi /var/www/html/glpi-web")

run_command("chown -R apache:apache /var/www/html/glpi-web")

run_command("chmod -R 755 /var/www/html/glpi-web")

配置Apache

print("配置Apache...")

server_name = input("输入服务器域名 (如glpi.example.com): ")

with open("/etc/httpd/conf.d/glpi.conf", "w") as f:

f.write(f"""<VirtualHost *:80>

ServerAdmin admin@{server_name}

DocumentRoot /var/www/html/glpi-web

ServerName {server_name}

<Directory /var/www/html/glpi-web>

Options FollowSymLinks

AllowOverride All

Require all granted

</Directory>

ErrorLog /var/log/httpd/glpi_error.log

CustomLog /var/log/httpd/glpi_access.log combined

</VirtualHost>""")

调整PHP配置

print("调整PHP配置...")

run_command("sed -i 's/^memory_limit =.*/memory_limit = 256M/' /etc/php.ini")

run_command("sed -i 's/^upload_max_filesize =.*/upload_max_filesize = 64M/' /etc/php.ini")

run_command("sed -i 's/^post_max_size =.*/post_max_size = 64M/' /etc/php.ini")

run_command("sed -i 's/^max_execution_time =.*/max_execution_time = 600/' /etc/php.ini")

重启服务

print("重启服务...")

run_command("systemctl restart httpd")

run_command("systemctl enable httpd")

print("\n=== GLPI安装完成 ===")

print(f"请通过浏览器访问: http://{server_name}/glpi-web 完成后续配置")

print(f"数据库信息:")

print(f" 数据库名: {glpi_db}")

print(f" 用户名: {glpi_user}")

print(f" 密码: {glpi_pass}")

if name == "main":

install_glpi()

使用说明:

  1. 将上述脚本保存为glpi_installer.py

  2. 添加执行权限:chmod +x glpi_installer.py

  3. 以root用户运行:sudo ./glpi_installer.py

  4. 按照提示输入必要信息

七、后续配置建议

  1. 定期备份:设置GLPI数据和数据库的自动备份

  2. 安全加固:配置HTTPS、定期更新系统和GLPI

  3. 监控:设置系统监控以确保服务可用性

  4. 插件管理:根据需要安装其他GLPI插件扩展功能

此部署方案提供了完整的GLPI安装流程,包括与CMDB和服务台系统的集成基础。根据实际需求,可能需要进一步配置自动发现规则、API集成细节等。

相关推荐
北极的冰箱6 分钟前
自动化运行后BeautifulReport内容为空
运维·python·测试工具·自动化
陈奕昆17 分钟前
第6课:分布式多智能体系统架构
分布式·python·系统架构·mcp
肾透侧视攻城狮43 分钟前
深入浅出一下Python函数的核心概念与进阶应用
开发语言·python·map·filter·闭包·reduce·py偏函数
Kita~Ikuyo1 小时前
基础数学:图论与信息论
python·算法·llm·图论
hope_wisdom1 小时前
Linux系统编程之虚拟内存
linux·虚拟内存·linux编程·缺页中断
CIAS1 小时前
Linux vagrant 导入Centos到virtualbox
linux·vagrant·virtualbox
___波子 Pro Max.1 小时前
Android envsetup与Python venv使用指南
android·python
用户27784491049932 小时前
Python智能分析美元兑人民币汇率:捕捉交易信号与策略建议
python·掘金·金石计划
小鱼啊小鱼2 小时前
【Linux】基于Exynos4412的U-Boot引导程序移植
linux
AKAMAI2 小时前
教程:在Linode平台上用TrueNAS搭建大规模存储系统
后端·云原生·云计算