munkireport 的模块。

v2.1 2020-03-04 20:56 UTC

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_URLMR_LOGINMR_PASSWORD

打开终端,然后粘贴以下内容

chmod +x ~/Desktop/gsx_lookup_all.sh

按回车键使脚本可执行。然后,最后运行该脚本

~/Desktop/gsx_lookup_all.sh

尽管它不会在终端中输出任何内容,但您可以在日志文件gsx_lookup.log中跟踪进度。

完成后,您需要回到MunkiReport > 列表 > GSX,手动重新核对任何出现错误的Mac的保修状态。