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,打开安装向导;
选择全新安装
接受许可协议
数据库配置
设置管理员密码:pwd
选择安装生产实例
配置管理选项
选择企业服务管理
工单管理选项
变更管理选项
]
额外的票证,FAQ
确认开始安装
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
12 修改UI登录样式
编辑 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
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>
- 编辑配置文件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
成功后会提示如下界面,如果未出现,请检查以上配置文件
- 测试LDAP 同步用户
php collectors/bin/ldap-test.php
能返回如下信息则配置成功
测试正常,运行同步命令
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 (
),
),