Skip to content

APIC の初期設定を JSON 流し込みで行う

ACI 6.0(2) Bootstrap procedure で言及されていますが、ACI 6.x 系からは初期セットアップ手順が変更されています。 一般的なセットアップ手順が「CLI で最低限の設定をしたら、以降は Web UI から設定」する流れになっていますが、これを簡略化し「JSON で初期設定を流し込む」ことも出来るようになっています。 今回はこの「JSON 流し込み」手順をメモしておきます。

新旧バージョンでのセットアップ手順の違い

「5.x 以前」と「6.x 以降」では APIC のセットアップ手順が異なります。

バージョン 説明
5.x 以前 全ての初期パラメータを CLI で設定する。
6.x 以降 admin パスワード、管理用アドレス/ゲートウェイのみ、CLI で設定する。
以降、その他の項目は Web UI から設定する。 (詳しくは Bringing up the Cisco APIC Cluster Using the GUI 参照)

実際に 6.x 系で最初の APIC の初期セットアップを始めると以下のようなメッセージが表示されます。

1
2
3
APIC Version: 6.0(5h)
Welcome to APIC Setup Utility
Press Enter Or Input JSON string to bootstrap your APIC node.

ここで Enter を入力すると以下のような対話的セットアップが開始されます。

1
2
3
4
5
6
7
8
9
admin user configuration ...
  Enter the password for admin [None]:
  Reenter the password for admin [None]:
Out-of-band management configuration ...
 Enter the IP Address [192.168.10.1/24]: 
  Enter the IP Address of default gateway [192.168.10.254]: 
Would you like to edit the configuration? (y/n) [n]: 
System pre-configured successfully.
Use: https://192.168.10.1 to complete the bootstrapping

尚、5.x 系以前では初期セットアップ時に CIMC の情報入力を求められることはありませんでした。 6.x 系からは CIMC の情報も入力を求められるように仕様変更されています。

SoL (Serial over LAN) の有効化

以降の手順では「APIC の初期セットアップで JSON を貼り付け」する必要があります。 貼り付け機能が使えるよう、Serial over LAN の設定 の手順に従って SoL を有効化しておきます。 有効化が完了したら (仮想 KVM ではなく) ターミナルソフトウェアから SoL で APIC のコンソールへ接続し、以降の作業は SoL から実施します。

APIC の初期設定を JSON 流し込みで行う

前述の Press Enter Or Input JSON string to bootstrap your APIC node. 表示時に「APIC の初期設定を記述した JSON を一行にして貼り付ける」ことで「以降の CLI/GUI での初期セットアップ」を省略することが出来ます。 この機能を利用する場合、まず JSON のデータを用意する必要があります。 このまま流し込みが出来ませんが 以下のような構造の JSON を用意します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{
  "cluster": {
    "fabricName": "fabric1",
    "fabricId": 1,
    "clusterSize": 3,
    "layer3": false,
    "gipoPool": "225.0.0.0/15",
    "adminPassword": "PASSWORD",
    "infraVlan": 3967
  },
  "nodes": [
    {
      "nodeName": "apic1",
      "controllerType": "physical",
      "serialNumber": "ABC11111111",
      "nodeId": 1,
      "podId": 1,
      "cimc": {
        "address4": "10.0.0.101",
        "username": "admin",
        "password": "PASSWORD"
      },
      "oobNetwork": {
        "address4": "10.0.0.1/24",
        "gateway4": "10.0.0.254",
        "enableIPv4": true,
        "enableIPv6": false,
        "address6": "",
        "gateway6": ""
      }
    },
    {
      "nodeName": "apic2",
      "controllerType": "physical",
      "serialNumber": "ABC22222222",
      "nodeId": 2,
      "podId": 1,
      "cimc": {
        "address4": "10.0.0.102",
        "username": "admin",
        "password": "PASSWORD"
      },
      "oobNetwork": {
        "address4": "10.0.0.2/24",
        "gateway4": "10.0.0.254",
        "enableIPv4": true,
        "enableIPv6": false,
        "address6": "",
        "gateway6": ""
      }
    },
    {
      "nodeName": "apic3",
      "controllerType": "physical",
      "serialNumber": "ABC33333333",
      "nodeId": 3,
      "podId": 1,
      "cimc": {
        "address4": "10.0.0.103",
        "username": "admin",
        "password": "PASSWORD"
      },
      "oobNetwork": {
        "address4": "10.0.0.3/24",
        "gateway4": "10.0.0.254",
        "enableIPv4": true,
        "enableIPv6": false,
        "address6": "",
        "gateway6": ""
      }
    }
  ],
  "pods": [
    {
      "podId": 1,
      "tepPool": "10.0.0.0/16"
    }
  ]
}

この JSON を Web 上のツールであれば JSON Formatter、ローカル環境のアプリケーションであれば Visual Studio Code の JSON Tools プラグイン等で一行へ変換します。 変換後の例は以下の通りです。

{"cluster": {"fabricName": "fabric1", "fabricId": 1, "clusterSize": 3, "layer3": false, "gipoPool": "225.0.0.0/15", "adminPassword": "PASSWORD", "infraVlan": 3967}, "nodes": [{"nodeName": "apic1", "controllerType": "physical", "serialNumber": "ABC11111111", "nodeId": 1, "podId": 1, "cimc": {"address4": "10.0.0.101", "username": "admin", "password": "PASSWORD"}, "oobNetwork": {"address4": "10.0.0.1/24", "gateway4": "10.0.0.254", "enableIPv4": true, "enableIPv6": false, "address6": "", "gateway6": ""}}, {"nodeName": "apic2", "controllerType": "physical", "serialNumber": "ABC22222222", "nodeId": 2, "podId": 1, "cimc": {"address4": "10.0.0.102", "username": "admin", "password": "PASSWORD"}, "oobNetwork": {"address4": "10.0.0.2/24", "gateway4": "10.0.0.254", "enableIPv4": true, "enableIPv6": false, "address6": "", "gateway6": ""}}, {"nodeName": "apic3", "controllerType": "physical", "serialNumber": "ABC33333333", "nodeId": 3, "podId": 1, "cimc": {"address4": "10.0.0.103", "username": "admin", "password": "PASSWORD"}, "oobNetwork": {"address4": "10.0.0.3/24", "gateway4": "10.0.0.254", "enableIPv4": true, "enableIPv6": false, "address6": "", "gateway6": ""}}], "pods": [{"podId": 1, "tepPool": "10.0.0.0/16"}]}

一行にした JSON は以下のように Press Enter Or Input JSON string to bootstrap your APIC node. の次の行へ貼り付け、Enter を押します。 これで CLI/GUI セットアップを省略することが出来ます。

1
2
3
4
APIC Version: 6.0(5h)
Welcome to APIC Setup Utility
Press Enter Or Input JSON string to bootstrap your APIC node.
{"cluster": {"fabricName": "fabric1", "fabricId": 1, "clusterSize": 3, ………