VIRL 1.1.1 April’16 Release インストール手順(VMware Player編)

こんにちは。ccieojisan です。

VIRL 1.1.1 April’16 release がリリースされました。1.0.11 や 1.0.26 へアップグレードしていれば、UWM でお手軽アップグレードできたんですが、、1.0.0 からバージョンアップをサボっていたので、再度新規インストールしました。

過去記事はこちら。

VIRL 1.0.0 November '15 Release インストール手順(VMware Player編)
こんにちは。ccieojisan です。先日 VIRL の最新バージョン 1.0.0 November '15 Release がリ...

上記の記事をベースに今回の記事を書いています。一部画像を流用していたりするので、最新のものと差異があるかもしれませんが、手順には影響ないはずです。

公式のインストール手順は下記になります。本ページを参考にしてうまくいかない場合は下記ページも参照してください。

スポンサーリンク

1.はじめに

VIRL は OVA フォーマットで提供されます(ISO提供もあります)。また、VMware Player は v5.02 以降であれば OK です。Oracle Virtual Box はサポートされておらず、インストールできませんのでご注意ください。

インストールするPCには下記の条件を満たす必要があります。

  • Intel VT-x / EPT or AMD-V / RVI virtualization extensions が有効になっている必要があります。場合によっては BIOS での設定が必要。
  • 最低 2 vCPU コア、4GB メモリが必要です。推奨は 4 vCPUs、8GB メモリ。
  • 80GB の空きディスク容量が必要
  • インターネットへ接続できる環境。また、TCPポート 4505 / 4506 が通ること。

私は VMWare Player 7.1.3 を使ってインストールしました。

環境によりけりですが、インストールには 30-60 分くらいかかります。ノートパソコンなどは電源を接続して休止などにならないようにしといてください。もしうまくいかなかった場合は VM を一旦削除して最初からインストールした方がいいです。

2. VIRL OVA のダウンロード

VIRL を購入している人にはココから下記のイメージをダウンロードします。

  • virl.1.1.1.pc.ova

ダウンロードした OVA ファイルを Microsoft File Checksum Integrity Verifier(FCIV) などで MD5 をチェックしておきましょう。イメージが壊れている場合などは正常にインストールができない結果になってしまいます。

C:\Users\user\Downloads>fciv -md5 virl.1.1.1.pc.ova
//
// File Checksum Integrity Verifier version 2.05.
//
4672e50842bc4565260999009f43cf4f virl.1.1.1.pc.ova

この fciv.exe での結果を比べたいんですが、今回は hash ファイルが提供されていませんでした。。もし上記私の結果と異なっている場合はOVAファイルがダウンロード中に問題があり、破損している可能性があるので再度ダウンロードしてください。

3.VIRL OVA のインストール

1) 仮想ネットワークの作成と設定

事前に vmnet の設定をします。スタートメニューから検索して “Windows PowerShell” を起動します。

virl1-6

下記を入力して設定します。

cd "C:\Program Files (x86)\VMware\VMware Player\"
./vnetlib64 -- add adapter vmnet1
./vnetlib64 -- set adapter vmnet1 addr 172.16.1.1
./vnetlib64 -- set vnet vmnet1 mask 255.255.255.0
./vnetlib64 -- update adapter vmnet1
./vnetlib64 -- add adapter vmnet2
./vnetlib64 -- set adapter vmnet2 addr 172.16.2.1
./vnetlib64 -- set vnet vmnet2 mask 255.255.255.0
./vnetlib64 -- update adapter vmnet2
./vnetlib64 -- add adapter vmnet3
./vnetlib64 -- set adapter vmnet3 addr 172.16.3.1
./vnetlib64 -- set vnet vmnet3 mask 255.255.255.0
./vnetlib64 -- update adapter vmnet3
./vnetlib64 -- add adapter vmnet4
./vnetlib64 -- set adapter vmnet4 addr 172.16.10.1
./vnetlib64 -- set vnet vmnet4 mask 255.255.255.0
./vnetlib64 -- update adapter vmnet4

