> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 初期セットアップ

本ガイドでは、SambaRack Manager ソフトウェアの初期セットアップと動作確認について説明します。この作業では、設定ディレクトリの初期化、暗号鍵 (encryption key) の生成、および必要なファイルの作成を行います。

セットアップの全体の流れは次のとおりです。

1. SambaRack Manager ソフトウェアのインストール
2. **初期セットアップと動作確認** (このページ)
3. SambaRack Manager インベントリへの SambaRack の追加
4. SambaRack Manager でのデバイス認証情報の設定

## 初期セットアップ

以下の手順に従って、SambaRack Manager の設定を初期化し、動作を確認します。

### ステップ 1: 設定の初期化

初期化コマンドを実行して snctl をセットアップします。

```bash theme={}
snctl config init
```

この対話型ウィザードでは、以下の項目の入力を求められます。

* **フォルダの場所** (デフォルト: `~/.snctl`): 設定ファイルの保存先。このディレクトリが存在しない場合は作成されます。
* **サービスアカウント** (任意): GCS アクセス用のサービスアカウント。
* **ログの場所** (任意): ログの保存先。

> [!NOTE]
>
> 指定したフォルダの場所にすでに設定ファイルが存在する場合、初期化は中止されます。

完了すると、設定ディレクトリには以下のファイルが作成されます。

```text theme={}
.snctl/
  ├── config.yaml                 # Main configuration file
  ├── encryption.key              # AES-GCM encryption key to encrypt secrets.json.enc
  ├── inventory.json              # Your infrastructure inventory (empty initially)
  ├── logs/                       # Logs directory
  ├── private_key.json            # Private key for encrypting secrets during CLI operations
  ├── public_key.key              # Public key for encrypting secrets during CLI operations
  ├── secrets.json.enc            # Encrypted credentials (created with blank placeholders)
  └── secrets.json.enc.lock       # File lock for secrets file (created when accessing/updating secrets)
```

### ステップ 2: 環境変数の設定 (カスタムの場所を使用する場合)

`snctl config init` の実行時に (`~/.snctl` とは異なる) カスタムのフォルダの場所を選択した場合、最後に以下のような案内が表示されます。

```text theme={}
Note: Configuration created at /path/to/custom/.snctl/config.yaml
To use this configuration, run 'export SNCTL_DIR=/path/to/custom/.snctl' or use --snctl-dir=/path/to/custom/.snctl
```

以下のいずれかのオプションを選択します。

**オプション 1 - 環境変数を設定する (推奨):**

```bash theme={}
export SNCTL_DIR=/path/to/custom/.snctl
```

**オプション 2 - コマンドごとに --snctl-dir フラグを使用する:**

```bash theme={}
snctl --snctl-dir /path/to/custom/.snctl node list
```

> [!NOTE]
>
> いずれのオプションでも、指定したパスが `.snctl` で終わっていない場合、CLI は自動的にパスの末尾に `.snctl` を付加します。たとえば、`SNCTL_DIR=/home/user/myconfig` と指定すると `/home/user/myconfig/.snctl` が使用されます。

### ステップ 3: セットアップの確認

初期化後、すべてが正しく設定されていることを確認します。

**snctl が動作することを確認する:**

```bash theme={}
snctl --version
```

期待される出力:

```text theme={}
0.0.5 # Exact version may vary
```

**現在の設定を表示する:**

```bash theme={}
snctl config show
```

このコマンドは、`.snctl/config.yaml` の主要な情報を表示します。

期待される出力:

```text theme={}
                       Current Configuration
+---------------------+-------------------------------------------+
| Setting             | Value                                     |
+---------------------+-------------------------------------------+
| Folder Location     | /home/user1/.snctl                        |
| Encryption Key File | /home/user1/.snctl/encryption.key         |
| Inventory File      | /home/user1/.snctl/inventory.json         |
| Service Account     | None                                      |
| Logs Location       | /home/user1/.snctl/logs                   |
| Version             | 0.0.5                                     |
| Last Updated        | 2025-12-08T11:19:27.403696Z               |
+---------------------+-------------------------------------------+
```

> [!NOTE]
>
> SambaRack Manager がすでにインストールされている状態で `snctl config show` を実行すると、`config.yaml` に記録されたバージョンが現在実行中のバージョンと異なる場合、`config.yaml` が現在のバージョンに更新されます。

**作成されたファイルを確認する:**

```bash theme={}
# Replace ~/.snctl with your actual path if using a custom location
ls -l ~/.snctl
```

期待される出力:

```text theme={}
total 48
-rw-r--r--  1 user1 user1   234 Dec  8 11:19 config.yaml
-rw-------  1 user1 user1    32 Dec  8 11:19 encryption.key
-rw-r--r--  1 user1 user1     2 Dec  8 11:19 inventory.json
-rw-r--r--  1 user1 user1   128 Dec  8 11:19 secrets.json.enc
-rw-r--r--  1 user1 user1     0 Dec  8 11:19 secrets.json.enc.lock
-rw-r--r--  1 user1 user1  1674 Dec  8 11:19 private_key.json
-rw-r--r--  1 user1 user1   451 Dec  8 11:19 public_key.key
drwxr-xr-x  2 user1 user1  4096 Dec  8 11:19 logs
```

### ステップ 4: 必要な依存関係の確認

必要な依存関係がすべてインストールされていることを確認します。

```bash theme={}
snctl doctor
```

詳細は [snctl doctor](https://docs.sambanova.ai/docs/ja/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-command-reference.md#doctor) をご参照ください。

### ステップ 5: 暗号鍵の安全な保管

暗号鍵は安全に保管してください。暗号鍵は以下の操作に必要です。

* シークレットの復号
* インフラストラクチャに対するコマンドの実行

> [!WARNING]
>
> 暗号鍵にアクセスできる人は誰でも、保存されているすべてのシークレットを復号できます。このファイルは相応に厳重に保護してください。

## セキュリティに関する考慮事項

SambaRack Manager には、現時点で以下のセキュリティ上の制限があります。あらかじめご了承ください。

### アクセス制御

> [!WARNING]
>
> snctl にアクセスできる人は誰でも、すべてのインフラストラクチャを管理する完全な権限を持ちます。

現在、snctl はロールベースアクセス制御 (RBAC) をサポート**していません**。これは以下を意味します。

* snctl にアクセスできるすべてのユーザーが、すべての操作を実行できます
* 読み取り専用権限と書き込み権限の分離はありません
* 監視操作と電源操作の区別はありません
* ネットワーク管理者とシステム管理者を分離できません

### 監査とロギング

現在、snctl は、誰がどの操作を実行したかを記録する監査ログを保持**していません**。

## 次のステップ

初期セットアップが完了したら、ラックを SambaRack Manager インベントリに追加します。[ラック管理](https://docs.sambanova.ai/docs/ja/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-rack-admin.md) をご参照ください。
