iTop 运维工具学习心得-持续更新 版本3.0.1
1.Portal 名字显示顺序调整
文件路径
iTop\web\datamodels\2.x\itop-portal-base\portal\templates\layout.html.twig
修改前: {% set sUserFullname = app['combodo.current_user'].Get('first_name') ~ ' ' ~ app['combodo.current_user'].Get('last_name') %}修改后: {% set sUserFullname = app['combodo.current_user'].Get('last_name') ~ ' ' ~ app['combodo.current_user'].Get('first_name') %}
2.隐藏 Portal字段
文件路径
iTop\web\datamodels\2.x\itop-tickets\datamodel.itop-tickets.xml
修改前:
<div class="row"><div class="col-sm-6"><div class="form_field" data-field-id="impact"></div></div><div class="col-sm-6"><div class="form_field" data-field-id="urgency"></div></div>
</div>修改后:
<div class="row">
<!-- <div class="col-sm-6"><div class="form_field" data-field-id="impact"></div></div><div class="col-sm-6"><div class="form_field" data-field-id="urgency"></div></div> -->
</div>
3.SMTP 邮件设置
文件路径
iTop\web\conf\production\config-itop.php
'email_transport' => 'SMTP',
'email_transport_smtp.host' => 'IP地址',
'email_transport_smtp.port' => '25',
4.LDAP 域控访问设置
文件路径
iTop\web\conf\production\config-itop.php
'authent-ldap' => array ('host' => 'IP地址','port' => 389,'default_user' => '账户名','default_pwd' => '密码','base_dn' => 'dc=公司域名,dc=com','user_query' => '(SamAccountName=%1$s)','options' => array (17 => 3,8 => 0,),'start_tls' => false,'debug' => false,'servers' => array (),
5.数据库备份设置
文件路径
iTop\web\conf\production\config-itop.php
'itop-backup' => array ('mysql_bindir' => 'C:\wamp64\bin\mysql\mysql5.7.36\bin','week_days' => 'monday, tuesday, wednesday, thursday, friday','time' => '23:30','retention_count' => 5,'enabled' => true,'itop_backup_incident' => '',),
6.局域网访问设置
6.1把绝对路径改成相对路径,可以使局域网访问时,正常加载页面和图片
文件路径
iTop\web\conf\production\config-itop.php
修改前'app_root_url' => 'http://localhost/itop/web/',修改后'app_root_url' => '/itop/web/',
6.2 拒绝访问403错误
wamp64\bin\apache\apache2.4.51\conf\extra\httpd-vhosts.conf
把Deny from all 改为 Required all granted就可以解决
修改前
<VirtualHost *:80>ServerName localhostServerAlias localhostDocumentRoot "${INSTALL_DIR}/www"<Directory "${INSTALL_DIR}/www/">Options +Indexes +Includes +FollowSymLinks +MultiViewsAllowOverride AllDeny from all</Directory>
</VirtualHost>修改后
<VirtualHost *:80>ServerName localhostServerAlias localhostDocumentRoot "${INSTALL_DIR}/www"<Directory "${INSTALL_DIR}/www/">Options +Indexes +Includes +FollowSymLinks +MultiViewsAllowOverride AllRequire all granted</Directory>
</VirtualHost>
6.3 因为6.2改成相对路径,部分图片无法加载
文件路径
wamp64\www\iTop\web\data\cache-production\portals\itop-portal-prod\ContainerNmvmbxk\srcProdProjectContainer.php
删除http头,图片就可以正常加载。调试方法edge或是chrome,启用F12开发者工具,查看加载失败的URL,根据图片的名称在itop工程里搜索,即可找到对应的文件。
修改前
'logo' => 'http://localhost/itop/web/images/logo-itop-dark-bg.svg?t=1653041501.4401',修改后
'logo' => '/itop/web/images/logo-itop-dark-bg.svg?t=1653041501.4401',
6.4 忘记密码,邮件里的链接地址不完整,缺少http头部的处理方法
文件路径
wamp64\www\iTop\web\application\loginwebpage.class.inc.php
追加完整路径,http://ip地址 或者 http://域名
修改前
$sResetUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?loginop=reset_pwd&auth_user='.urlencode($oUser->Get('login')).'&token='.urlencode($sToken);修改后
$sResetUrl = 'http://ip地址'.utils::GetAbsoluteUrlAppRoot().'pages/UI.php?loginop=reset_pwd&auth_user='.urlencode($oUser->Get('login')).'&token='.urlencode($sToken);
7. Internet访问设置
IIS反向代理的核心设置代码
1.Internet访问地址http://域名/itop/web/pages/UI.php2.反向代理Rewrite URL:http://192.168.0.2/{R:1}Pattern:^(.*)Conditon:{HTTP_HOST} ^域名$3.局域网的访问URL:http://192.168.0.2/itop/web/pages/UI.php排错技巧,Rewrite写到哪里合适如果改成 Rewrite URL:http://192.168.0.2/itop/web/{R:1}
会出现,只能打开首页,css加载不正确,点击登录提示找不到页面的错误,
因为链接变成了,itop/web/itop/web 多了一层。
8. 为已有的类添加共有属性
8.1准备工作
下载iTopDataModelToolkit-2.3.zip
下载完成后解压至wamp64\www\iTop\web路径下
完整路径wamp64\www\iTop\web\toolkit
8.2业务需求
父类:物理设备(PhysicalDevice)
子类:电脑(PC),服务器类(Server)
共同业务需求:创建PC和Server时,需要添加发票号码Invoice,采购编号:OrderNo共有信息,
PC需要,再增加配置项:硬盘容量HDD,CD机规格,CPU速度
8.3生成数据模型模板
步骤1:创建空模板,用于向数据库添加新的字段
https://www.itophub.io/wiki/page?id=2_5_0%3Acustomization%3Adatamodel#creating_a_module
Company Name:随意输入
Extension Name:随意输入
Extension Label:随意输入,安装时会以该名字显示
Version:随意输入
Dependencies:依赖的模型,这里选择itop-endusers-devices,因为PC属于该数据模型下,后续需要再该模型中配置页面显示
输入完成后,点击Generate
Generate一个zip压缩文件,解压缩后放入wamp64\www\iTop\web\extensions
完整路径wamp64\www\iTop\web\extensions\itop-pd-ext
重复上述步骤,制作PC模块的模板zip,解压结果如下
wamp64\www\iTop\web\extensions\itop-pc-ext
8.4运行setup,添加扩展模块itop-pc-ext和itop-pd-ext,只需下一步下一步,在最后一页选择对应的扩展名称就可以。
http://localhost/itop/web/setup/
8.5配置XML文件
8.5.1添加PhysicalDevice的字段
在wamp64\www\iTop\web\extensions\itop-pd-ext路径下
打开datamodel.itop-pd-ext.xml文件
class id="PhysicalDevice" 指定需要修改的数据库对象
filed id = orderno 指定追加的字段orderno
filed id = invoice 指定追加的字段invoice
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.6"><classes><class id="PhysicalDevice"><fields><field id="orderno" xsi:type="AttributeString" _delta="define"><sql>orderno</sql><defalut_value/><is_null_allowed>true</is_null_allowed></field><field id="invoice" xsi:type="AttributeString" _delta="define"><sql>invoice</sql><defalut_value/><is_null_allowed>true</is_null_allowed></field></class></classes>
</itop_design>
8.5.2添加PC字段
找到并打开datamodel文件
在wamp64\www\iTop\web\extensions\itop-pc-ext路径下
打开datamodel.itop-pc-ext.xml
修改XML内容如下
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.6"><classes><class id="PC"><fields><field id="cpuspeed" xsi:type="AttributeString" _delta="define"><sql>cpuspeed</sql><defalut_value/><is_null_allowed>true</is_null_allowed></field><field id="hdd" xsi:type="AttributeString" _delta="define"><sql>hd</sql><defalut_value/><is_null_allowed>true</is_null_allowed></field><field id="cd" xsi:type="AttributeString" _delta="define"><sql>cd</sql><defalut_value/><is_null_allowed>true</is_null_allowed></field></fields></class></classes>
</itop_design>
8.5.3在各个画面显示
首先在PC画面显示,orderno,invoice,cpuspeed,hdd,cd,打开编辑下面的文件
wamp64\www\iTop\web\datamodels\2.x\itop-endusers-devices\datamodel.itop-enduser-devices.xml
找到PC类,找到presentation下的details下的items,添加cpuspeed,hdd等信息
<item id="fieldset:Server:moreinfo"><rank>20</rank><items> <item id="cpu"><rank>60</rank></item><item id="cpuspeed"><rank>60</rank></item><item id="ram"><rank>70</rank></item><item id="hdd"><rank>80</rank></item><item id="cd"><rank>90</rank></item>...<items>
8.6 运行更新
http://localhost/itop/web/toolkit
先点击iTop update下的Check DB Schema,更新SQL字段(根据提示内容,复制SQL语句然后黏贴到数据库管理器运行),再点击UpdateiTopCode更新代码。
9.修改MYSQL的参数,避免同步时提示如下错误信息
mysql_error = Index column size too large.
需要将default row format的值由campct改成dynamic
10.同步导入Persons
创建一个同步源,输入Name:任意,Target Class:必须,这里选择Person类,点击应用
设置:需要同步的字段,需要更新的字段,和同步后不允许手动修改的字段。
CSV文件
primary_key;first_name;name;org_id;email;function;mobile_phone
"admin";"wang";"haha";"IT-Department";"wanghaha@xx.cn";"Manager";"136XXXXXXXX"
执行语句
注意,这里data_source_id=4里面的数字4,是对应数据库的表
php synchro_import.php --auth_user=admin --auth_pwd=密码 --csvfile=persons.csv --data_source_id=4 --output=summary
完成后,可以查看记录,这里显示成功创建一条记录。
11.LDAP 同步
原文https://www.itophub.io/wiki/page?id=extensions%3Aldap-data-collector
下载Data collector for LDAP Extention扩展,解压后放在任意路径。
https://store.itophub.io/en_US/products/ldap-data-collector
复制params.distrib.xml,改名为params.local.xml
C:\wamp64\www\iTop\ldap-data-collector\conf\params.distrib.xml
给管理员添加REST角色
先添加组织,否则LDAP同步会失败
注意事项:
itop_login和itop_password写itop的管理眼账户和密码
ldapuri写ad服务器的ip地址,端口号默认389根据实际情况修改
ldapdn:根据实际AD目录填写,如
dc=com|-ou=user|-cn=zhangsan
关键点,根据实际需求填写过滤条件:
本项目的过滤条件说明:
(&(objectClass=user)(objectCategory=person)(mail=*@xx.cn)(title=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))(objectClass=user) 对象是user 这里官方教程写的是person,这里需要避坑
(objectCategory=person) 目录是person
(mail=*@mxx.cn) 所有的邮件都是以@xx.cn结尾,因为存在代理商的账户,通过邮件过滤该账户
(title=*) 所有职责不为空的用户,因为有的用户有两个账户,子账户职责为空,过滤该账户
(userAccountControl:1.2.840.113556.1.4.803:=2)) 过滤停用的账户
完整版内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Default values for parameters. Do NOT alter this file, use params.local.xml instead -->
<parameters><itop_url>http://localhost/iTop/web/</itop_url><itop_login>admin</itop_login><itop_password>root</itop_password><contact_to_notify>admin@xx.cn</contact_to_notify><synchro_user>admin</synchro_user><ldapuri>ldap://192.168.0.2:389</ldapuri><ldapdn>DC=org,DC=com</ldapdn><ldaplogin>账户</ldaplogin><ldappassword>密码</ldappassword><page_size>1000</page_size><!-- Parameters for Person synchronization --><ldappersonfilter>(&(objectClass=user)(objectCategory=person)(mail=*@xx.cn)(title=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))</ldappersonfilter><person_fields><!-- Mapping between LDAP fields and iTop Person's object fields --><primary_key>samaccountname</primary_key><name>sn</name><first_name>givenname</first_name><email>mail</email><phone>telephonenumber</phone><mobile_phone>mobile</mobile_phone><function>title</function><employee_number>employeenumber</employee_number><org_id>department</org_id></person_fields><person_defaults><!-- Default values for iTop Person's object fields --><org_id>MEACH</org_id><status>active</status></person_defaults><!-- Parameters for User synchronization --><collect_person_only>no</collect_person_only><ldapuserfilter>(&(objectClass=user)(objectCategory=person)(mail=*@xx.cn)(title=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))</ldapuserfilter><synchronize_profiles>no</synchronize_profiles><user_fields><!-- Mapping between LDAP fields and iTop UserLDAP's object fields --><primary_key>samaccountname</primary_key><login>samaccountname</login><contactid>mail</contactid></user_fields><user_defaults><!-- Default values for iTop UserLDAP's object fields --><profile>Portal user</profile><language>EN US</language></user_defaults>
</parameters>
运行如下命令,模拟运行,查看预导入的LADP用户,会有两个csv文件。
php exec.php --console_log_level=9 --collect_only
运行如下命令,正式导入。
php exec.php
导入成功后,可以在person和users处看到相关的数据。
iTop 运维工具学习心得-持续更新 版本3.0.1相关推荐
- Linux服务器运维常用命令(持续更新)
1.ip addr 查看本机IP地址 Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上还有一个命令叫ip addr可以查看IP地址. 2.serv ...
- 运维常用单词-会持续更新
bin普通目录 boot 内核启动程序 usr 安装linux时软件安装的位置 root 超级用户目录 home 可以存放自己的文件 etc 配置文件: interface:接口 administra ...
- 44学习自动化运维工具 Chef 的基本用法,包括厨师编写、节点管理
Chef是一种自动化运维工具,它允许您定义基础设施的状态,并根据需要管理这些状态.在这里,我们将学习Chef的基本用法,包括如何编写和管理Cookbook和Node. 安装Chef 在使用Chef之前 ...
- Ansible自动化运维工具使用
概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...
- 自动化运维工具Ansible详细部署
一.基础介绍 ================================================================================= 1.简介 ansibl ...
- 自动化运维工具SaltStack详细部署
2019独角兽企业重金招聘Python工程师标准>>> 自动化运维工具SaltStack详细部署 2014-12-28 17:30:34 标签:saltstack 原创作品,允许转载 ...
- 云计算论文集, Spark, 数据描述语言, 运维工具集
https://antkillerfarm.github.io/ 云计算论文集 这里列出一些在这个领域产生重大影响的论文.仅作备忘,肯定不全,Google是其中的绝对主力. CAP <Towar ...
- IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)
1.简述Ansible及其优势? Ansible是一款极其简单的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet, cfengine, chef, func, fabric ...
- iis日志字段解析 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)
网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置) https://www.cnblogs.com/fuqiang88/p/5870306.html 我们只能通过各种系统日志来分析网 ...
最新文章
- Docker学习(四)-----Docker容器常用命令
- 算法:不同二叉搜索树||
- Bootstrap3基础 下载bootstrap3压缩包和相应的jQuery文件
- 力争营收渠道多样化,Line 向自拍应用 Snow 投资 4500 万美元
- 分布式数据库一定会替代Oracle吗?
- Java虚拟机必学之四大知识要点,附学习资料
- Easyui+Spring+Mybatis完整示例(后台)
- php 上一页 下一页代码,php无限上一页,下一页,求完善代码??
- java期末考试编程题 界面_救急啊!!!期末考试!怎样用JAVA的GUI(图形用户界面)来设计一个小程序!...
- 关于hadoop2.4.1伪分布式系统的搭建
- (ZT)关于IAP防止破解的几点
- Horizon 桌面环境USB设备重定向问题
- robotframework-selenium2library-导入可选参数
- java-GUI实现汽车租赁管理系统
- 锂电池充电原理:充电电压电流的选择方法
- 思维▍决定你视野和眼光的16个顶级思维模型
- 制作你软盘镜像_codestorm_新浪博客
- 数组排序 - 长辈的年纪
- 最新PHP对接微信支付,发起商家转账API,商家转账到零钱
- 七款酷炫的 Mac 屏保