オープンソース

一覧へ

5. Linux OSでのSnipe-IT-Agentセットアップ

5.1. Snipe-IT-Agentをインストールする

5.1.1. Snipe-IT-Agentに必要なソフトウェアをインストールする

次のソフトウェアをインストールします。
  • Python3 (バージョン3.9以上)
  • 次のPython3モジュール
    • requests
    • psutil
  • pciutils

クライアントが「Red Hat Enterprise Linux 9」または「AlmaLinux 9」の場合、次のコマンドで上記のソフトウェアをインストールします。
# dnf install python3 python3-requests python3-psutil pciutils

クライアントが「Ubuntu 24.04」の場合、次のコマンドで上記のソフトウェアをインストールします。
# apt install python3 python3-requests python3-psutil pciutils

5.1.2. 公式サイトからSnipe-IT-Agentソフトウェアアーカイブをダウンロードする

下記のURLからソフトウェアアーカイブをダウンロードします。
アーカイブは、snipe-it-agent-バージョン.zipです。


5.1.3. Snipe-IT-Agentソフトウェアアーカイブを展開する

ダウンロードしたアーカイブを、任意のディレクトリ(/usr/local/snipe-it-agentなど)に展開します。
実行例は次の通りです。
$ cd /usr/local/snipe-it-agent
$ unzip /path/to/snipe-it-agent-バージョン.zip

5.1.4. 環境設定ファイルを編集する

環境設定ファイルは、snipe_config.pyです。
環境設定ファイルの書式は「項目名 = 設定値」で、 1行に1項目ずつ記載します。
項目名は大文字と小文字を厳密に区別します。

5.1.4.1. Snipe-ITのAPI設定

「SNIPE_URL」には、SnipeITのAPIのURLを記載します。
典型的なSnipe-ITのインストールでは、https://ホスト名/api/v1 です。
ホスト名の部分を、実際にSnipe-ITが稼働しているホスト名に書き換えます。

設定例は次の通りです。
SNIPE_URL = "https://snipe-it-example.com/api/v1"

「API_TOKEN」には、Snipe-ITのAPIキーを記載します。
Snipe-ITのAPIキーは、Snipe-ITの画面上で生成します。

最初に、APIキー作成用の専用ユーザ(以降APIユーザと呼ぶ)を作成します。
ユーザの設定画面への移動は、メニューバーの「人物」を選択します。
_images/apiuser1.png

右上の「新規作成」をクリックします。
_images/apiuser2.png

ユーザ新規作成画面にて、APIユーザを作成します。
「情報」タブにて、以下を設定します。
  • 名前
    • APIユーザ名を指定します。
  • ユーザ名
    • APIユーザ名を指定します。(名前に指定したものと同じで問題ありません)
  • パスワード
    • APIユーザのログインパスワードを指定します。
  • パスワードを確認
    • APIユーザのログインパスワードを再入力します。
  • このユーザはログインすることができます。
    • チェックする
_images/apiuser3.png

「権限」タブにて、以下を設定します。
  • Global: Super User
    • 拒否
  • Admin
    • 拒否
  • CSV Import
    • 拒否
  • Reports: View
    • 拒否
_images/apiuser4.png
  • Assets
    • View を付与
    • Create を付与
    • Edit を付与
    • その他はすべて拒否
_images/apiuser5.png
  • Models
    • View を付与
    • その他はすべて拒否
_images/apiuser6.png
  • Custom Fields
    • View を付与
    • その他はすべて拒否
_images/apiuser7.png
  • Self
    • Create API Keys を付与
    • その他はすべて拒否
_images/apiuser8.png
  • 上記以外の項目(AccessoriesやConsumablesなど)は、以下のようにすべて拒否
_images/apiuser9.png

画面右下の「保存」ボタンをクリックします。
_images/apiuser10.png

一度ログアウトし、作成したAPIユーザでログインします。

次の手順に沿って、APIキーを生成します。

1. 画面上部のAPIユーザ名の部分をクリックし、開いたタブの「APIキーの管理」をクリックします。
_images/apikey1.png

2. 開いたキー管理画面の左上の「新規作成」をクリックします。
_images/apikey2.png

3. ポップアップしたウィンドウのName欄に適当な一意な名前を入力し、「Create」ボタンをクリックします。
_images/apikey3.png

4. 表示されたAPIキーをクリップボードにコピーします。
  • 非常に長いキーが表示されます
  • ひとたび「Close」ボタンをクリックすると二度と表示されませんので、クリップボードにコピーし忘れたら、一度作成したキーを削除した上で再度作成し直してください
_images/apikey4.png

5. 生成されたキーを環境設定ファイル「API_TOKEN」に記載します。
API_TOKEN = "クリップボードにコピーしたAPIキーをペースト"

以上でSnipe-ITのAPI設定は完了です。

万一、APIユーザのログイン情報が漏洩した場合、APIキーの書き換えがされる恐れがあるため、APIキー作成後は、該当のAPIユーザをログイン不可とすることを推奨します。
ログイン不可とする場合、APIユーザのユーザ情報を変更します。

管理者ユーザでログインし直し、メニューバーの「人物」を選択し、ユーザ設定画面へ移動します。
_images/apiuser1.png

該当のAPIユーザのアクションメニュー内の鉛筆マーク(更新)をクリックします。
_images/apiuser11.png

「情報」タブにて、以下を設定します。
  • このユーザはログインすることができます。
    • チェックを外す