“exit” と入力して Windows PowerShell を閉じます。

2) OVA のインポート

VMWare Player を起動します。

virl1-1

Open a Virtual Machine” を選択します。

virl1-2

ダウンロードした OVA ファイルを選択します。画像ではファイル名が異なりますが、virl.1.1.1.pc.ova を開きます。

Virtual Machine 名と保存する場所を指定して Import をクリックするとインポートが始まります。インポート完了までには PC のスペックにもよりますが、数分~数十分かかります。

特に変更する必要はない場合は、そのまま “Import” をクリック。

virl111up-1

virl1-5

今回は約7-8分でした。

6) ネットワークアダプタの設定

“Edit virtual machine settings” をクリック。

virl1-7

下記画面になり、Network Adapter (数字無し=1) は変更しないので注意。

Network Adapter 2~5 を下記の通り custom network に対応させます。

  • Network Adapter 2 : vmnet1
  • Network Adapter 3 : vmnet2
  • Network Adapter 4 : vmnet3
  • Network Adapter 5 : vmnet4

Network Adapter 2 の場合の設定方法は下記になります。Network Adapter 3-5 は同様の手順で変更してください。

52

Network Adapter 2 を選択し、Network connection で Custom を選択、そして対応する VMnet1 を選択します。

Network Adapter を全て変更した後の画面を下記になります。

53

枠内の表示が同じ状態になっているのを確認してください。

6) CPU の設定

“Processors” をクリックして CPU 設定を行います。

6

私は推奨の 4 vCPU としました。Preferred mode はちょっと不明でしたが Automatic にしてます。”Virtualize Intel VT-x/EPT or AMD-V/RVI” にチェックが入っていることを確認してください。

7) メモリ設定

“Memory” をクリックして、メモリ容量を設定します。

7

メモリも推奨の 8GB としました。これで設定は完了なので OK を押します。

4. VIRL のアクティベーションの準備

VIRL をアクティベーションする準備を行います。

1) まずは VM を起動します。

“Play virtual machine” をクリックします。

virl1-8

下記のようなポップアップが出たら特に気にする必要ないので OK します。

42

2) ログイン

ユーザ名は “virl”、パスワードは “VIRL”(全て大文字) です。ユーザ名はデフォルトで選択されているはずなので、パスワードを入力して “Log In” をクリックしてください。

virl1-9

ログイン後の画面はこんな感じ。

virl1-10

3) xterm の起動

デスクトップ上にある xterm をダブルクリックしてターミナルを開きます。

virl1-11

4) KVM acceleration の確認

xterm 上で “sudo kvm-ok” と入力してください。

virl@virl:~$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

上記のように “KVM acceleration can be used” と表示されれば OK です。表示が異なる場合は、今までのステップで問題があった可能性や、要件を満たさない PC の場合(CPUがVirtualicationをサポートしていない等)があります。

5) インターネット接続の確認

xterm 上で “ping -c 4 www.cisco.com” を実行し、インターネットへ接続できることを確認します。

virl@virl:~$ ping -c 4 www.cisco.com
PING e144.dscb.akamaiedge.net (96.7.200.170) 56(84) bytes of data.
64 bytes from a96-7-200-170.deploy.akamaitechnologies.com (96.7.200.170): icmp_seq=1 ttl=128 time=29.6 ms
64 bytes from a96-7-200-170.deploy.akamaitechnologies.com (96.7.200.170): icmp_seq=2 ttl=128 time=31.5 ms
64 bytes from a96-7-200-170.deploy.akamaitechnologies.com (96.7.200.170): icmp_seq=3 ttl=128 time=36.4 ms
64 bytes from a96-7-200-170.deploy.akamaitechnologies.com (96.7.200.170): icmp_seq=4 ttl=128 time=41.1 ms

--- e144.dscb.akamaiedge.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 29.687/34.698/41.199/4.491 ms

上記のように最後から 二行目で 0% packet loss になっていれば問題ありません。会社などでインストールを試している場合などで Ping が通らない場合は Ping パケット(ICMP) がファイアウォールで止められていないかなどを知っておく必要があります。

