一、系统环境准备

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 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初始化安装

  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集成细节等。

CentOS 7 部署 GLPI 系统及集成方案的更多相关文章

  1. CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境

    持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代 ...

  2. vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】

    项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了: 1.跨域配置 2.axios请求封装 3.eslint配置 4.环境dev,test,pro(开 ...

  3. SAP+ 差旅报销集成方案的实现

    跨国集团通常都会有一个财务共享中心SSC的集中处理业务部门,用于统计来自各个公司的差旅报销,而1).传统的OA审批 虽然审批流是优势存在着需要SAP数据二次录入,数据不同步等困难,2).如果终端用户都 ...

  4. Cobbler全自动批量安装部署Linux系统

    说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...

  5. SSO集成方案[随笔]

    看这个方案之前,先说明下为什么要加入SSO,以防对大家产生不好的影响.我们产品使用传统winform+db服务+Db存储方式开发,一群老菜帮子开发,以传统的datatble做数据传递,很多年了未有变化 ...

  6. Cobbler自动部署主机系统

    Cobbler自动部署主机系统 简介: Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装. ...

  7. FineReport和泛微OA(Ecology)的单点登录集成方案

    最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上.直接也有相关的文章介绍一些FineReport和泛微集成的背景.价值等,以及FineReport和OA的深度集成的方案,但是并没 ...

  8. 使用PHPstudy在Windows服务器下部署PHP系统

    PHP网站一般运行在Apache服务器上,IIS服务器上也可以运行,但是不推荐,windows服务器上没有集成Apache跟PHP的运行环境,但是借助第三方的软件就能很好的搞定,一般这样的软件有很多, ...

  9. CentOS 7 部署 ASP.NET Core 应用程序

    原文:CentOS 7 部署 ASP.NET Core 应用程序 看了几篇大牛写的关于 Linux 部署 ASP.NET Core 程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大 ...

  10. 【docker部署】基于linux的centos操作系统部署安装docker容器

    一.docker介绍 容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都 ...

随机推荐

  1. Linux基础命令3:通过名称指定文件、创建文件目录

    描述Linux文件系统层次结构概念 /root(root的home目录)/home/username(其它普通用户的home目录)/bin, /usr/bin, /usr/local/bin命令存放处 ...

  2. AuthBy pg walkthrough Intermediate window

    nmap └─# nmap -p- -A -sS 192.168.226.46 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-21 01: ...

  3. android主线程与子线程

    创建子线程创建子线程 更多关于java线程的文章可以查看这两篇 线程1 创建线程的方法 在android中穿件子线程的方案很简单 创建子线程的几种方法 ///////第一种/////// class ...

  4. GIS数据合集:作物、植被数据下载平台整理

      本文对目前主要的作物类型与产量.植被物候与指数数据产品的获取网站加以整理与介绍. 目录 4 植被农业数据 4.1 作物产量数据 4.1.1 SPAM 4.1.2 Aerial Intelligen ...

  5. 从DNS配置到Pacemaker部署:一步步教你在Linux平台上实现AlwaysOn集群

    从DNS配置到Pacemaker部署:一步步教你在Linux平台上实现AlwaysOn集群 AlwaysOn集群是SQL Server里唯一推荐的高可用性架构, 在AlwaysOn高可用性架构中,有非 ...

  6. 开源接流:一个方法搞定3D地图双屏联动

    老大提需求:一份数据,在2D地图上可编辑,在3D地图上显示高度信息,关键是两个地图得支持视图同步,末了还来句"两天时间够了吧?"我饶了饶头,内心各种问候...,代码如何下手,特X的 ...

  7. IDEA测试Flink程序

    一.导入项目,添加jar包 右键项目=>open module setting 选择Flink1.9的lib目录下flink-dist_2.11-1.9.2.jar包(对应运行版本) 保存即可. ...

  8. 本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南

    本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南 作为AI领域的弄潮儿,你是否苦恼于云端大模型API的高昂成本?想在本机零门槛体验顶尖开源模型?这篇保姆级教程将带你解锁「Olla ...

  9. 在GitHub上部署个人静态网站

    在GitHub上部署个人静态网站 首先将网站设置文件上传到github的一个新建仓库,并公开仓库(会员可不用公开) 找到settings(设置)-page(页面)选项并进入 选择分支(root)并sa ...

  10. QT5笔记: 31. 文件目录操作

    开发的时候,QtCreator F1 查看相关类的信息