こんにちは。ccieojisan です。
先日 VIRL の最新バージョン 1.0.0 November ’15 Release がリリースされました。In-place アップグレードがサポートされていないことから、OVAファイルからの新規インストールという形になります。
以前、上記で記事を書いていますがインストール手順に若干違いがあったり、UWMのUIに変化があったりするので最新バージョーン 1.0.0 でも再度書いてみました。
公式のインストール手順は下記になります。本ページを参考にしてうまくいかない場合は下記ページも参照してください。
目次
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 メモリ。
- 60GB の空きディスク容量が必要
- インターネットへ接続できる環境。また、TCPポート 4505 / 4506 が通ること。
環境によりけりですが、インストールには 30-60 分くらいかかります。ノートパソコンなどは電源を接続して休止などにならないようにしといてください。もしうまくいかなかった場合は VM を一旦削除して最初からインストールした方がいいです。
2. VIRL OVA のダウンロード
VIRL を購入している人にはシスコからメールで OVA のダウンロードリンクが付いたメールが届きます。そのリンクから下記2つをダウンロードします。
- virl.1.0.0.hashes.txt
- virl.1.0.0.pc.ova
ダウンロードした OVA ファイルを Microsoft File Checksum Integrity Verifier(FCIV) などで MD5 をチェックしておきましょう。イメージが壊れている場合などは正常にインストールができない結果になってしまいます。
C:\Users\higas_000\Downloads>fciv -md5 virl.1.0.0.pc.ova // // File Checksum Integrity Verifier version 2.05. // 5e27b4ed9b49f973d81efae18f58d31b virl.1.0.0.pc.ova
上記 fciv.exe での結果と virl.1.0.0.hashes.txt の中に記載されている内容と一致することを確認してください。異なっている場合はOVAファイルがダウンロード中に問題があり、破損している可能性がある ので再度ダウンロードしてください。
3.VIRL OVA のインストール
1) VMWare Player を起動します。
2) “Open a Virtual Machine” を選択します。
3) OVA ファイルを開きます。
ダウンロードした OVA ファイルを選択します。
4) 仮想ネットワークの作成と設定
スタートメニューから検索して “Windows PowerShell” を起動します。
下記を入力して設定します。
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 を閉じます。
5) OVA ファイルのインポート
Virtual Machine 名と保存する場所を指定して Import をクリックするとインポートが始まります。インポート完了までには PC のスペックにもよりますが、数分~数十分かかります。
特に変更する必要はない場合は、そのまま “Import” をクリック。
今回は前回の倍以上かかり、9分半でした。
6) ネットワークアダプタの設定
“Edit virtual machine settings” をクリック。
下記画面になり、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 は同様の手順で変更してください。
Network Adapter 2 を選択し、Network connection で Custom を選択、そして対応する VMnet1 を選択します。
Network Adapter を全て変更した後の画面を下記になります。
枠内の表示が同じ状態になっているのを確認してください。
6) CPU の設定
“Processors” をクリックして CPU 設定を行います。
私は推奨の 4 vCPU としました。Preferred mode はちょっと不明でしたが Automatic にしてます。”Virtualize Intel VT-x/EPT or AMD-V/RVI” にチェックが入っていることを確認してください。
7) メモリ設定
“Memory” をクリックして、メモリ容量を設定します。
メモリも推奨の 8GB としました。これで設定は完了なので OK を押します。
4. VIRL のアクティベーションの準備
VIRL をアクティベーションする準備を行います。
1) まずは VM を起動します。
“Play virtual machine” をクリックします。
下記のようなポップアップが出たら特に気にする必要ないので OK します。
2) ログイン
ユーザ名は “virl”、パスワードは “VIRL”(全て大文字) です。ユーザ名はデフォルトで選択されているはずなので、パスワードを入力して “Log In” をクリックしてください。
ログイン後の画面はこんな感じ。
3) xterm の起動
デスクトップ上にある xterm をダブルクリックしてターミナルを開きます。
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 購入後に受信したメールの中に下記記載があるので、リンクをクリックしてライセンスを入手してください。
ライセンスのファイル名のフォーマットは key-id.domain.tld.pem となっており、例えば “AB34CD56.virl.info.pem” とかになっています。
購入済みの方
既に購入済みの人は下記リンクからライセンスキーをダウンロードできます。
CCO アカウント(Cisco.comアカウント)でログインしてください。
すると上記画面になるので、”License Keys” をクリック。
上記 “Download License Key(s)” をクリックし、zip ファイルをダウンロードして解凍し pem ファイルをゲットします。
2) IPアドレスの確認
VIRL VM のデスクトップにある “IP Address” というアイコンをダブルクリックします。
アイコンをダブルクリックすると、ウィンドウが開いて下記のような表示が出ます。
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のアドレス を入力してアクセスすると下記のような画面が表示されます。
4) アクティベート
前述のウェブブラウザでアクセスした画面で、”User Workspace Management” をクリックします。
Username “uwmadmin” / Password “password” を入力して Login をクリック。
左メニューで “VIRL Server” をクリックし、サブメニューの “Salt Configuration and Status” をクリック。
※何か赤字でエラーみたいなのが表示されていますが、無視します。
“Rest Keys and ID” をクリック。
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-virl-salt.cisco.com (or eu-virl-salt.cisco.com)
- Minion private RSA key in PEM format : ライセンスファイル AB34CD56.virl.info.pem をテキストエディタで開き全内容をコピーアンドペースト。
※ Master sign public key は Cisco の手順書にも記載がなく不明なので eft.pub のままとします。
上記を入力し、Reset をクリック。
Current Status が下記のようになれば、OK です。日付は今日になっているはず。
もしうまくいかない場合は、再度 “Reset keys and ID” から再び試してみてください。
問題ない場合はブラウザを閉じてください。
6. VIRL インストレーションの確認
VIRL が正常にインストールできたことを確認します。
デスクトップの xterm をクリックしてターミナルウィンドウを開きます。
“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” をクリックしてください。
下記の画面に移動するので、”VMMaestro-dev-1.2.4-363-setup_64.exe” をクリックしてダウンロードしてください。※ご使用の PC 環境によりダウンロードするファイルは変わります。
通常の Windows アプリケーションのインストールと同じようにダウンロードしたファイルをダブルクリックで実行してインストールをしてください。
※以前 VM Maestro をインストールしている場合は古いバージョンを先にアンインストールしてください。
インストールの画面は省略しますが、全てデフォルトで次へ進めてインストールすれば OK です。
インストール最後の画面で “Run VM Maestro” にチェックが入っているので、そのまま Finish をします。すると VM Maestro が起動します。
下記は VM Maestro 起動中に表示されます。
License Agreement 読んでを Agree してください。
“User Experience Improvement” が表示されるので OK する。
Welcome to VM Maestro と表示される画面で下記を入力します。
- Server : VIRL VM の IPアドレス (前述の手順でメモしたアドレス)
- Username : guest
- Password : guest
※ Username/Password はデフォルトで入力されているはずです。
上記を入力し、OK をクリックします。
Secure Storage というポップアップが表示されるので、OK します。
Password Recovery というポップアップが表示されるので、パスワードリカバリー用の質問と答えを設定します。Question1/Question2 の両方入力して OK します。
※画面例は空欄にしていますが、入力が必要です。
すると、VM Maestro の画面になります。右下の guest をクリックしてください。
全ての Web サービスが Compatible として緑色になっていることを確認してください。
問題なければ OK をクリックします。
有効なノードサブタイプの読み込みをしておきます。File -> Preference を開く。
“Restore Defaults” をクリック。
“OK”をクリック。
“Apply” -> “OK” の順番でクリック。
以上で VIRL のインストールと設定は完了です。