また、下記 curl 及び wget コマンドを投入します。

virl@virl:~$ curl http://curltools.com/get-ip
VISIBLE_IP=24.138.68.166
REAL_IP=24.138.68.166
virl@virl:~$ wget --spider --no-verbose http://www.google.com
2015-12-01 19:34:07 URL: http://www.google.ca/?gfe_rd=cr&ei=LvZdVsLbOKaC8Qee_oDwDw 200 OK

curl の出力では、IPアドレスが得られ、wget では “200 OK” となれば OK です。

6) NTP確認及び設定

“sudo ntpq -p” コマンドでアスタリスク(*)が表示されていれば、NTP 同期は問題ありません。次のアクティベーションに進んでください。

virl@virl:~$ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+bitdonut.co     173.162.192.156  2 u   31   64  375   40.017   -5.734  67.876
-ellen.linuxgene 128.233.150.93   2 u   32   64  375   35.633    4.374  67.268
+ntp.lanets.ca   209.51.161.238   2 u   35   64  377   38.674    4.415   3.490
 zero.gotroot.ca 30.114.5.31      2 u    3   64   37   82.801   -7.202  54.141
*time-a.timefreq .ACTS.           1 u   37   64  377   72.058   -1.349  81.879

もし、NTP同期ができていない場合は下記手順を試みてください。

nano で ntp.conf ファイルの編集をします。server pool.ntp.org iburst と表示されている行を削除し、ファイルの最後に下記4行を追加します。

server 0.ubuntu.pool.ntp.org
server 1.utuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

nano で上記を編集したら Control-X を押し、保存するか聞かれるので Y を入力、そしてファイル名の確認があるので、そのまま Return(Enter) キーを押してください。
最終的な ntp.conf の内容は下記になります。

virl@virl:~$ cat /etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

# Use Ubuntu's ntp server as a fallback.

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

server 0.ubuntu.pool.ntp.org
server 1.utuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

NTP daemon を停止させます。

virl@virl:~$ sudo service ntp stop
 * Stopping NTP server ntpd                                              [ OK ]

NTP Server を使って時刻を設定します。

virl@virl:~$ sudo ntpd -gq
ntpd: time slew -0.019388s

NTP daemon を再度起動させます。

virl@virl:~$ sudo service ntp start
 * Starting NTP server ntpd                                              [ OK ]

NTP daemonがセットアップされるまで、90秒程待ちます。
NTP Query Tool (sudo ntpq) を使って、NTPピアの状態を確認します。

virl@virl:~$ sudo ntpq
ntpq> associations

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1  6310  963a   yes   yes  none  sys.peer    sys_peer  3
  2  6311  9424   yes   yes  none candidate   reachable  2
  3  6312  9424   yes   yes  none candidate   reachable  2
ntpq> peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*zero.gotroot.ca 30.114.5.31      2 u   13   64  377   95.885   -3.303   1.911
+174.137.63.116  206.108.0.131    2 u   13   64  377   47.540   -1.537   0.925
+ntp.jacobparry. 132.246.11.229   3 u   12   64  377   54.177   -1.141   3.510

sudo ntpq と入力した後、associations と入力し、一つのピアの condition が “sys.peer” になっているのを確認してください。また、peers と入力し、reach のところが全て 377 になっていれば NTP 同期は問題ないです。もし上記のような表示になっていない場合は NTP 同期には時間がかかるため、associations/peers を時間をあけて何回か入力して状況の変化を確認してください。それでもダメな場合は、再度前述の ntp.conf の編集からやり直してみてくだださい。

NTP同期に問題がないようであれば、ntpq を quit で終了し、exit で xterm をクローズしてください。

ntpq> quit
virl@virl:~$ exit

5. アクティベーション

VIRL を使うためにはアクティベーションをする必要があります。

1) ライセンスの入手

新規購入の方

VIRL 購入後に受信したメールの中に下記記載があるので、リンクをクリックしてライセンスを入手してください。

51

ライセンスのファイル名のフォーマットは key-id.domain.tld.pem となっており、例えば “AB34CD56.virl.info.pem” とかになっています。

