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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值