資産管理というか運用管理ツールというか機能豊富なツールであるGLPIがバージョン10に到達しました。
(途中0.9xから9.xへの変更で飛び番しています)
これまでもOCS-Inventory NGなどと連携するディスカバリ機能がありましたが10ではNative inventoryが追加されました。
FusionInventoryをforkしたそうで、GLPI10本体のfinal releaseに先駆けてAgentはバージョン1.2まで公開されています。
このGLPI Agent 1.2をAmazon Linux 2のインスタンスに導入してみたので手順を残しておきます。
標準インストーラーではNG
perlスクリプトのインストーラーが用意されています。まずはこちらを試してみます。
# wget https://github.com/glpi-project/glpi-agent/releases/download/1.2/glpi-agent-1.2-linux-installer.pl # perl glpi-agent-1.2-linux-installer.pl --install Not supported linux distribution
...ディストリビューション判定でひっかかりますね...Alma Linuxは行けたのですが。
次の手としてRPMパッケージからのインストールを試みます。
RPMパッケージからインストール
まずは準備として、Perl modulesの依存が多いのでEPELを有効にしてyumからインストール出来るようにしておきます。
# amazon-linux-extras install epel # yum repolist Loaded plugins: extras_suggestions, langpacks, priorities, update-motd 209 packages excluded due to repository priority protections repo id repo name status amzn2-core/2/x86_64 Amazon Linux 2 core repository 27,693 amzn2extra-docker/2/x86_64 Amazon Extras repo for docker 56 amzn2extra-epel/2/x86_64 Amazon Extras repo for epel 1 amzn2extra-kernel-5.10/2/x86_64 Amazon Extras repo for kernel-5.10 143 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,542+209 repolist: 41,435
ではRPMをダウンロードしてインストールしていきましょう。
# wget https://github.com/glpi-project/glpi-agent/releases/download/1.2/glpi-agent-1.2-1.noarch.rpm # yum install glpi-agent-1.2-1.noarch.rpm
Perl modulesが大量にインストールされますが正常にインストールできました。
他のパッケージも同様にインストールしていきます。
# yum install glpi-agent-task-collect-1.2-1.noarch.rpm # yum install glpi-agent-task-deploy-1.2-1.noarch.rpm # yum install glpi-agent-cron-1.2-1.noarch.rpm # yum install glpi-agent-task-network-1.2-1.noarch.rpm
設定
通信先サーバーなどの設定を行います。
tagのところにagentをインストールした機器自身のFQDNを設定します。
ここで設定しているuser, passwordはGLPIサーバー側でbasic認証を設定している場合に必要です。GLPIのログインアカウントではありません。
# diff /etc/glpi-agent/agent.cfg /etc/glpi-agent/agent.cfg.20220422 12c12 < server = http://glpi-server.example.com/ --- > #server = http://server.domain.com/front/inventory.php 16c16 < local = /tmp --- > #local = /tmp 72c72 < user = glpi --- > user = 74c74 < password = foobar --- > password = 95c95 < httpd-trust = 127.0.0.1/32,GLPIサーバーのIPアドレス/32 --- > httpd-trust = 117c117 < tag = amzn2.example.com --- > tag =
ではAgentを起動してします。
# systemctl enable glpi-agent # systemctl start glpi-agent # systemctl status glpi-agent ● glpi-agent.service - GLPI agent Loaded: loaded (/usr/lib/systemd/system/glpi-agent.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2022-04-22 07:05:17 UTC; 45min ago Docs: man:glpi-agent Main PID: 4184 (glpi-agent (tag) CGroup: /system.slice/glpi-agent.service └─4184 glpi-agent (tag amzn2.example.com): waiting Apr 22 07:17:15 amzn2.example.com glpi-agent[4207]: running task Inventory Apr 22 07:17:15 amzn2.example.com glpi-agent[4207]: New inventory from amzn2.example.com-2022-04-22-05-38-59 ....com) Apr 22 07:17:16 amzn2.example.com glpi-agent[4207]: Inventory saved in /tmp/amzn2.example.com-2022-04-22-05-38-59.xml Apr 22 07:17:17 amzn2.example.com glpi-agent[4252]: running task RemoteInventory Apr 22 07:17:17 amzn2.example.com glpi-agent[4184]: target local0: next run: Fri Apr 22 08:11:07 2022 - /tmp Apr 22 07:35:55 amzn2.example.com glpi-agent[4184]: target server0: server http://glpi-server.example.com/glpi/ Apr 22 07:35:55 amzn2.example.com glpi-agent[4184]: sending contact request to server0 Apr 22 07:35:55 amzn2.example.com glpi-agent[4336]: running task Inventory Apr 22 07:35:55 amzn2.example.com glpi-agent[4336]: New inventory from amzn2.example.com-2022-04-22-05-38-59 ....com) Apr 22 07:35:58 amzn2.example.com glpi-agent[4184]: target server0: next run: Sat Apr 23 07:23:46 2022 - http://mgmt...glpi/ Hint: Some lines were ellipsized, use -l to show in full.
動作確認
しばらくするとtarget local0の処理が行われ、インベントリ情報が/tmp以下のファイルに出力されます。
# ls -l /tmp total 276 -rw-r--r-- 1 root root 264870 Apr 22 10:01 amzn2.example.com-2022-04-22-05-38-59.xml
さらにtarget server0の処理が行われ、GLPIサーバーに登録が行われます。
GLPIサーバーの画面はこのような内容になります。
ソフトウェアとしてRPMパッケージも登録されます。
今回のAmazon Linux 2インスタンスは起動直後のVanilla状態ですが、DBサービスを起動した場合は作成したデータベースの情報も登録されます。
Next
今後はリモートコマンドの活用や登録情報のメンテナンスをやってみようと思います。