購入済みの方

既に購入済みの人は下記リンクからライセンスキーをダウンロードできます。

CCO アカウント(Cisco.comアカウント)でログインしてください。

virl1-12

すると上記画面になるので、”License Keys” をクリック。

virl1-13

上記 “Download License Key(s)” をクリックし、zip ファイルをダウンロードして解凍し pem ファイルをゲットします。

2) IPアドレスの確認

VIRL VM のデスクトップにある “IP Address” というアイコンをダブルクリックします。

virl1-14

アイコンをダブルクリックすると、ウィンドウが開いて下記のような表示が出ます。

          inet addr:192.168.229.129  Bcast:192.168.229.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed9:5453/64 Scope:Link
virl@virl:~$ exit

上記 “inet addr:” の部分が VIRL が使用している IPアドレス となるので、これをメモして exit コマンドでウィンドウを閉じてください。

3) ブラウザから VIRL へアクセス

先ほど調べた IPアドレスにブラウザからアクセスします。IE/Firefox/Chrome等のブラウザで URL に http://VIRLのアドレス を入力してアクセスすると下記のような画面が表示されます。

virl1-15

4) アクティベート

前述のウェブブラウザでアクセスした画面で、”User Workspace Management” をクリックします。

virl1-16

Username “uwmadmin” / Password “password” を入力して Login をクリック。

virl1-17

左メニューで “VIRL Server” をクリックし、サブメニューの “Salt Configuration and Status” をクリック。
※何か赤字でエラーみたいなのが表示されていますが、無視します。

virl1-18

“Rest Keys and ID” をクリック。

virl1-19

Reset salt settings のページで下記情報を入力します。

  • Salt ID and domain : ライセンスファイル名を入力。拡張子.pemは入れない。AB34CD56.virl.info.pem の場合は “AB34CD56.virl.info” と入力
  • Customer email Address : Eメールアドレスを入力。VIRLのオーダ完了メールを受信しているメールアドレス。
  • List of Cisco salt masters : 場所的に近いと思うところをチョイス。私は US の4つ全てを指定。
    US : us-1.virl.info, us-2.virl.info, us-3.virl.info, us-4.virl.info
    EU : eu-1.virl.info, eu-2.virl.info, eu-3.virl.info, eu-4.virl.info
  • Minion private RSA key in PEM format : ライセンスファイル AB34CD56.virl.info.pem をテキストエディタで開き全内容をコピーアンドペースト。

※ Master sign public key は Cisco の手順書にも記載がなく不明なので eft.pub のままとします。

上記を入力し、Reset をクリック。

virl1-20

Current Status が下記のようになれば、OK です。日付は今日になっているはず。

virl1-21

もしうまくいかない場合は、再度 “Reset keys and ID” から再び試してみてください。
問題ない場合はブラウザを閉じてください。

6. VIRL インストレーションの確認

VIRL が正常にインストールできたことを確認します。
デスクトップの xterm をクリックしてターミナルウィンドウを開きます。

virl1-22

“neutron agent-list” コマンドを入力して、OpenStack network agent status を確認します。下記のように最低でも4行表示されるので、どの行も alive ステータスが “:-)” になっていることを確認してください。場合により4行以上ある場合もあります。

virl@virl:~$ neutron agent-list
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| id                                   | agent_type         | host | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| 0b6c2087-4ae2-4036-bfbb-a76888422f87 | L3 agent           | virl | 🙂   | True           | neutron-l3-agent          |
| 348e012d-8b07-429f-ab18-e67d43828a75 | DHCP agent         | virl | 🙂   | True           | neutron-dhcp-agent        |
| 51001eb9-8703-4f49-8299-19d68af4b305 | Metadata agent     | virl | 🙂   | True           | neutron-metadata-agent    |
| c2d293bc-228d-4e12-8a48-0adcc8d3ac29 | Linux bridge agent | virl | 🙂   | True           | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+

