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
(按照提示设置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 admin@example.com
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初始化安装
通过浏览器访问
http://your-server-ip/glpi-web按照向导完成安装,使用之前创建的数据库信息
完成安装后删除安装目录: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()
使用说明:
将上述脚本保存为
glpi_installer.py添加执行权限:
chmod +x glpi_installer.py以root用户运行:
sudo ./glpi_installer.py按照提示输入必要信息
七、后续配置建议
定期备份:设置GLPI数据和数据库的自动备份
安全加固:配置HTTPS、定期更新系统和GLPI
监控:设置系统监控以确保服务可用性
插件管理:根据需要安装其他GLPI插件扩展功能
此部署方案提供了完整的GLPI安装流程,包括与CMDB和服务台系统的集成基础。根据实际需求,可能需要进一步配置自动发现规则、API集成细节等。
CentOS 7 部署 GLPI 系统及集成方案的更多相关文章
- CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代 ...
- vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】
项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了: 1.跨域配置 2.axios请求封装 3.eslint配置 4.环境dev,test,pro(开 ...
- SAP+ 差旅报销集成方案的实现
跨国集团通常都会有一个财务共享中心SSC的集中处理业务部门,用于统计来自各个公司的差旅报销,而1).传统的OA审批 虽然审批流是优势存在着需要SAP数据二次录入,数据不同步等困难,2).如果终端用户都 ...
- Cobbler全自动批量安装部署Linux系统
说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...
- SSO集成方案[随笔]
看这个方案之前,先说明下为什么要加入SSO,以防对大家产生不好的影响.我们产品使用传统winform+db服务+Db存储方式开发,一群老菜帮子开发,以传统的datatble做数据传递,很多年了未有变化 ...
- Cobbler自动部署主机系统
Cobbler自动部署主机系统 简介: Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装. ...
- FineReport和泛微OA(Ecology)的单点登录集成方案
最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上.直接也有相关的文章介绍一些FineReport和泛微集成的背景.价值等,以及FineReport和OA的深度集成的方案,但是并没 ...
- 使用PHPstudy在Windows服务器下部署PHP系统
PHP网站一般运行在Apache服务器上,IIS服务器上也可以运行,但是不推荐,windows服务器上没有集成Apache跟PHP的运行环境,但是借助第三方的软件就能很好的搞定,一般这样的软件有很多, ...
- CentOS 7 部署 ASP.NET Core 应用程序
原文:CentOS 7 部署 ASP.NET Core 应用程序 看了几篇大牛写的关于 Linux 部署 ASP.NET Core 程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大 ...
- 【docker部署】基于linux的centos操作系统部署安装docker容器
一.docker介绍 容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都 ...
随机推荐
- 史上最全MySQL面试60题和答案
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 2.行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也 ...
- Spring Boot前后端分离直接访问静态页+ajax实现动态网页
Spring Boot前后端分离直接访问静态页+ajax实现动态网页. 一般java里面Spring Boot项目的静态资源resources/下面有两个文件夹和一个配置文件,分别是static/目录 ...
- 测试 【子牙-writing】 大模型
参考:姜子牙大模型系列 | 写作模型ziya-writing开源!开箱即用,快来认领专属你的写作小助手吧 封神榜:https://github.com/IDEA-CCNL/Fengshenbang-L ...
- 2025年这些实用的C#/.NET知识点你都知道吗?
前言 在这个快速发展的技术世界中,时常会有一些重要的知识点.信息或细节被忽略或遗漏.<C#/.NET/.NET Core拾遗补漏>专栏我们将探讨一些可能被忽略或遗漏的重要知识点.信息或细节 ...
- 边缘计算与MEC浅谈
本文分享自天翼云开发者社区<边缘计算与MEC浅谈>,作者:y****n 一.什么是边缘计算 边缘计算是在靠近物或数据源头的网络边缘侧,通过融合网络.计算.存储.应用核心能力的分布式开放平台 ...
- SQL注入之报错注入
SQL注入之报错注入 一.报错注入原理 报错注入的原理基于应用程序在处理数据库查询时产生的错误信息.当应用程序执行一个含有恶意SQL代码的查询时,如果查询出错(例如,由于语法错误或权限不足),数据库系 ...
- PHP变量与变量作用域
PHP变量与变量作用域 1. 变量的基本概念 在PHP中,变量用于存储各种类型的数据,如字符串.整数.浮点数.布尔值.数组和对象等.变量名以美元符号$开头,后面跟着一个或多个字符(变量名).例如: & ...
- SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
在SQL Server数据库中,统计信息更新(UPDATE STATISTICS)会被其它会话阻塞吗?统计信息更新(UPDATE STATISTICS)会引起其它会话阻塞吗?在回答这两个问题前,我们必 ...
- Project Euler 588 题解
这玩意好像甚至有递推式--不太懂 (为什么是图片?cnblogs 第一个公式没渲染成功) 时间复杂度是 \(O(4^{\deg F}\log K)\) 的. #include<bits/stdc ...
- 动态编译 Java 的神器 Liquor v1.3.10 发布
Liquor 是一个开源的轻量级 Java 动态编译器(零依赖,40KB),它可以在运行时编译 Java 字符串代码片段.类.方法等. 源码地址:https://gitee.com/noear/liq ...