Skip to content

CML 上に Terraform でラボを作成する

Terraform には CML 用の Provider があります。 現時点で最新バージョンは 0.7.0 でした。 今回はごく基本的な利用方法を学ぶ為に以下を参照し、小規模なラボを作成してみました。

検証環境

対象 バージョン
CML 2.6.1
Terraform 1.7.3

.tf ファイル

テスト用に作成した .tf ファイルは以下です。 cml2_lab (Resource) に掲載されているサンプルをそのまま利用しています。

 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
terraform {
  required_providers {
    cml2 = {
      source = "registry.terraform.io/ciscodevnet/cml2"
   version = "~> 0.7.0"
    }
  }
}

provider "cml2" {
  address = "https://10.0.0.1"
  username = "admin"
  password = "password"
  skip_verify = true
}

resource "cml2_lab" "twonode" {
  title       = "two node lab"
  description = "nodes are connected with two links"
  notes       = <<-EOT
  # Heading
  - topic one
  - topic two
  EOT
}

resource "cml2_node" "r1" {
  lab_id         = cml2_lab.twonode.id
  label          = "R1"
  nodedefinition = "alpine"
  ram            = 512
  x              = 200
  y              = 130
  tags           = ["group1"]
}

resource "cml2_node" "r2" {
  lab_id         = cml2_lab.twonode.id
  label          = "R2"
  nodedefinition = "alpine"
  x              = 100
  y              = 130
}

resource "cml2_link" "l0" {
  lab_id = cml2_lab.twonode.id
  node_a = cml2_node.r1.id
  slot_a = 3
  node_b = cml2_node.r2.id
  slot_b = 3
}

resource "cml2_link" "l1" {
  lab_id = cml2_lab.twonode.id
  node_a = cml2_node.r1.id
  slot_a = 2
  node_b = cml2_node.r2.id
  slot_b = 2
}

実行

terraform を実行していきます。

1
terraform init
1
terraform plan
1
terraform apply -auto-approve

CML 上に作成されたラボ

下記のラボが作成されました。 .tf ファイルで指定している X/Y 座標の通りではあるのですが、「左側が R2」「右側が R1」になっています…

file