LoginSignup
2
1

More than 3 years have passed since last update.

CML2をGCPで利用する

Last updated at Posted at 2021-05-03

はじめに

Cisco のエミュレータソフトであるCML2をGoogleクラウドで試します。
こちらの動画を参考にしてます。
AWSにて試した方より安いので、今のところクラウドでやるならこちらがベターですね。

手順の概要

  • ローカルPCの仮想化ソフトにてCMLのインストール
  • CML2のセットアップ
  • CML2のVMエクスポート
  • Googleストレージへエクスポートしたファイルのアップロード
  • インポート
  • 仮想化のネストの有効化やHWの調整など
  • インスタンスにてCML2のセットアップ

手順

1.OVFファイルの準備

前半は以前の記事と同一になるので、6.VMエクスポートまで実施します。

2.OVFファイルのアップロード

OVFファイルをCloudストレージへアップロードします。
ナビゲーションメニューのCloud Strage>ブラウザを選択。
cloud strage.png

バケットの作成をクリック。
make strage.png

名前をつけるだけでOKです。
make strage2.png

バケットが作成できたら、バケット名をクリックして詳細へ移動します。
ファイルをアップロードから、OVFファイルをアップロードします。
(私は例によってエクスポートした3ファイルをアップしました。。)
結構時間がかかるのでお茶して待ちます。

3.GCPのAPI有効化

操作はGoogle Cloud Shellから行います。
Cloud Shellをアクティブにするをクリック。
スクリーンショット 2021-05-03 9.04.26.png

最初にCloud Buildを有効にします。
初めて行う場合、有効なアカウントがないと怒られます。

$ gcloud services enable cloudbuild.googleapis.com
ERROR: (gcloud.services.enable) You do not currently have an active account selected.
Please run:

  $ gcloud auth login
to obtain new credentials.
If you have already logged in with a different account:
    $ gcloud config set account ACCOUNT

to select an already authenticated account to use.

言われた通りのコマンドを実施して、認証します。
認証後、project idが表示されます。

$ gcloud auth login
Go to the following link in your browser:
    https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=32555940559.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A
2.0%3Aoob&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fww
w.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&sta
te=lzmNxVFVmnZC0JrtmwJ3kvuPGw89Fe&prompt=consent&access_type=offline&code_challenge=fNEnter verification code: **** # 上記URLにて表示されたコードをペースト

You are now logged in as [*****].
Your current project is [quantum-reducer-312413].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID

再度同じコマンドを実行します。

$ gcloud services enable cloudbuild.googleapis.com

Operation "operations/acf.p2-487738041377-0ed0e42f-7d17-45a1-baab-4f5078e7c662" finished successfully.

続いて下記。
出力まで時間がかかりますが、成功しました。

$ gcloud services enable compute.googleapis.com

Operation "operations/acf.p2-487738041377-4460e93c-2a93-493c-b677-a5b7a5471364" finished successfully.

IAMRoleにprojectの権限を付与します。
最初に自身のプロジェクト情報を確認します。
情報はナビゲーションメニューのホーム>ダッシュボード>プロジェクト情報に記載されてます。
スクリーンショット 2021-05-02 6.35.24.png

情報をコピーしておきます。
スクリーンショット 2021-05-02 6.36.10.png

下記のコマンドの"project-id"を自身のプロジェクトIDに、"project-num"をプロジェクト番号の値に変更して一気にペーストします。

gcloud projects add-iam-policy-binding project-id \
   --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
   --role roles/compute.admin
gcloud projects add-iam-policy-binding project-id \
   --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
   --role roles/iam.serviceAccountUser
gcloud projects add-iam-policy-binding project-id \
   --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
   --role roles/iam.serviceAccountTokenCreator

4.インスタンスの作成

続いてインスタンスの作成ですが、作成前に必要な情報を確認します。

gsutil URIの確認方法
ナビゲーションメニューのCloud Strage>ブラウザ>該当のバケット名>該当のOVFファイルをクリック
ファイルの詳細情報が表示されるので、gsutil URIをコピー。

スクリーンショット 2021-05-02 11.37.04.png

インスタンスの作成はGoogle Cloud Shellから行います。

下記コマンドの"INSTANCE_NAME"をお好きな名前に変え、
"gs:PATH_TO_OVF_FILE"はOVFファイルのgsutil URIに変えてください。
1時間近くかかるので待ちます。

gcloud compute instances import INSTANCE_NAME \
--os=centos-8 \
--zone us-central1-b \
--source-uri=gs:PATH_TO_OVF_FILE

進行状況は、
ナビゲーションメニューのCompute Engine>VMインスタンスから確認できます。
作成が完了すると指定したインスタンス名の名前で緑のチェックが入ります。
この時点でインスタンスが起動してます。(この状態で長時間放置してしまいました。。課金注意。。)

