自建IT资产管理系统-GLPI 10
GLPI可以提供功能全面的IT资源管理接口,你可以用它来建立数据库全面管理IT的电脑,显示器,服务器,打印机,网络设备,电话,甚至硒鼓和墨盒等。提供Helpdesk用户支持平台;联系人,合同,合作商,以及文档的管理;提供资源预定,知识库的管理等功能。 法国等欧洲国家和地区应用广泛的开源IT资产管理软件
Github:https://github.com/glpi-project/glpi/release
本文全流程超详细!
系统部署
-
环境 Alma Linux 9.1
-
删除系统自带的MariaDB数据库及配置文件 # Alma Linux 9.1最小安装不自带MariaDB
[root@localhost ~] find -H /etc/ | grep my.c #查看默认数据库配置文件
/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
/etc/my.cnf
/etc/my.cnf.d
/etc/my.cnf.d/mysql-clients.cnf
[root@localhost ~] rm -rf /etc/my.cnf /etc/my.cnf.d/ #删除默认数据库配置文件
[root@localhost ~] find -H /etc/ | grep my.c #再次查看默认数据库配置文件
/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
[root@localhost ~]
[root@localhost ~] rpm -qa|grep mariadb-libs #卸载系统自带mariadb-libs
mariadb-libs-5.5.65-1.el7.x86_64
[root@localhost ~] yum remove mariadb-libs.x86_64 -y #卸载软件包,自动解决其依赖关系
- 添加MariaDB yum源
MariaDB官方源:https://mariadb.org/download/?t=repo-config
[root@localhost ~] tee /etc/yum.repos.d/MariaDB.repo<<EOF
# MariaDB 10.11 RedHatEnterpriseLinux repository list - created 2023-02-22 01:51 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.11/rhel/9.1/x86_64/
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
- 安装MariaDB
[root@localhost ~] dnf clean all #清除dnf源缓存
[root@localhost ~] dnf makecache #更新dnf源缓存
[root@localhost ~] dnf --enablerepo=mariadb install -y mariadb-server mariadb #指定源安装服务端 客户端
- 开启MariaDB,并创建GLPI数据库
[root@localhost ~] systemctl start mariadb.service #开启服务
[root@localhost ~] systemctl enable mariadb.service #设置为开机自启动服务
[root@localhost ~] mysql -u root -p #登录数据库
Enter password: #输入密码
#创建GLPI_SQL数据库
MariaDB [(none)]> CREATE DATABASE GLPI_SQL;
#创建数据库角色GLPI,密码为GLPI@1234,并赋予GLPI_SQL本地权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON GLPI_SQL.* TO 'GLPI'@'localhost' IDENTIFIED BY 'GLPI@1234';
#刷新权限表
MariaDB [(none)]> FLUSH PRIVILEGES;
[root@localhost ~] vi /etc/my.cnf.d/server.cnf #指定MariaDB监听的IP地址
[mysqld]
bind-address = 0.0.0.0
[root@localhost ~] systemctl restart mariadb #重新启动MariaDB服务
- 设置MariaDB字符集为utf-8
[root@localhost ~] vi /etc/my.cnf
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
#按i编辑,按esc后输入:wq!保存退出
[root@localhost ~]
[root@localhost ~] vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
#按i编辑,按esc后输入:wq!保存退出
[root@localhost ~]
[root@localhost ~] systemctl restart mariadb #重启服务
[root@localhost ~] mysql -u root -p #进入数据库
Enter password: #输入密码
MariaDB [(none)]> show variables like 'character_set_%'; #查看默认字符集
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb3 |
| character_set_connection | utf8mb3 |
| character_set_database | utf8mb3 |
| character_set_filesystem | binary |
| character_set_results | utf8mb3 |
| character_set_server | utf8mb3 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
- dnf安装PHP8.1
[root@localhost ~] dnf install -y epel-release #安装EPEL仓库
[root@localhost ~] dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm #安装Remi仓库
[root@localhost ~] dnf module -y reset php #将php模块重置为默认状态
[root@localhost ~] dnf module -y enable php:remi-8.1 #启用Remi存储库提供的PHP8.1模块,也告诉dnf从Remi中安装PHP8.1版本
[root@localhost ~] dnf install -y php #安装php
[root@localhost ~] php -v #检查php版本
[root@localhost ~] dnf install -y php-mysqli php-gd php-ldap php-intl php-zip php-bz2 #安装更多php模块
- 配置PHP8.1
#PHP 配置文件 (/etc/php.ini) 调整如下
[root@localhost ~] vi /etc/php.ini
memory_limit = 128M #设置PHP脚本可用的最大内存
file_uploads = on #指定是否允许通过HTTP上传文件
max_execution_time = 60 #指定PHP脚本执行的最大时间(以秒为单位)。如果脚本执行时间超过了这个限制,PHP会自动终止脚本执行。
session.auto_start = off #指定是否自动启动Session,如果设置为on,则Session会在每次请求时自动启动。
session.use_trans_sid = off #指定是否允许使用基于URL的Session ID。如果设置为on,则可以通过URL参数传递Session ID,这可能会带来一些安全风险。
session.cookie_httponly = on #指定是否将Session ID作为HTTP cookie发送给客户端。如果设置为on,则Session ID只能通过HTTP传输,不能通过JavaScript访问,这可以提高Session的安全性。
- 安装apache
[root@localhost ~] dnf install -y httpd httpd-devel #安装httpd服务器和开发包
[root@localhost ~] systemctl start httpd.service #启动httpd服务器
[root@localhost ~] systemctl enable httpd.service #设置httpd服务器开机自启
- 修改httpd.conf文件
[root@localhost ~] vi /etc/httpd/conf/httpd.conf
#在AddType application......后面加如下一行
AddType application/x-httpd-php .php .html
#在DirectoryIndex index.html加上index.php
DirectoryIndex index.php index.html
#将AllowOverride None都改成AllowOverride All
#在Include conf.modules.d/*.conf后面加如下一行
LoadModule rewrite_module modules/mod_rewrite.so
- 下载glpi系统并解压至/var/www/html/目录下 并设置apache用户权限
[root@localhost ~] dnf install -y wget #安装wget工具
[root@localhost ~] wget (下载直连) -O (文件名)
#github:https://github.com/glpi-project/glpi/releases
[root@localhost ~] tar -xf (文件名) -C /var/www/html/
[root@localhost ~] chown -R apache:apache /var/www/html/
[root@localhost ~] chmod -R 775 /var/www/html/glpi
- 关闭防火墙
[root@localhost ~] systemctl stop firewalld.service
[root@localhost ~] systemctl disable firewalld.service
- 配置SELinux
[root@localhost ~] chcon -R -t httpd_sys_content_t /var/www/html/glpi/
[root@localhost ~] chcon -R -t httpd_sys_rw_content_t /var/www/html/glpi/
[root@localhost ~] setsebool -P httpd_can_network_connect=1
[root@localhost ~] setsebool -P httpd_can_network_connect_db=1
[root@localhost ~] setsebool -P httpd_can_sendmail=1
[root@localhost ~] sudo setenforce 1
- 重启服务
[root@localhost ~] systemctl restart httpd.service mariadb.service php-fpm.service
- 访问GLPI:
/glpi
同意协议后会自检环境是否正常,按照上面的设置,自检界面如下图
使用
- 默认管理员帐号是 glpi/glpi
- 默认群组
- Super-Admin: 拥有所有的权限。注意如果super-admin profile被删除或者它的"配置界面"选择了简单界面,会无法进入GLPI的设置。
- Admin: 拥有对GLPI的全部设置权限。在规则(rules)、实体和其他可能影响GLPI运行的配置上有所限制。
- Supervisor: 包含了Technician的权限,增加了管理的权限(如修改工单属性) ,但授权能力是有限的(例如只能为用户授予Technician、Hotliner、Self-Service和Supervisor四种权限)。操作范围是所属实体,授权时递归可以看到子实体。
- Technician: 此配置文件用于运维技术人员。可以处理工单,可以读写数据和用户配置,但授权能力是有限的(例如只能为用户授予Self-Service和Technician两种权限)。操作范围是所属实体,授权时递归可以看到子实体。
- Hotliner: 适用于热线部门。可以创建和追踪工单,但不能像technician一样处理工单。操作范围是所属实体,授权时递归可以看到子实体。
- Observer: 对所有资产和管理数据(资产、工单、文档、project、用户、群组等)有阅读权限。可以创建工单,但不能管理和处理工单(分配工单等)。操作范围是所属实体,授权时递归可以看到子实体。
- Self-Service: 是默认配置文件。是权限最小的配置文件。只有Self-Service使用了简单界面而不是标准界面。可以创建和追踪工单、预定设备、查阅知识库。 操作范围是与自己相关的工单。