RHEL8/CentOS8部署itop3.0详细实践教程

  • 1 硬件环境
  • 2 软件环境
  • 3 关闭防火墙及selinux
  • 4 更新yum源
  • 5 安装Apache
  • 6 安装PHP及依赖
  • 7 安装Mariadb,创建iTop数据库
  • 8 上传iTop安装包并配置权限
  • 9 进入web端,安装GLPI系统
  • 10 配置文件修改
  • 10.1修改时区为上海
  • 10.2修改中文乱码
  • 11 iTop 后台任务 cron配
  • 12 修改UI登录样式
  • 13 修改文字内容
  • 14 安装toolkit
  • 15 LDAP配置


1 硬件环境

主机

虚拟服务器

CPU

Intel® Xeon® Gold 5118 CPU @ 2.30GHz 8核心

硬盘

剩余空间100G及以上

内存

16GB

2 软件环境

序号

项目

描述

备注

1

服务器操作系统

RHEL8.6

2

Web服务器软件

Apache2.4

3

PHP服务器软件

PHP7.4

4

数据库软件

Mariadb10.3

3 关闭防火墙及selinux

安装操作系统后,需要关闭防火墙及selinux,后期可根据实际情况开放防火墙端口

systemctl stop firewalld
	systemctl disable firewalld
	getenforce    #查看状态
	vi /etc/sysconfig/selinux    #设置开机不启动
	SELINUX=disabled

4 更新yum源

yum -y install epel-release
	yum update -y

5 安装Apache

yum install -y httpd httpd-devel
	service httpd start
	systemctl enable httpd

6 安装PHP及依赖

sudo dnf module reset -y php
	sudo dnf module install -y php:7.4
	sudo dnf install php-{mysqlnd,gd,intl,ldap,apcu,xmlrpc,opcache,zip,xmlrpc,soap} graphviz

7 安装Mariadb,创建iTop数据库

#配置阿里云源
	vim /etc/yum.repos.d/mariadb.rep
	配置文件:[mariadb]
	name = MariaDB
	baseurl = http://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64/
	gpgkey =  http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
	gpgcheck = 1

安装mariadb并配置开机启动

yum -y install MariaDB-server MariaDB-client   # yum安装MariaDB
	systemctl start mariadb.service    #启动mariadb
	systemctl enable mariadb.service   #设置开机启动

创建itop数据库

mysql_secure_installation   #创初始化数据库
	          #创建数据库
	          mysql -uroot -p
	mysql> use mysql;
	mysql> CREATE USER 'itop'@'%' IDENTIFIED BY 'itop';   #用户名 密码
	mysql> GRANT USAGE ON *.* TO 'itop'@'%' IDENTIFIED BY 'itop';
	mysql> create database itop character set utf8 collate utf8_bin;
	mysql>grant select,insert,update,delete,create,drop,alter,trigger on itop.* to 'itop'@'%';
	mysql>ALTER DATABASE itop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
	FLUSH PRIVILEGES;
	mysql> quit

8 上传iTop安装包并配置权限

上传itop安装包到 /var/www/html目录
解压安装包并赋权

unzip iTop-3.0.2-1-9957.zip
	chown -R apache.apache /var/www/html/
	chmod 755 -R /var/www/html/itop

重启apache服务

systemctl restart httpd

9 进入web端,安装GLPI系统

浏览器输入:http://IP/itop/web,打开安装向导;

centos7 X86学习_xml

选择全新安装

centos7 X86学习_centos7 X86学习_02


接受许可协议

centos7 X86学习_centos7 X86学习_03


数据库配置

centos7 X86学习_xml_04


设置管理员密码:pwd

centos7 X86学习_centos7 X86学习_05


选择安装生产实例

centos7 X86学习_linux_06


配置管理选项

centos7 X86学习_服务器_07


选择企业服务管理

centos7 X86学习_apache_08


工单管理选项

centos7 X86学习_apache_09


变更管理选项

centos7 X86学习_linux_10

]

额外的票证,FAQ

centos7 X86学习_centos7 X86学习_11


确认开始安装

centos7 X86学习_linux_12

10 配置文件修改

10.1修改时区为上海

vim /var/www/html/itop/web/conf/production/config-itop.php

时区修改为上海
//'timezone' => 'Europe/Paris',
// 修改为 
'timezone' => 'Asia/Shanghai',