スクリーンショット 2021-05-03 5.22.11.png

5.VMインスタンスの設定

ファイアウォールを設定します。
該当のインスタンス名をクリックし、詳細に移動します。
鉛筆マークの編集をクリックし
スクリーンショット 2021-05-03 6.09.47.png

ファイアウォールの下記二つともチェックボックスをONにして保存します。

  • HTTP トラフィックを許可する
  • HTTPS トラフィックを許可する スクリーンショット 2021-05-03 6.13.28.png

6.CML2へログイン

VMインスタンスの一覧から、外部IPアドレスをコピーします。
通常通り、httpsにてコピーしたIPアドレスへアクセス。
スクリーンショット 2021-05-03 6.18.19.png

もうログインできるかと思いますので、コピーしたアドレスHTTPSへアクセス。
ユーザーアカウントでログインします。
ログイン後、右下のSystem Health Issueをクリックすると2つ問題があります。
スクリーンショット 2021-05-03 6.16.13.png

Licensingの他にHW AccelerationがチェックNGとなっているので、インスタンスのタイプを変更します。

7.インスタンスのクローン

VMインスタンスをスペック要求に合わせるため、インスタンスをクローンします。
VMインスタンスの一覧に戻り、インスタンスを停止します。

スクリーンショット 2021-05-03 6.22.31.png

停止したインスタンスをクリックして、詳細に移動します。
ブートディスクのデバイス名をコピーします。

スクリーンショット 2021-05-03 6.25.03.png

下記のコードの"DISK1"を先程コピーしたデバイス名に置き換えて新たなイメージを作成します。

gcloud compute images create cml2-kvm-image \
--source-disk DISK1 --source-disk-zone us-central1-b \
--licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"

少し時間がかかった後の実行結果です。
STATUSがREADYになればOKです。

gcloud compute images create cml2-kvm-image \
> --source-disk cml2-test --source-disk-zone us-central1-b \
> --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
Created [https://www.googleapis.com/compute/v1/projects/quantum-reducer-312413/global/images/cml2-kvm-image].
NAME            PROJECT                 FAMILY  DEPRECATED  STATUS
cml2-kvm-image  quantum-reducer-312413                      READY

先程作成したイメージを、cml2-finalという名前のインスタンスで新たに作成します。

gcloud compute instances create cml2-final --zone us-central1-b \
--min-cpu-platform "Intel Haswell" \
--image cml2-kvm-image

作成できました。
スクリーンショット 2021-05-03 6.51.08.png

8.インスタンスの設定

再度、該当インスタンスのファイアウォールにてHTTPとHTTPSを有効にします。
スクリーンショット 2021-05-03 6.53.06.png

また、SSHの1122ポートも有効にします。
ナビゲーションメニューのVPCネットワーク>ファイアウォールを選択。
スクリーンショット 2021-05-03 6.54.41.png

画面上部のファイアウォール ルールを作成をクリック。
名前は適当にcmlとしておきます。

  • ターゲットはネットワーク上のすべてのインスタンス
  • ソースIPの範囲は0.0.0.0/0
  • ポートに1122,9090,22を追加 スクリーンショット 2021-05-03 7.05.09.png

再度、CML2にログインします。
VMインスタンスの外部IPアドレスからHTTPSアクセス。
System Health Issueを見ると、Number of available CPUs が問題ありあそうです。
スクリーンショット 2021-05-03 7.06.35.png

9.インスタンスタイプの変更

一度ターミナルからssh接続します。

❯ ssh sysadmin@34.69.100.212 -p 1122   

電源OFF!

$ sudo poweroff

VMインスタンスの一覧から該当のインスタンスの電源OFFを確認して、インスタンス名をクリック。
編集を選んで、マシンタイプにてn1-standard-8を選択して保存します。
スクリーンショット 2021-05-03 7.24.34.png

インスタンスを開始します。

IPアドレスを固定したい場合は以下の設定をします。
使ってなくても課金されるので、お好みとお財布状況に合わせて。(私はしません。。)
ナビゲーションメニューのVPCネットワーク>外部IPアドレスを選択。
スクリーンショット 2021-05-03 7.28.38.png

種類>静的を選択、名前を適当につけて予約。
スクリーンショット 2021-05-03 7.40.26.png

10.CML2からライセンス登録

CML2にログインして、ライセンスの登録をしたら、完了です!
(説明は以前の記事にもあるので割愛です。)

最後に

AWSのベアメタルタイプと比較しても料金はgoogleの方が断然いいですね。
当然スペック差はありますが、必要に応じて増やしていけるので無駄なコストがかからないです。
最初からGCPでやっていればよかった。。。。

スクリーンショット 2021-05-03 8.10.55.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1