序章

IT業界では、資産管理は、資産の取得、保守、保管、廃棄を含むライフサイクル全体にわたって資産を追跡するプロセスです。 特定のアセットはさまざまですが、焦点は通常、ハードウェアまたはソフトウェアの個々の部分、ライセンス、およびデジタルアートワークなどのファイルベースのリソースにあります。

Snipe-IT — IT資産管理用に特別に設計された無料のオープンソースアプリケーション—は、ライセンス、アクセサリ、消耗品、およびコンポーネントを追跡するためのWebベースのインターフェイスを提供します。 Snipe-ITには、構成可能なグループレベルのアクセス許可、カスタマイズ可能なレポート機能、およびコマンドラインまたはサードパーティアプリケーションからSnipe-ITに接続、管理、および拡張するためのJSONRESTAPIを備えたユーザーベースのアカウントが含まれています。

このチュートリアルでは、Snipe-ITをダウンロード、インストール、および構成してから、Snipe-ITに初めてログインするための管理者ユーザーアカウントを作成します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

ステップ1—サーバーの準備

Snipe-ITをダウンロードする前に、いくつかの追加のPHPライブラリをインストールし、MySQLデータベースとデータベースユーザーSnipe-ITがデータの保存に使用するデータベースを作成してサーバーを準備します。

Snipe-ITはLaravelPHPフレームワークに基づいて構築されているため、追加のPHPライブラリのインストールと管理にはComposer依存関係マネージャーが必要です。

apt-getを使用して、composerおよびunzipをインストールします。これは、Zipアーカイブからファイルを抽出するために必要なユーティリティです。

  1. sudo apt-get install composer unzip

次に、Snipe-ITが依存する追加のPHPモジュールをインストールします。

  1. sudo apt-get install php7.0-mbstring php7.0-xml php7.0-mcrypt php7.0-gd php7.0-zip php7.0-curl php7.0-bcmath

追加のパッケージはPHPに以下を提供します。

次に、コマンドラインmysqlユーティリティを使用して、rootデータベースユーザーとしてMySQLにログインします。

  1. mysql -u root -p

ローカルホスト127.0.0.1snipeitという名前の新しいMySQLユーザーを作成し、ユーザーにパスワードを割り当てます。

  1. create user snipeit@127.0.0.1 identified by 'snipeit_user_password';

次に、Snipe-ITがデータを保存するsnipeitdbという名前のデータベースを作成します。

  1. create database snipeitdb;

snipeitdbデータベース内のすべてのテーブルに対するすべての権限をsnipeitユーザーに付与して、Snipe-ITがデータベースに対して必要なアクションを実行する権限を持つようにします。

  1. grant all on snipeitdb.* to snipeit@127.0.0.1;

最後に、flush privilegesコマンドを使用して許可テーブルを再ロードして変更をアクティブにし、ユーティリティを終了します。

  1. flush privileges;
  2. exit;

これで、Snipe-ITが正しく機能するために必要な追加のPHPライブラリとMySQLデータベースがサーバーに追加されたので、Snipe-IT自体をダウンロードして構成しましょう。

ステップ2—Snipe-ITのダウンロードと構成

公式インストール手順に従って、Gitを使用してSnipe-ITの最新バージョンをダウンロードします。 Gitは既存のディレクトリが空の場合にのみクローンを作成するため、lsを使用して、前提条件でSnipe-ITのNginxサーバーブロック用に構成したディレクトリの内容を表示します。

  1. ls /var/www/example.com/html/

ディレクトリが空でない場合は、基本的なLinuxナビゲーションおよびファイル管理コマンドを使用して、今すぐクリアしてください。 mvはコンテンツを別の場所に移動し、rmはそれらを完全に削除します。

ディレクトリが空になったら、GitHub公式リポジトリからSnipe-ITをダウンロードします。

  1. git clone https://github.com/snipe/snipe-it /var/www/example.com/html/

出力は、クローンを作成している場所を確認し、Gitがコピーする予定のオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。

Output from git clone
Cloning into '/var/www/example.com/html/'... remote: Counting objects: 70975, done. remote: Compressing objects: 100% (62/62), done. remote: Total 70975 (delta 20), reused 37 (delta 15), pack-reused 70897 Receiving objects: 100% (70975/70975), 67.04 MiB | 14.35 MiB/s, done. Resolving deltas: 100% (44264/44264), done. Checking connectivity... done.

これでSnipe-ITの完全なコピーができましたが、インストールを開始する前に、Nginxがstoragepublic/uploads、およびbootstrap/cacheディレクトリにアクセスできるようにする必要があります。 Snipe-ITがキャッシュ、ログ、アップロードされたファイルを書き込む場所です。

インストールディレクトリに移動します。

  1. cd /var/www/example.com/html/

chown-Rオプションとともに使用して、3つのディレクトリすべてでユーザーとグループの所有権www-data — Nginxのユーザーとグループ—に再帰的に変更します。

  1. sudo chown -R www-data:www-data storage
  2. sudo chown -R www-data:www-data public/uploads
  3. sudo chown -R www-data:www-data bootstrap/cache