“sudo virl_health_status | grep listening” コマンドを入力し、STD Server 及び UWM Server が listening 状態であることを確認します。
※ DEBUG出力のようなものが出力されていましたが、下記出力では省略してます。

virl@virl:~$ sudo virl_health_status | grep listening
(snip)
virl-vis-webserver listening on port 19402
ank-cisco-webserver listening on port 19401
STD server on url http://localhost:19399 is listening, server version 0.10.21.7
UWM server on url http://localhost:19400 is listening, server version 0.10.21.7
Webmux server on url http://localhost:19403 is listening

“sudo virl_health_status | grep -A 4 -e hostid -e product” コマンドを入力し、hostid とライセンス情報を確認します。下記の項目をチェックしてください。

  • product-capacity : このライセンスで起動できるノード数が表示されます。
  • hostid : ライセンスファイル名(拡張子.pemを除く)
  • product-expires : 7

※ DEBUG出力のようなものが出力されていましたが、下記出力では省略してます。

virl@virl:~$ sudo virl_health_status | grep -A 4 -e hostid -e product
(snip)
  "product-expires": 7,
  "uwm-url": "http://192.168.229.129:19400/admin/salt/",
  "product-capacity": 20,
  "product-usage": 0,
  "hostid": "AB34CD56.virl.info",
  "product-license": [
    "us-virl-salt.cisco.com"
  ],
  "features": [
    "Cariden.MATE.import",

上記の内容が確認できれば、exit でターミナルウィンドウを閉じます。
product-expires : 7 は VIRL が Cisco SaltStack servers に接続しなくても使える日数を示していますので、特に気にする必要はありません。(ライセンスが切れるとか、そういうことではない)

7. VM Maestro のインストールと設定

VM Maestro とは VMware Player に作成した VIRL VM に Windows からアクセスするためのクライアントソフトウェアです。Windows だけでなく OS X や Linux でも使うことが可能です。

以前の手順でメモした VIRL VM で使用しているIPアドレスにウェブブラウザからアクセスし、”VM Maestro Clients & Python Libraries” をクリックしてください。

virl1-23

下記の画面に移動するので、”VMMaestro-dev-1.2.6-393-setup_64.exe” をクリックしてダウンロードしてください。※ご使用の PC 環境によりダウンロードするファイルは変わります。

virl111up-2

通常の Windows アプリケーションのインストールと同じようにダウンロードしたファイルをダブルクリックで実行してインストールをしてください。
※以前 VM Maestro をインストールしている場合は古いバージョンを先にアンインストールしてください。

インストールの画面は省略しますが、全てデフォルトで次へ進めてインストールすれば OK です。

インストール最後の画面で “Run VM Maestro” にチェックが入っているので、そのまま Finish をします。すると VM Maestro が起動します。

70

下記は VM Maestro 起動中に表示されます。

71

License Agreement 読んでを Agree してください。

72

“User Experience Improvement” が表示されるので OK する。

73

Welcome to VM Maestro と表示される画面で下記を入力します。

  • Server : VIRL VM の IPアドレス (前述の手順でメモしたアドレス)
  • Username : guest
  • Password : guest

※ Username/Password はデフォルトで入力されているはずです。
上記を入力し、OK をクリックします。

virl1-25

Secure Storage というポップアップが表示されるので、OK します。

75

Password Recovery というポップアップが表示されるので、パスワードリカバリー用の質問と答えを設定します。Question1/Question2 の両方入力して OK します。
※画面例は空欄にしていますが、入力が必要です。

76

すると、VM Maestro の画面になります。右下の guest をクリックしてください。

virl1-26

全ての Web サービスが Compatible として緑色になっていることを確認してください。

virl1-27

問題なければ OK をクリックします。

有効なノードサブタイプの読み込みをしておきます。File -> Preference を開く。

virl1-28

左メニューの Node Subtypes を選択し、”Restore Defaults” をクリック。

virl1-30

“OK”をクリック。

virl1-31

“Apply” をクリック。

virl1-32

最後に Fetch From Server をクリックして、OK を押せば最新のノードが読み込まれます。

以上で VIRL のインストールと設定は完了です。