10.2修改中文乱码

//'csv_file_default_charset' => 'ISO-8859-1',
//修改为 
'csv_file_default_charset' => 'UTF-8',

11 iTop 后台任务 cron配

itop后台定时任务默认关闭,需要手动启动

新建参数文件

vim /opt/iTop/params
auth_user = admin
    auth_pwd = xxhbLOCAL.
    email_asynchronous = 1
    cron_sleep = 10

创建计划任务 itop安装目录自己注意一下

crontab -e
*/10 * * * * /usr/bin/php /var/www/html/itop/web/webservices/cron.php --param_file=/opt/iTop/params --verbose=1 >> /var/log/itop-cron.log 2>&1
crontab -l  #查看一下
crontab -l

/var/log/itop-cron.log是执行日志

下面命令可以看到itop后台任务具体情况

php /var/www/html/itop/web/webservices/cron.php --auth_user=admin --auth_pwd=xxhbLOCAL. --status_only=1

centos7 X86学习_xml_13

12 修改UI登录样式

centos7 X86学习_服务器_14

编辑 itop\css\login.css

#login-title {
	width: 70%;
	margin-left: 15%;
    /* 修改红色与字体大小 */
	color: #d71345;
font-size: 1.4rem;
}

13 修改文字内容

编辑 itop\dictionaries\zh_cn.dictionary.itop.ui.php
根据需求修改

14 安装toolkit

上面修改需要通过lookit工具更新后才能生效

将压缩包解压,修改文件夹名为toolkit,放置到itop目录下

输入网址 http://ip/toolkit,点击iTop update

centos7 X86学习_centos7 X86学习_15

15 LDAP配置

  • AD域同步分为两部分
    person同步(联系人)
    User同步(账户)
  • 注意:
    PHP版本需要7.3以上
    同步账户需要rest角色 新建rest账户,角色分配REST Services User
    上传Data collector for LDAP 1.2.7.zip到/opt/itop目录
  • ldap-data-collector文件如下
  • ldap-data-collector,需要编辑的文件如下:
    /opt/itop/ldap-data-collector/collectors/params.distrib.xml
    /opt/itop/ldap-data-collector/conf/params.distrib.xml
    /opt/itop/ldap-data-collector/conf/params.local.xml
  • 其中conf/params.local.xml由conf/params.distrib.xml复制得到,当配置参数相同时,params.local.xml优先级高于params.distrib.xml
#解压ldap收集器
mkdir /opt/itop/ && cd /opt/itop/
unzip Data-collector-for-LDAP.zip
#复制配置文件
cd ldap-data-collector/conf
cp params.distrib.xml params.local.xml
  • 配置单AD域同步:
    编辑配置文件conf/params.local.xml
vim conf/params.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- conf/params.local.xml - 用于配置个性化参数 -->
<parameters>
  <itop_url>http://localhost/itop/web/</itop_url>
  <itop_login>rest</itop_login>
  <itop_password>1234@Abcd</itop_password>
  <contact_to_notify>123@abc.com</contact_to_notify>
  <synchro_user>rest</synchro_user>
 <!--  BUG1 <ldapuri>ldap://localhost:389</ldaphost> -->
  <ldapuri>ldap://IP:389</ldapuri>
  <ldapdn>OU=test_users,DC=TESTAD,DC=LOCAL</ldapdn>
 <!--  BUG2 <ldaplogin>CN=ITOP-LDAP,DC=company,DC=com</ldaplogin> -->
  <ldaplogin> TESTAD \admin</ldaplogin>
  <ldappassword>1234@abcd</ldappassword>
  <page_size>1000</page_size>
  <prefix></prefix>
  <json_placeholders>
    <full_load_interval>604800</full_load_interval><!-- 7 days (in seconds): 7*24*60*60 -->
    <users_target_class>UserLDAP</users_target_class>
    <synchro_status>production</synchro_status>
  </json_placeholders>
</parameters>

centos7 X86学习_apache_16

  • 编辑配置文件collectors/params.distrib.xml