次に、chmod-Rフラグを使用して、これらのディレクトリに再帰的に権限を設定し、所有者、読み取り、実行可能ファイルによって読み取り、書き込み、実行可能にします。彼らのグループによって、そして世界によって読み取りおよび実行可能。

  1. sudo chmod -R 755 storage
  2. sudo chmod -R 755 public/uploads
  3. sudo chmod -R 755 bootstrap/cache

Nginxにファイルとディレクトリのアクセス許可が正しく設定されたら、composer installを実行する準備が整います。これにより、Snipe-ITのcomposer.jsonファイル内の追加の依存関係のリストが読み取られ、それらが解決されて[ X214X]。

--no-devオプションは、composerに、Snipe-ITの実行には必要ではないが、Snipe-ITで開発を行う場合に役立つ依存関係を無視するように指示します。

--prefer-sourceオプションは、composerに、バージョン管理リポジトリが存在する場合は、それらのリポジトリから依存関係をダウンロードするように指示します。

  1. composer install --no-dev --prefer-source

出力は、composerがインストールを試みる各依存関係を報告し、依存関係が正常にクローン化されたかどうかを示し、ComposerがサポートするPHPアプリケーションでのクラスの読み込みのパフォーマンスを向上させる最適化された自動読み込みファイルを作成して終了します。 。

Output from composer install --no-dev --prefer-source
Loading composer repositories with package information Installing dependencies from lock file - Installing symfony/finder (v3.3.10) Cloning 773e19a491d97926f236942484cb541560ce862d ... Generating optimized autoload files

これで、インストールの構成を開始できます。 Snipe-ITに同梱されている.env.exampleファイルのコピーを作成することから始めます。 これは、Snipe-ITが環境変数とタイムゾーン、ベースURL、ログサイズなどの設定を保存する場所です。 次に、.envを開いて編集します。

  1. cp .env.example .env
  2. nano .env

次を探します。

.env
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=null
...

APP_URLは、インストールのベースURLをSnipe-ITに通知します。 nullをドメイン名に置き換えます。

.env
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=https://example.com
...

次に、次の行を見つけます。

.env
...
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
...

ここで、ステップ1で作成したMySQLデータベースに接続する方法をSnipe-ITに指示します。

Snipe-ITは、デフォルトでローカルホストで実行されているMySQLデータベースに接続するように構成されているため、最初の2行を変更する必要はありません。

DB_DATABASEDB_USERNAMEステップ1で作成したMySQLデータベースとデータベースユーザーの名前に置き換え、DB_PASSWORDを割り当てたパスワードに置き換えますデータベースユーザー。

DB_PREFIXは、Snipe-ITのデータベースのテーブル名にカスタムプレフィックスを追加します。 この設定は必須ではありませんが、デフォルトのデータベーステーブル名に依存する一部の自動攻撃を阻止する可能性があります。 カスタムプレフィックスを追加する場合を除いて、これをデフォルトのnull値のままにします。

.env
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=snipeitdb
DB_USERNAME=snipeit
DB_PASSWORD=snipeit_user_password
DB_PREFIX=null

ファイルを閉じて保存します。

次に、artisan migrateを使用して、MySQLにSnipe-ITのデフォルトのデータベーススキーマを入力します。 このコマンドは、/var/www/example.com/html/database/migrations/にあるファイルを使用してデータベース移行を実行するようにLaravelに指示します。

  1. sudo php artisan migrate

プロンプトが表示されたら、yesと入力して、移行を実行することを確認します。

出力には、完了した各移行の名前がリアルタイムで報告されます。

Output from php artisan migrate
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migration table created successfully. ... Migrated: 2017_11_08_123942_labels_display_company_name

最後に、artisan key:generateを使用して、インストール用のアプリケーションキーを作成します。 Laravelはキーの値を.envファイルのAPP_KEY行に書き込み、Snipe-ITはセッショントークンなどのデータを暗号化および復号化するときにキーを使用します。

  1. php artisan key:generate

もう一度、プロンプトが表示されたら、yesと入力して、アプリケーションキーを生成することを確認します。

終了すると、出力に生成されたキーが表示され、値が.envファイルに書き込まれたことが示されます。

Output from php artisan key:generate
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Application key [base64:rxP+jS3Q8qtM9eBktXtS/zqrrXVY1LEMxoZkbV35Al0=] set successfully.

インストールと構成が完了したら、Snipe-ITにサービスを提供するようにNginxを変更します。

ステップ3—Nginxを構成する

WebブラウザでSnipe-ITを起動する前に、まずNginxをSnipe-ITのルートWebアプリケーションディレクトリにポイントし、着信リクエストをSnipe-ITのリクエストハンドラにリダイレクトする必要があります。

Snipe-ITのNginxサーバーブロック用に作成した構成ファイルを開くことから始めます。

  1. sudo nano /etc/nginx/sites-available/example.com