_images/apiuser12.png

画面右下の「保存」ボタンをクリックします。
_images/apiuser13.png

5.1.4.2. カスタムフィールドの設定

以下の項目は、Snipe-ITにて実際に管理する項目です。
  • HostnameField
  • IPField
  • CPUField
  • MemoryField
  • DiskField
  • DiskInfoField
  • AppsField
  • ComputerInfoField
  • DeviceInfoField
  • NetworkInfoField
  • OSinfoField

Snipe-ITで作成したカスタムフィールドのDBフィールド名を記載します。
カスタムフィールドのDBフィールド名は、カスタムフィールド一覧の右上の表の形のアイコンをクリックし、「DBフィールド」をチェックします。
_images/check_dbfield.png

カスタムフィールド一覧の表示項目に「DBフィールド」が表示されます。
ここに表示されている値を、各項目に紐づくように記載します。
_images/display_dbfield.png

設定例は次の通りです。
HostnameField = "_snipeit__2"
IPField = "_snipeit_ip_4"
CPUField = "_snipeit_cpu_5"
MemoryField = "_snipeit_gb_6"
DiskField = "_snipeit_gb_7"
DiskInfoField = "_snipeit__8"
AppsField = "_snipeit__9"
ComputerInfoField = "_snipeit__10"
DeviceInfoField = "_snipeit__11"
NetworkInfoField = "_snipeit__12"
OSinfoField = "_snipeit_os_13"

管理しない項目(カスタムフィールドで設定しなかった項目)については、以下のように""を記載します。
AppsField = ""

5.1.5. Snipe-IT-Agentの実行確認をする

実際にSnipe-ITに資産情報を登録できるか、Snipe-IT-Agentを手動実行して確認します。
次の順で実行します。

1. get_models.pyを実行し、資産情報に紐づける資産モデルのIDを確認します。
書式は次の通りです。
$ python3 get_models.py

実行すると、Snipe-ITに登録されているすべての資産モデルのIDと名前が表示されます。
Snipe-ITの資産モデルの準備 で作成した、実際に紐づける資産モデルのIDを確認します。
$ python3 get_models.py
📋 モデルID一覧:
ID: 2, Name: DesigNET LinuxServer
ID: 1, Name: 資産モデル1

2. get_fieldsets.pyを実行し、資産情報の登録に使うフィールドセットのIDを確認します。
書式は次の通りです。
$ python3 get_fieldsets.py

実行すると、Snipe-ITに登録されているすべてのフィールドセットのIDと名前が表示されます。
Snipe-ITのカスタムフィールドの準備 で作成した、実際に使うフィールドセットのIDを確認します。
$ python3 get_fieldsets.py
📋 フィールドセット一覧(ID → 名前):
 - ID: 1, Name: Asset with MAC Address
 - ID: 2, Name: Linuxサーバ

3. snipe-it-agent.pyを実行し、資産情報を登録します。
書式は次の通りです。
$ python3 snipe-it-agent.py --model-id 資産モデルのID --fieldset-id フィールドセットのID [--asset-name 資産名] [--debug]
snipe-it-agent.pyの引数
引数 説明
--model-id
上記1.で確認した資産モデルのIDを指定
必須
--fieldset-id
上記2.で確認したフィールドセットのIDを指定
必須
--asset-name
Snipe-ITに登録する資産情報の資産名にコンピュータ名(ホスト名)以外の名前を設定したい場合、設定したい名前を指定
任意
--debug
レスポンスデータなどのデバッグ情報を表示
任意

実行すると、Snipe-ITに資産情報を登録した旨のメッセージが表示されます。
$ python3 snipe-it-agent.py --model-id 2 --fieldset-id 2
✅ 新規資産を作成します
Status Code: 200

すでに資産情報が登録されている状態で、snipe-it-agent.pyを実行した場合、該当の資産情報を更新した旨のメッセージが表示されます。
$ python3 snipe-it-agent.py --model-id 2 --fieldset-id 2
✅ 既存資産を更新します (ID: 17)
Status Code: 200

実際に資産情報を登録できたかを、Snipe-ITにて直接確認します。

5.2. Snipe-IT-Agentの実行設定をする

5.2.1. Snipe-IT-Agent定期起動用のcron設定をする

ここでは、管理対象が管理対象がLinuxサーバーの場合に、定期的に情報を取得してSnipe-ITに資産情報を登録または更新できるようにするための設定方法について説明します。
Snipe-IT-Agentのプログラムを手動で都度実行することも可能ですが、定期起動の設定をしておくことで、手間をかけず確実に情報を登録または更新することができます。
ここでは、「毎日午前4時に一度Snipe-IT-Agentを実行する」という設定の仕方を説明します。

設定は、Linux OSの「cron」を使います。
Snipe-IT-Agentを実行するユーザのcrontab設定を開きます。
$ crontab -u ユーザ名 -e

以下を記載して保存します。(Snipe-IT-Agentの実行コマンドについては、Snipe-IT-Agentの実行確認をする 参照)
* 4 * * * python3 /usr/local/snipe-it-agent/snipe-it-agent.py --model-id 資産モデルのID --fieldset-id フィールドセットのID > /dev/null 2>&1
以上で、LinuxサーバーでのSnipe-IT-Agentのセットアップは完了です。
クライアントが複数あり、手動でのセットアップが困難な場合は、複数のLinuxサーバーへまとめてSnipe-IT-Agentを導入するには? を参照してください。
一覧へ