vim collectors/params.distrib.xml
<?xml version="1.0" encoding="UTF-8"?>
<parameters>
        <!--  填写LDAP信息账号信息 -->
        <ldapuri>ldap://IP:389</ldapuri>
        <ldapdn>OU=test_users,DC=TESTAD,DC=LOCAL</ldapdn>
        <ldaplogin> TESTAD\admin</ldaplogin>
        <ldappassword>1234@abcd</ldappassword>
        <!-- Parameters for Person synchronization -->
        <ldappersonfilter>(objectClass=person)</ldappersonfilter>
        <itop_group_pattern>/^CN=itop-(.*),OU=.*/</itop_group_pattern>
        <person_fields>
                <!-- 重要: 映射LDAP用户与联系人 ,后续如果增加字段映射也在这里改  -->
                <primary_key>samaccountname</primary_key>
                <name>givenname</name>
                <first_name>sn</first_name>
                <email>mail</email>
                <phone>telephonenumber</phone>
                <mobile_phone>mobile</mobile_phone>
                <function>title</function>
                <employee_number>employeenumber</employee_number>
        </person_fields>
    	<person_defaults>
			<!--  同步到iTop的组织名称,不是组织ID ,请完整填写-->
			<org_id>Demo</org_id>
			<status>active</status>
		</person_defaults>

        <!--重要 : 同步参数设置 -->
        <collect_person_only>no</collect_person_only>
        <ldapuserfilter>(&(objectClass=person)(samaccountname=*))</ldapuserfilter>
        <synchronize_profiles>no</synchronize_profiles>
        <user_fields>
                <!--  映射LDAP用户与联系人 -->
                <primary_key>samaccountname</primary_key>
                <login>samaccountname</login>
             	 <!--  重要:关联用户与联系人 默认是mail -->
                <contactid>mail</contactid>
        </user_fields>
        <user_defaults>
                <!--  默认角色 语言 -->
                <profile>Portal user</profile>
                <language>ZH CN</language>
        </user_defaults>
        <!-- 此参数在多域或多OU环境同步时候才会用到 -->
        <prefix></prefix>
        <json_placeholders>
                <!-- 
                <prefix></prefix>
                <persons_data_table>synchro_data_PersonAD</persons_data_table>
                <users_data_table></users_data_table>
                 -->
                <prefix>$prefix$</prefix>
                <persons_data_table>synchro_data_$prefix$ldap_persons</persons_data_table>
            <users_target_class>UserLDAP</users_target_class>
                <users_data_table>synchro_data_$prefix$ldap_users</users_data_table>
            <full_load_interval>604800</full_load_interval><!-- 7 days (in seconds): 7*24*60*60 -->
            <synchro_status>production</synchro_status>
            <profile_list_update_policy>write_if_empty</profile_list_update_policy>
        </json_placeholders>
</parameters>
  • 测试iTop REST API连接
php toolkit/testconnection.php

成功后会提示如下界面,如果未出现,请检查以上配置文件

centos7 X86学习_服务器_17

  • 测试LDAP 同步用户
php collectors/bin/ldap-test.php

能返回如下信息则配置成功

centos7 X86学习_linux_18

测试正常,运行同步命令

php exec.php
  • 配置定时同步任务
    以上完成同步后,需要使用crontab配置定时任务
    编写同步脚本
vim /opt/itop/cron/ldap-data-collector-cron.sh
#!/bin/bash
#用于ldap数据收集执行脚本
echo "开始进行LDAP数据同步"
php /opt/iTop/ldap-data-collector/exec.php  --config_file='/opt/iTop/ldap-data-collector/conf/params.local.xml' >> /opt/itop/cron/params.local.xml.log 2>&1
echo "LDAP同步完成"

创建定时任务

crontab -e
#每天12点30 , 23点30进行LDAP同步
30 12,23 * * * /bin/bash /opt/iTop/cron/ldap-data-collector-cron.sh
  • 开启ldap登录
    修改itop配置文件
‘authent-ldap’ => array (
 ‘host’ => ‘10.2.44.3’,
 ‘port’ => 389,
 ‘default_user’ => ‘admin@testad.local’,
 ‘default_pwd’ => ‘1234@abcd’,
 ‘base_dn’ => ‘OU=test_users,DC=TESTAD,DC=LOCAL’,
 ‘user_query’ => ‘(SamAccountName=%1$s)’,
 ‘options’ => array (
 17 => 3,
 8 => 0,
 ),
 ‘start_tls’ => false,
 ‘debug’ => false,
 ‘servers’ => array (
 ),
 ),