サーバーブロックのルートディレクトリを設定するディレクティブを探します。

/etc/nginx/sites-available/example.com
server {
    ...
    root /var/www/example.com/html;
    ...
}

Snipe-ITのWebアプリケーションファイルは、GitHubからプロジェクトのクローンを作成したときに自動的に作成されたpublicディレクトリにあります。 このサーバーブロックのルートディレクトリとしてpublicを使用するようにNginxを変更します。

/etc/nginx/sites-available/example.com
server {
    ...
    root /var/www/example.com/html/public;
    ...
}

次に、デフォルトのロケーションブロックを見つけます。

/ etc / nginx / sites-enabled / snipe-it
server {
    ...
    location / {
        try_files $uri $uri/ =404;
    }
    ...
}

このブロックを変更して、すべての要求をSnipe-ITの要求ハンドラーに渡して処理します。

/ etc / nginx / sites-enabled / snipe-it
server {
    ...
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    ...
}

ファイルを保存して閉じます。

Nginxを再起動する前に、新しい構成をテストしてください。

  1. sudo nginx -t

出力には、syntax is okが報告されます。 そうでない場合は、画面上のメッセージに従って追加のヘルプを参照してください。

ここで、Nginxを再起動して変更を適用します。

  1. sudo systemctl reload nginx

最後に、Nginxがバックアップされて実行されていることを確認します。

  1. sudo systemctl status nginx

出力は、サービスがactive (running)であることを示しているはずです。 そうでない場合は、続行する前に前の手順をたどって問題を解決してください

Nginxが完全に構成されたので、Snipe-ITのWebセットアップユーティリティにログインしてインストールを完了します。

ステップ4—プリフライトユーティリティを使用したSnipe-ITのセットアップ

インストールを完了するには、Webブラウザでhttps://example.comを指定します。 これにより、Snipe-ITの Pre-Flight Utilityステップ1に移動します。ここで、Snipe-ITはインストールのクイックテストを実行して、すべてが正しく構成されていることを確認します。

この画面には、 Pre-Flight がテストした各設定、設定のテスト結果、および設定を説明する短いメモを示す表が表示されます。 Valid 列の緑色のチェックマークは、設定が正しいことを示します。 Valid 列で設定がピンク色で強調表示され、赤い X でマークされている場合は、その設定に問題があることを示しています。 続行する前に、Snipe-ITの指示に従って問題を解決してください。

電子メール用にSnipe-ITを構成していないため、画面の右下隅にある青い次へ:データベーステーブルの作成ボタンをクリックして、インストールを続行できます。

Pre-Flightステップ2で、Snipe-ITはデータベースをチェックし、必要に応じて移行を実行します。 このチュートリアルステップ3でartisanを使用してデータベースを手動で移行したため、 Pre-Flight は、データベースがですでにセットアップされていることを示します。 および移行するものがない

画面の右下隅にある青い次へ:ユーザーの作成ボタンを押します。

Pre-Flightステップ3で、Snipe-ITはいくつかの一般的なアプリケーション設定を入力し、最初の管理ユーザーアカウントを作成するように求めます。

サイト名フィールドに、Snipe-ITですべての画面の上部に表示するラベルを入力します。 これはあなたの会社の名前かもしれませんし、 Sammy’s AssetManagementのようなもっとわかりやすい名前かもしれません。

メールドメインフィールドに、Snipe-ITが送信メールに使用するドメインを入力し、メールフォーマットフィールドに、Snipe-ITがフォーマットする方法を選択します。送信メッセージのTo:ヘッダー。

フィールドに名前を入力し、メールフィールドにメールアドレスを入力します。

最後に、アカウントに関連付けるユーザー名をユーザー名フィールドに入力し、使用するパスワードをパスワードフィールドに入力します。 続行する前に、必ずパスワードの確認フィールドに同じパスワードを入力し、資格情報をメモしてください。 Snipe-ITにログインするには、両方が必要です。

このアカウントは自分で作成しているため、上記のメールアドレスにクレデンシャルをメールで送信するのチェックを外したままにしておくことができます。

すべての情報を入力したら、画面の右下隅にある青い次へ:ユーザーの保存ボタンをクリックします。

Pre-Flightステップ4で、Snipe-ITは入力した一般的なアプリケーション設定を保存し、新しい管理ユーザーを作成して、メインダッシュボードにログインします。

この時点で、インストールが完了し、Snipe-ITを使用して自分またはクライアントのIT資産を管理できるようになります。

結論

この記事では、LEMPスタックをセットアップし、Let’s Encrypt TLS / SSL証明書でNginxを保護し、Snipe-ITをインストールして構成し、管理ユーザーアカウントを作成して、メインのSnipe-ITダッシュボードにログインしました。

Snipe-ITへのアセットの追加と編集については、アセット管理の公式ガイドを参照してください。

Snipe-ITでのユーザーアカウントの操作については、ユーザーの管理に関する公式ドキュメントを参照してください。

または、その他の質問については、公式のSnipe-ITユーザーズマニュアルを確認してください。