Vesrion: Xanadu
MID ServerはARMでの動作保証はされてなさそうなので趣味です
以前(2018-06)x86-64のWin10にDockerでMID Serverを立ててみましたが今度はARMのMacに直で立ててみます(MacのDockerに立てるのは苦戦中です)
端末スペック
このマシンで頑張ります
機種名: MacBook Air
チップ: Apple M1(Apple Silicon(ARM))
コアの総数: 8(パフォーマンス: 4、効率性: 4)
メモリ: 16 GB
OS: MacOS Sqquoia 15.6.1
購入価格: 2024-08に中古で10万円しないくらい
一旦そのまま立ててみます
MID Server用ユーザーの作成
ServiceNowのインスタンスで ITOM Guided Setup の [Get Started] をクリックして
MID Serverの [Get Started] をクリックして
Create MID Userで [Configure] をクリックして
User namtとPassword, Confirm passwordに値を設定して[Submit]でユーザーを作成します
MID Serverのダウンロードと配置
MID Server - DownloadsからDownload MID Server as ZIP archiveをチェックして表示されるLinux(ZIP)(340MB)をダウンロードします
ダウンロードしたZIPファイルは解凍して置きます 解凍した直下のディレクトリ構成が以下です解凍ディレクトリ名が長いのでmidに変更します
% ls -lr
drwxr-xr-x@ 5 user staff 160 11 29 20:54 META-INF
drwxr-xr-x@ 25 user staff 800 8 7 11:14 agent
% cd agent
% ls -ltr
total 392
-rw-rw-r--@ 1 user staff 883 8 7 09:09 linux-x86-64.xml
-rw-r--r--@ 1 user staff 11453 8 7 09:09 wrapper-tsims-addendum-1.3.txt
-rw-r--r--@ 1 user staff 30545 8 7 09:09 wrapper-development-license-1.3.txt
drwxrwxr-x@ 2 user staff 64 8 7 09:09 work
-rwxr-xr-x@ 1 user staff 1112 8 7 09:09 uninstall.sh
-rwxr-xr-x@ 1 user staff 15 8 7 09:09 stop.sh
-rwxr-xr-x@ 1 user staff 16 8 7 09:09 start.sh
drwxr-xr-x@ 4 user staff 128 8 7 09:09 package
drwxr-xr-x@ 9 user staff 288 8 7 09:09 midinstaller
drwxrwxr-x@ 2 user staff 64 8 7 09:09 logs
drwxr-xr-x@ 499 user staff 15968 8 7 09:09 lib
-rwxr-xr-x@ 1 user staff 367 8 7 09:09 installer.sh
drwxrwxr-x@ 2 user staff 64 8 7 09:09 extlib
-rw-r--r--@ 1 user staff 71757 8 7 09:09 EULA - MID Server.pdf
drwxr-xr-x@ 5 user staff 160 8 7 09:09 etc
-rwxr-xr-x@ 1 user staff 35514 8 7 09:09 configure.sh
-rw-rw-r--@ 1 user staff 8141 8 7 09:09 config.xml
drwxr-xr-x@ 6 user staff 192 8 7 09:09 conf
-rw-r--r--@ 1 user staff 1261 8 7 09:09 boot-config-sample.yaml
-rw-r--r--@ 1 user staff 10609 8 7 09:09 boot-config-reference.yaml
drwxr-xr-x@ 3 user staff 96 8 7 11:07 properties
drwxr-xr-x@ 9 user staff 288 8 7 11:07 jre
drwxr-xr-x@ 8 user staff 256 8 7 11:14 bin
接続先の設定(config.xmlの編集)
urlとmid.instance.usernameとmid.instance.passwordを接続先インスタンスのurlと先ほど作成したMID Server用ユーザーの情報に合わせて編集します
% cp -pr config.xml config.xml.bak`date +%Y%m%d`
% vi config.xml
% diff config.xml config.xml.bak20251130
26,27c26
< <!-- <parameter name="url" value="https://YOUR_INSTANCE.service-now.com/"/>-->
< <parameter name="url" value="https://********.service-now.com/"/>
---
> <parameter name="url" value="https://YOUR_INSTANCE.service-now.com/"/>
32,35c31,32
< <!-- <parameter name="mid.instance.username" value="YOUR_INSTANCE_USER_NAME_HERE"/>-->
< <parameter name="mid.instance.username" value="mid-user"/>
< <!-- <parameter secure="true" name="mid.instance.password" value="YOUR_INSTANCE_PASSWORD_HERE"/>-->
< <parameter secure="true" name="mid.instance.password" value="********"/>
---
> <parameter name="mid.instance.username" value="YOUR_INSTANCE_USER_NAME_HERE"/>
> <parameter secure="true" name="mid.instance.password" value="YOUR_INSTANCE_PASSWORD_HERE"/>
起動
x86-64のCPUだったらこれだけで起動するはずなので試しに agentディレクトリで ./start.sh してみます
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
Unable to locate any of the following binaries:
/Users/user/Downloads/mid.xanadu-07-02-2024__patch9b-07-28-2025_08-07-2025_0908.linux.x86-64/agent/bin/./wrapper-macosx-arm-64
/Users/user/Downloads/mid.xanadu-07-02-2024__patch9b-07-28-2025_08-07-2025_0908.linux.x86-64/agent/bin/./wrapper-macosx-arm-32
/Users/user/Downloads/mid.xanadu-07-02-2024__patch9b-07-28-2025_08-07-2025_0908.linux.x86-64/agent/bin/./wrapper
想像通りエラーになりました wrapperを探しに行って見つからないとなっています ./bin/mid.shの中を見ると一応macos用の処理が入っているようです Intel時代の名残かも知れません
530 # Resolve the OS (needs to be done before any call to showUsage, checkInstalled, etc.)
531 DIST_OS=`uname -s | $TR_BIN "[A-Z]" "[a-z]" | $TR_BIN -d ' '`
532 case "$DIST_OS" in
533 'sunos')
534 DIST_OS="solaris"
535 ;;
536 'hp-ux' | 'hp-ux64')
537 # HP-UX needs the XPG4 version of ps (for -o args)
538 DIST_OS="hpux"
539 UNIX95=""
540 export UNIX95
541 PATH=$PATH:/usr/bin
542 ;;
543 'darwin')
544 DIST_OS="macosx"
545 ;;
546 'unix_sv')
547 DIST_OS="unixware"
548 ;;
549 'os/390')
550 DIST_OS="zos"
551 ;;
552 'linux')
553 DIST_OS="linux"
554 ;;
555 esac
M1(Apple Silicon(ARM))用の設定
参考にしたサイト
色々調べて…以下の記事に書いてあることをそのまま試して成功しました(wrapperのバージョンを少し変えただけでも失敗しましたご留意ください)
上記WEBサイトに書いてある通りに進めます
Wrapperのダウンロード
Tanuki Java Service Wrapperをダウンロードします
wrapper-macosx-arm-64-3.5.51.tar.gz 2022-11-10 19:14 707K
ここで最新のwrapperやdelta versionを試したらエラーになってハマりました
tar.gzの直リンクは以下です
ダウンロードした wrapper-macosx-arm-64-3.5.51.tar.gz は解凍して置きます
ライセンスに関してはコミュニティライセンス(GPL)扱いと判断しました
コミュニティライセンス使用許諾契約:
このライセンスは、オープンソースプロジェクト用に適しているライセンスであり、 一般にある多くのオープンソースプロジェクトでよく使われている GPL v2 (General Public License ver.2) と GPL v3 (General Public License ver.3) ライセンスをベースにしています。
JDKのダウンロード
次にAmazon Corretto 17 JDK(186.9MB)をダウンロードします いつの間にかAmazonがフリーのJDKを開発/配布していてびっくりしました
macOS aarch64 JDK pkg tar.gz
直リンクはこちらです
ダウンロードした amazon-corretto-17.0.17.10.1-macosx-aarch64.tar.gz は解凍して置きます
Wrapperの配置
wrapper-macosx-arm-64-3.5.51.tar.gz を解凍して出来たディレクトリの./binにある wrapper (拡張子無しの実行体)を MID Serverの agent/bin にコピーします この作業で起動時のエラーは消えるようです
同様に解凍して出来たディレクトリの./libにある libwrapper.dylib をMID Serverの agent/lib にコピーします
JDKの配置
MID Serverの agent に amazon-corretto-17 というディレクトリを作成し、amazon-corretto-17.0.17.10.1-macosx-aarch64.tar.gz を解凍して出来たディレクトリ ./Contents/Home 以下のディレクトリとファイルを全てコピーします(MID Serverの下に ./jre とは別にJDK環境を追加する感じです)
設定ファイルの編集
MID Serverの ./conf ディレクトリ以下にある wrapper-jvm.conf の
set.SNC_JVM_ARCH=x86-64
を以下に変更します
set.SNC_JVM_ARCH=arm-64
また同じ場所にある wrapper-override.conf に以下の2行を追加します(confファイル内のどこでもいいです)
wrapper.java.command=amazon-corretto-17.jdk/bin/java
wrapper.java.additional.148=-Djdk.lang.Process.launchMechanism=POSIX_SPAWN
起動
agent直下で起動する前に xattr というMacの拡張ファイル属性コマンドを叩いてから ./start.sh を実行します 参考にしたWEBサイトの手順通り sudo をつけてみました
% sudo xattr -dr com.apple.quarantine .
% sudo ./start.sh
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
Starting ServiceNow MID Server...
Waiting for ServiceNow MID Server.........
running: PID:17836
ServiceNowのインスタンスで Discovery - MID Servers を確認したらレコードが増えていました
感想
最近はM1でも色々出来るようになっているはずと思っていたのですが2日ハマりました ARMで立てたい需要はまあまああるのかなと思って試してみました


