munkireport / gsx
munkireport 的模块。
This package is auto-updated.
Last update: 2024-09-05 08:25:53 UTC
README
从 Apple 更新保修状态,设计为保修模块补充。
GSX 表提供以下信息
- 保修状态
- 覆盖结束日期
- 覆盖开始日期
- 剩余覆盖天数,来自 GSX 的最后提取
- 估计购买日期
- 购买国家
- 注册日期
- 产品解密
- 运输配置
- 合同覆盖结束日期
- 合同覆盖开始日期
- 保修合同类型
- 涵盖的劳动
- 涵盖的部件
- 保修服务级别协议
- Mac 是否为 GSX 借用机
- 可读的保修状态
- 是否为复古 Mac
- 是否为过时 Mac
GSX 模块还使用以下信息更新保修和机器表
- 购买日期
- 保修结束日期
- 保修状态
- 产品描述
数据可以在客户端详细信息页面下的 GSX 选项卡或使用 GSX 列表视图查看
备注
- 需要安装
php
中的 SOAP 扩展 https://php.ac.cn/manual/en/book.soap.php - 客户端每天触发服务器进行一次查找
- 过时的 Mac 不可从 Apple 获取,而是使用保修模块的后端进行处理
- 以前建议仅启用 GSX 或保修模块,但随着 MunkiReport 2.14 的发布,GSX 模块需要启用保修模块
配置
在使用 GSX 模块之前,您需要使用您的 GSX 帐户信息配置 .env
文件。某些变量不是必需的。
GSX_ENABLE=true GSX_CERT='/path/to/certbundle.pem' GSX_CERT_KEYPASS='pass' GSX_SOLD_TO='00000xxxxx' GSX_SHIP_TO='00000xxxxx' GSX_USERNAME='gsx_user@domain.com' GSX_DATE_FORMAT='m/d/y'
制作 certbundle.pem
以下步骤假设您已使用 https://www.watchmanmonitoring.com/generating-ssl-certificates-to-meet-applecares-august-2015-requirements/ 创建 SSL 证书
在创建 certbundle.pem
时,您必须拥有 Apple 返回的六个已签名的 pem 文件以及您发送给 Apple 的四个 gsx-* 文件。首先将所有 10 个文件放入一个文件夹中。让我们称它为 GSX-Certs。
在 GSX-Certs 文件夹中,您需要将您的 gsx-production.key
和 Applecare-XXXX-Prod.apple.com.chain.pem 合并在一起以形成捆绑包。在终端中,cd 到 GSX-Certs 文件夹。然后运行 "cat Applecare-APP1234-0000123456.Prod.apple.com.chain.pem gsx-production.key
> certbundle.pem
",确保将您的 AppleCare 和销售编号替换为示例编号。
这将输出一个大小约为 6.1KB 的 certbundle.pem
文件。将此文件和其他 GSX 证书视为密码。保护它们。剩下要做的只是确保 certbundle.pem
包含正确数据,例如以下示例,并将 MunkiReport 指向 config.php
中以 gsx_cert
参数可读的存储位置。
更多信息可以在 https://github.com/filipp/gsxlib#q-how-do-i-create-the-necessary-pem-file 找到
示例 certbundle.pem
-----BEGIN CERTIFICATE-----
BLASOQ()*Q#()**)REW)*(EW*)*E)WUR)*EW(UR)
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
0990320003q43090435J403439590S-S=DS=-
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
)_#_)#)$IK_#@))KDE_)FD_SF)DSF_DS)FDS_FDSFSD
....
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: ....
DEK-Info: ...
BUNCH OF GIBBERISH
-----END RSA PRIVATE KEY-----
填充 GSX 信息
配置完GSX模块后,您可能需要将所有现有的保修数据与苹果的API进行重新核对。对于单个机器,这很简单 - 只需转到“客户端”>“计算机名称”>显示(上左角的菜单)> GSX >重新核对保修状态。对于整个机群,这是一项相当繁重的工作。让我们自动化这个过程。
首先,打开MunkiReport,然后点击“列表”>“GSX”。在页面左上角,点击弹出菜单,然后点击“全部”以显示您所有的Mac。在页面右上角,点击CSV。选择页面上的所有内容,将其复制到剪贴板,并将其粘贴到您最喜欢的文本编辑器的新文档中(TextWrangler是免费的,但请勿使用TextEdit)。将其保存到您的桌面上的all-macs.csv
。
接下来,我们将将其缩减到只包含序列号。打开终端,然后粘贴以下内容
cd ~/Desktop && awk -F "\"*,\"*" '{print $2}' all-macs.csv > serials.txt`
按回车键,您应该在桌面上看到一个名为serials.txt
的新文本文件。在文本编辑器中打开它,并删除第一行(称为“序列号”)。保存并关闭。
现在,在您的文本编辑器中创建一个新的文档,命名为gsx_lookup_all.sh
,并将其保存到您的桌面上。粘贴以下内容
#!/bin/bash MR_BASE_URL='https://yourmunkireportserver/index.php?' MR_LOGIN='datauser' MR_PASSWORD='secretpassword' COOKIE_JAR=$(curl -s --cookie-jar - --data "login=${MR_LOGIN}&password=${MR_PASSWORD}" ${MR_BASE_URL}/auth/login) SESSION_COOKIE=$(echo $COOKIE_JAR | sed 's/.*PHPSESSID /PHPSESSID=/') while read serial do curl -s --cookie "$SESSION_COOKIE" ${MR_BASE_URL}/module/gsx/recheck_gsx/"$serial" >> gsx_lookup.log done < serials.txt exit 0
确保根据您的服务器信息编辑MR_BASE_URL
、MR_LOGIN
和MR_PASSWORD
。
打开终端,然后粘贴以下内容
chmod +x ~/Desktop/gsx_lookup_all.sh
按回车键使脚本可执行。然后,最后运行该脚本
~/Desktop/gsx_lookup_all.sh
尽管它不会在终端中输出任何内容,但您可以在日志文件gsx_lookup.log
中跟踪进度。
完成后,您需要回到MunkiReport > 列表 > GSX,手动重新核对任何出现错误的Mac的保修状态。