CML2を使いこなす。（その６：CML2のアップグレード）

# はじめに
先日`CML2`がバージョンアップされ、**2.2.1**となりました。

どうせなら新しいバージョンを使ってみたいということで、現在使用中のバージョンから**2.2.1**にバージョンアップしてみた際のアップグレード方法を記載します。

- 【前】[CML2を使いこなす。（その５：外部との接続）](https://qiita.com/sakai00kou/items/3ed6d644935b8cb7fcb9)
- 【次】[CML2を使いこなす。（その７：パケットキャプチャ）](https://qiita.com/sakai00kou/items/1686fb3a6f431bcd58b2)

# アップグレードの流れ
以下公式ドキュメントのアップグレード手順に沿って実施します。

- [Upgrading to New Version](https://developer.cisco.com/docs/modeling-labs/#!in-place-upgrade)

今回は以下のバージョンからのアップグレードとなります。

|旧バージョン||新バージョン|
|:--|:-:|:--|
|CML-Personal 2.1.2|→|CML-Personal 2.2.1|

基本的な流れとしては、アップグレード用RPMをダウンロードして適用するだけとなります。

併せてベースOSのアップグレードも行うことができますが、私が実施した環境ではアップグレード後、Cockpit画面でJavaScript関連の問題が発生したため、気になる方はOSアップグレードは控えたほうが良いかもしれません。

**【CML2アップグレード】**
1. アップグレード用RPMパッケージのダウンロード
2. RPMパッケージのアップロード（CML Dashboard）
3. CML2アップグレード（Cockpit）
4. CMLパーソナルライセンスの修正（Cockpit）

**【ベースOSアップグレード】**
1. `virl2.target`の停止（Cockpit）
2. OSアップグレード（Cockpit）

# CML2のアップグレード
`Cisco`のページから`CML2`のをダウンロードするため、`CML2`を購入した際に使用した`Cisco`のアカウントは事前に準備しておいてください。

## アップグレード用RPMパッケージのダウンロード
Ciscoのページにログインして、`The Cisco Learning Network Store`の`My Account`からダウンロード画面に進み、以下よりアップグレード用RPMパッケージをダウンロードします。

![capture_05062021_172435.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/75d4b4e3-d2e8-7987-9db1-8ded2a7851f9.jpeg)

## RPMパッケージのアップロード
`CML Dashboard`より`TOOLS`の`Upgrade System`を選択します。

![capture_05062021_171307.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/055a7098-3ce2-6f03-4729-3c6fb2759e89.jpeg)

`Upload new RPM file`の添付マークをクリックし、先ほどダウンロードしたアップグレード用RPMファイルをアップロードします。

![capture_05062021_171343.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/42e2a588-5899-1b1a-1f50-c4b9301d0e31.jpeg)

アップロードが完了したら、`Cockpit`画面から適用するため、以下URLを入力するか、画面に表示されている`using Cockpit`をクリックするとCockpit画面に進みます。

**https://[IPアドレス]:9090/**

## CML2アップグレード
管理者ユーザで`Cockpit`画面にログインします。

![capture_28032021_172927.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/cc6d9d5a-e95c-2403-d96e-68203bad57db.jpeg)

左ペインの`CML2`より、`Controller Software Upgrade`の`Upgrade Controller`を選択して`CML2`をアップグレードします。

![capture_05062021_172209.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/3da5f4b7-2e50-3969-31df-33086c02e563.jpeg)

アップグレードが完了したら一度画面を更新して、再度`Controller Software Upgrade`から`Finish Upgrade`をクリックしたらアップグレード完了です。

![capture_05062021_172959.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/2c8f068c-a92f-90c6-ef4b-445ebba2e4c4.jpeg)

## CMLパーソナルライセンス問題の対処
CML2のパーソナル版を使用している場合、アップグレードを行うと、ライセンス画面で以下の様な画面が表示された後、プロダクトを選択しても`SAVE`できない状態となるようです。

![capture_06062021_130436.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/3b1914c9-5e1e-ec65-728b-50926c9ca7b5.jpeg)

![capture_06062021_130502.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/7279d21b-83f8-4450-8a24-a2f8497903eb.jpeg)

そのため、`Cockpit`画面の`端末`より、以下対処を行います。

```shell:パーソナルライセンス問題の対処
sudo -E -s
echo "CML_Personal" > /var/local/virl2/smart/product.txt
chmod 644 /var/local/virl2/smart/product.txt
chown nginx:nginx /var/local/virl2/smart/product.txt
```

設定後、再起動すればライセンス画面で上記の問題が解消されるはずです。

# ベースOSのアップグレード
ドキュメント上はベースOSのアップグレードも推奨されているため、併せて実施します。

但し、前述の通り、私の環境ではOSアップグレード後、`Cockpit`画面で`JavaScript`関連の問題が発生したため、気になる方はアップグレードを見送ったほうが良いと思います。

## virl2.targetの停止
アップグレード前に、`Cockpit`画面の**サービス**から`Targets`を選択します。

![capture_05062021_173654.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/0ab6d2bd-ba2f-5a97-65e1-f190dcf1622d.jpeg)

`virl2.target`を選択し、画面右の選択ボタンをクリックすると、「**停止**」が表示されるため、停止します。

![capture_06062021_124926.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/8c8bfad3-45f7-00bc-5fbc-2c751944225b.jpeg)

## OSアップグレード
「**ソフトウェア更新**」の「**すべてのアップデートをインストール**」をクリックするとOSアップグレードが開始されるため、しばらく待ちます。

途中で画面のセッションが切れるため、切れたら再度ログインしなおしましょう。

![capture_05062021_173830.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/3e65f3ad-79d8-f994-308b-541d7eaa790b.jpeg)

ログインしなおすと「**システムの再起動**」ボタンが表示されるため、再起動します。
画面右上に「**問題が発生しました**」と表示されていますが、再起動で回復する問題であれば、再起動後は正常となるため、そのまま再起動して問題なければ終了です。

![capture_05062021_175035.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/8866a418-7fa3-4b8d-ea56-408d1474363c.jpeg)

# おわりに
CML2のアップグレード自体は簡単にできますが、OSのアップグレードまで行う場合は、事前にバックアップを取得するなど行っておいたほうが良いと感じました。