Ubuntu16.04にSnipe-ITをインストールする方法
序章
IT業界では、資産管理は、資産の取得、保守、保管、廃棄を含むライフサイクル全体にわたって資産を追跡するプロセスです。 特定のアセットはさまざまですが、焦点は通常、ハードウェアまたはソフトウェアの個々の部分、ライセンス、およびデジタルアートワークなどのファイルベースのリソースにあります。
Snipe-IT — IT資産管理用に特別に設計された無料のオープンソースアプリケーション—は、ライセンス、アクセサリ、消耗品、およびコンポーネントを追跡するためのWebベースのインターフェイスを提供します。 Snipe-ITには、構成可能なグループレベルのアクセス許可、カスタマイズ可能なレポート機能、およびコマンドラインまたはサードパーティアプリケーションからSnipe-ITに接続、管理、および拡張するためのJSONRESTAPIを備えたユーザーベースのアカウントが含まれています。
このチュートリアルでは、Snipe-ITをダウンロード、インストール、および構成してから、Snipe-ITに初めてログインするための管理者ユーザーアカウントを作成します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- このUbuntu16.04初期サーバーセットアップチュートリアルに従ってセットアップされた1つのUbuntu16.04サーバー。これには、sudo非rootユーザーとファイアウォールが含まれます。
- このLEMPインストールガイドに従って構成されたLEMPスタック。
- サーバー用に設定された次のDNSレコード。 それらを追加する方法の詳細については、このホスト名チュートリアルに従うことができます。
サーバーのパブリックIPアドレスを指すexample.comのAレコード。 サーバーのパブリックIPアドレスを指すwww.example.comのAレコード。 - この設定に従って、SSL証明書で保護されたNginxは、Ubuntu16.04チュートリアルでNginxサーバーブロックを使用して暗号化します。 Nginxセットアップチュートリアルのステップ4でオプション2
Redirect
を選択してください。これにより、Snipe-ITインストールでHTTPSへの自動リダイレクトが提供されます。
ステップ1—サーバーの準備
Snipe-ITをダウンロードする前に、いくつかの追加のPHPライブラリをインストールし、MySQLデータベースとデータベースユーザーSnipe-ITがデータの保存に使用するデータベースを作成してサーバーを準備します。
Snipe-ITはLaravelPHPフレームワークに基づいて構築されているため、追加のPHPライブラリのインストールと管理にはComposer依存関係マネージャーが必要です。
apt-get
を使用して、composer
およびunzip
をインストールします。これは、Zipアーカイブからファイルを抽出するために必要なユーティリティです。
- sudo apt-get install composer unzip
次に、Snipe-ITが依存する追加のPHPモジュールをインストールします。
- 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に以下を提供します。
- php7.0-mbstring-256文字で表現できない言語を処理するためのマルチバイト文字列モジュール
- php7.0-xml-ドキュメントオブジェクトモデル(DOM) APIを介してXMLドキュメントを操作するためのDOMモジュール、XMLをに変換するためのSimpleXMLモジュールプロパティセレクターと配列イテレーターで操作できるオブジェクト、 Web分散データ交換(WDDX)形式のデータを交換するための WDDXモジュール、
XMLパーサーモジュール[X384X ]はXMLドキュメントを解析するためのものであり、XSLモジュールはXSLT変換を実行するためのものです - php7.0-mcrypt-ブロック暗号アルゴリズムを操作するためのMcryptモジュール
- php7.0-gd-画像処理用のGDモジュール
- php7.0-zip-Zip圧縮されたアーカイブを操作するためのZipモジュール
- php7.0-curl-さまざまなプロトコルを介してサーバーに接続および通信するためのクライアントURLライブラリモジュール
- php7.0-bcmath- BCMath任意精度数学モジュールは、小数点以下2147483647までの任意のサイズと精度の数値を処理します。
次に、コマンドラインmysql
ユーティリティを使用して、rootデータベースユーザーとしてMySQLにログインします。
- mysql -u root -p
ローカルホスト127.0.0.1
にsnipeitという名前の新しいMySQLユーザーを作成し、ユーザーにパスワードを割り当てます。
- create user snipeit@127.0.0.1 identified by 'snipeit_user_password';
次に、Snipe-ITがデータを保存するsnipeitdb
という名前のデータベースを作成します。
- create database snipeitdb;
snipeitdb
データベース内のすべてのテーブルに対するすべての権限をsnipeitユーザーに付与して、Snipe-ITがデータベースに対して必要なアクションを実行する権限を持つようにします。
- grant all on snipeitdb.* to snipeit@127.0.0.1;
最後に、flush privileges
コマンドを使用して許可テーブルを再ロードして変更をアクティブにし、ユーティリティを終了します。
- flush privileges;
- exit;
これで、Snipe-ITが正しく機能するために必要な追加のPHPライブラリとMySQLデータベースがサーバーに追加されたので、Snipe-IT自体をダウンロードして構成しましょう。
ステップ2—Snipe-ITのダウンロードと構成
公式インストール手順に従って、Gitを使用してSnipe-ITの最新バージョンをダウンロードします。 Gitは既存のディレクトリが空の場合にのみクローンを作成するため、ls
を使用して、前提条件でSnipe-ITのNginxサーバーブロック用に構成したディレクトリの内容を表示します。
- ls /var/www/example.com/html/
ディレクトリが空でない場合は、基本的なLinuxナビゲーションおよびファイル管理コマンドを使用して、今すぐクリアしてください。 mv
はコンテンツを別の場所に移動し、rm
はそれらを完全に削除します。
ディレクトリが空になったら、GitHubの公式リポジトリからSnipe-ITをダウンロードします。
- git clone https://github.com/snipe/snipe-it /var/www/example.com/html/
出力は、クローンを作成している場所を確認し、Gitがコピーする予定のオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。
Output from git cloneCloning 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がstorage
、public/uploads
、およびbootstrap/cache
ディレクトリにアクセスできるようにする必要があります。 Snipe-ITがキャッシュ、ログ、アップロードされたファイルを書き込む場所です。
インストールディレクトリに移動します。
- cd /var/www/example.com/html/
chown
を-R
オプションとともに使用して、3つのディレクトリすべてでユーザーとグループの所有権をwww-data
— Nginxのユーザーとグループ—に再帰的に変更します。
- sudo chown -R www-data:www-data storage
- sudo chown -R www-data:www-data public/uploads
- sudo chown -R www-data:www-data bootstrap/cache
次に、chmod
と-R
フラグを使用して、これらのディレクトリに再帰的に権限を設定し、所有者、読み取り、実行可能ファイルによって読み取り、書き込み、実行可能にします。彼らのグループによって、そして世界によって読み取りおよび実行可能。
- sudo chmod -R 755 storage
- sudo chmod -R 755 public/uploads
- sudo chmod -R 755 bootstrap/cache
Nginxにファイルとディレクトリのアクセス許可が正しく設定されたら、composer install
を実行する準備が整います。これにより、Snipe-ITのcomposer.json
ファイル内の追加の依存関係のリストが読み取られ、それらが解決されて[ X214X]。
--no-dev
オプションは、composer
に、Snipe-ITの実行には必要ではないが、Snipe-ITで開発を行う場合に役立つ依存関係を無視するように指示します。
--prefer-source
オプションは、composer
に、バージョン管理リポジトリが存在する場合は、それらのリポジトリから依存関係をダウンロードするように指示します。
- composer install --no-dev --prefer-source
出力は、composer
がインストールを試みる各依存関係を報告し、依存関係が正常にクローン化されたかどうかを示し、ComposerがサポートするPHPアプリケーションでのクラスの読み込みのパフォーマンスを向上させる最適化された自動読み込みファイルを作成して終了します。 。
Output from composer install --no-dev --prefer-sourceLoading 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
を開いて編集します。
- cp .env.example .env
- nano .env
次を探します。
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=null
...
APP_URL
は、インストールのベースURLをSnipe-ITに通知します。 null
をドメイン名に置き換えます。
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=https://example.com
...
次に、次の行を見つけます。
...
# --------------------------------------------
# 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_DATABASE
とDB_USERNAME
をステップ1で作成したMySQLデータベースとデータベースユーザーの名前に置き換え、DB_PASSWORD
を割り当てたパスワードに置き換えますデータベースユーザー。
DB_PREFIX
は、Snipe-ITのデータベースのテーブル名にカスタムプレフィックスを追加します。 この設定は必須ではありませんが、デフォルトのデータベーステーブル名に依存する一部の自動攻撃を阻止する可能性があります。 カスタムプレフィックスを追加する場合を除いて、これをデフォルトのnull
値のままにします。
# --------------------------------------------
# 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に指示します。
- 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はセッショントークンなどのデータを暗号化および復号化するときにキーを使用します。
- 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サーバーブロック用に作成した構成ファイルを開くことから始めます。
- sudo nano /etc/nginx/sites-available/example.com
サーバーブロックのルートディレクトリを設定するディレクティブを探します。
server {
...
root /var/www/example.com/html;
...
}
Snipe-ITのWebアプリケーションファイルは、GitHubからプロジェクトのクローンを作成したときに自動的に作成されたpublic
ディレクトリにあります。 このサーバーブロックのルートディレクトリとしてpublic
を使用するようにNginxを変更します。
server {
...
root /var/www/example.com/html/public;
...
}
次に、デフォルトのロケーションブロックを見つけます。
server {
...
location / {
try_files $uri $uri/ =404;
}
...
}
このブロックを変更して、すべての要求をSnipe-ITの要求ハンドラーに渡して処理します。
server {
...
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
...
}
ファイルを保存して閉じます。
Nginxを再起動する前に、新しい構成をテストしてください。
- sudo nginx -t
出力には、syntax is ok
が報告されます。 そうでない場合は、画面上のメッセージに従って追加のヘルプを参照してください。
ここで、Nginxを再起動して変更を適用します。
- sudo systemctl reload nginx
最後に、Nginxがバックアップされて実行されていることを確認します。
- 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ユーザーズマニュアルを確認してください。