Empowered by expect

希望は体力

GLPI Agent 1.2をAmazon Linux2にインストール

資産管理というか運用管理ツールというか機能豊富なツールであるGLPIがバージョン10に到達しました。
(途中0.9xから9.xへの変更で飛び番しています)

glpi-project.org

これまでもOCS-Inventory NGなどと連携するディスカバリ機能がありましたが10ではNative inventoryが追加されました。
FusionInventoryをforkしたそうで、GLPI10本体のfinal releaseに先駆けてAgentはバージョン1.2まで公開されています。

glpi-project.org

この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
# yuminstall 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サーバーの画面はこのような内容になります。

GLPI10-Inventory

ソフトウェアとしてRPMパッケージも登録されます。
今回のAmazon Linux 2インスタンスは起動直後のVanilla状態ですが、DBサービスを起動した場合は作成したデータベースの情報も登録されます。

Next


今後はリモートコマンドの活用や登録情報のメンテナンスをやってみようと思います。