一、系统环境准备
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初始化安装
-
通过浏览器访问
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 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集成细节等。