SoftLayer仮想サーバにVyOSをインストールしました


# 1. はじめに
　SoftLayerDCでVPN構成する際には、ポータルからオーダーできる<font color="blue">仮想サーバ＋VyattaCE</font>の組み合わせがよく使われています。
 　このSoftLayerが仮想サーバで提供しているVyattaCEは、2015年8月末で提供終了し、2015年10月8日にはサービスを終了する予定だそうです。(2015年8月現在)
代替手段としては、ベアメタルサーバと有償版のVyattaSEやBrocade社提供の製品を使用する事が考えられますが、ベアメタルサーバが前提であったり有償版のため、費用が高くなってしまいます。
(ただし、高可用性、GUI設定やサポートが必要な場合は、有償版をお薦めします。)
　　
 今回は、VyattaCEの代替としてVyOSを使用し、<font color="blue">仮想サーバにVyOSをインストールする手順</font> をまとめました。
 尚、TeraTermでVyOS接続できるまでの記述ですので、VyOSの詳細設定は省略しています。VyOSのサイトを参考にしてください。
 http://wiki.vyos-users.jp/

# 2. 全体の流れ
　SoftLayerポータルより、仮想サーバ(Debian7)をオーダーし、ISOブートでVyOSを導入します。
 ![01.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/01.png) 
 
# 3. ①仮想サーバ(Debian7)のオーダー
下記構成でオーダーしました。
 ![02.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/02.png) 
 費用は$56.6/月。(2015年8月現在)
 CPU、メモリー、ネットワーク速度は必要に応じて調整してください。
 
 数分で仮想サーバが出来上がりました。
 サーバ名は<font color="blue">「Debian7」</font>です。
 ![10.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/10.png) 
  
 <strong>以上で「①仮想サーバ(Debian7)のオーダ」完了！</strong>
 

# 4. ②VyOS(iso)のダウンロード
　最新版のVyOS1.1.6-64bit (Last modified 2015-08-17 14:01 )の<font color="blue">「vyos-1.1.6-amd64.iso」</font>をダウンロードします。

http://wiki.vyos-users.jp/
![03.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/03.png) 
<font color="blue">「物理環境および仮想環境 64-bit: [1] 」をクリック。</font>

クライアントPCにダウンロードしました。
![12.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/12.png)

>
◆過去のバージョンをご希望の場合はこちらから。
http://ftp.tsukuba.wide.ad.jp/software/vyos/iso/release/
![07.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/07.png) 
>


 <strong>以上で「②VyOS(iso)のダウンロード」完了！</strong>
 
# 5. ③VyOS(iso)をObjectStorageへ転送
少々面倒ですが、ここでは<font color="blue">クライアントPCにダウンロード</font>した<font color="blue">「vyos-1.1.6-amd64.iso」</font>を<font color="blue">SCPで仮想サーバへ転送</font>し、Debian7にCloudFuseを導入してから、<font color="blue">ObjectStorageをマウント</font>した上で、<font color="blue">ObjectStorageへコピー</font>しました。
![08.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/08.png) 

<font color="red">注意！「CloudBerry Explorer for OpenStack Storage」で直接コピーした「vyos-1.1.6-amd64.iso」はインポートイメージができませんでした。
また、ポータルから転送も転送状況がわからないので、面倒ですが上記の方法をとりました。</font>

### 5-1. 「vyos-1.1.6-amd64.iso」をSCPで転送(クライアントPC⇒Debian7)
SCPは<font color="blue">「WinSCP Ver5.7.5」</font>を使用しました。

>  「WinSCP」は下記サイトからダウンロードできます。
   https://osdn.jp/projects/winscp/
  http://www.forest.impress.co.jp/library/software/winscp/ 
> 

![17.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/17.png) 
<font color="blue">「WinSCP」</font>起動。


![19.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/19.png)
仮想サーバの<font color="blue">「IPアドレス」、「ユーザ名」、「パスワード」</font>を入力し、<font color="blue">「ログイン」</font>ボタンを押す。

![20.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/20.png)
初めて接続時にこのダイアログが表示されるので、<font color="blue">「はい(Y)」</font>を押す。

![25.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/25.png)
コピー先はDebian7の<font color="blue">「/tmpディレクトリー」</font> にしました。
<font color="blue">「vyos-1.1.6-amd64.iso」</font>を<font color="blue">ドラッグ＆ドロップ</font>。

![26.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/26.png)
アップロード中。

![27.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/27.png)
「vyos-1.1.6-amd64.iso」を「/tmpディレクトリー」へアップロード完了。
![29.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/29.png)

### 5-2. 「vyos-1.1.6-amd64.iso」をDebian7からObjectStorageへコピー
#### 5-2-1. CloudFuseのインストール
 Debian7へCloudFuseをインストールする前に、<font color="blue">CloudFuseビルドに必要なツール</font> をインストールします。

```Command:CloudFuseビルド用ツールのインストール
# apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libfuse-dev ⏎
``` 
![31.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/31.png) 

次に、Git関連のインストール。

```Command:Git関連のインストール
  # apt-get install git ⏎
``` 
![33.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/33.png) 

Gitで<font color="blue">CloudFuseをクーロン</font>。
    
```Command:CloudFuseをクーロン
  # git clone https://github.com/redbo/cloudfuse ⏎
``` 
![35.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/35.png) 

 CloudFuseを<font color="blue">ビルドとインストール</font>。

 ```Command:CloudFuseをビルドとインストール
  # cd cloudfuse ⏎
  # ./configure ⏎
  # make ⏎
  # make install ⏎
``` 
![37.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/37.png) 

これで、<font color="blue">Debian7にCloudFuseインストール完了</font>です。

#### 5-2-2. ObjectStorageのCredential情報入手
、<font color="green">※Object Storageはオーダー操作、設定は省略します。</font>
ここでは、アカウントの下のクラスターをTokyo2。その中に、<font color="blue">「testdata」</font>というコンテナを作りました。

まず、CloudFuseの設定をするために、ObjectStorageの情報(Credentials)
<font color="blue">・Authentication Endpoint:
・Username:
・API Key (Password): </font>
を入手します。

ポータルでの操作です。
![39.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/39.png) 
<font color="blue">「Storage」</font>⇒<font color="blue">「Object Storage」</font>クリック。

![41.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/41.png)
「vyos-1.1.6-amd64.iso」を保管する、<font color="blue">ObjectStorageを選択</font>し、クリック。

![44.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/44.png)
<font color="blue">「ロケーション」</font>を選択し、クリック。(ここでは、Tokyo2を選択しました。)

![45.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/45.png)
<font color="blue">「View Credentials」</font>をクリック。

![47.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/47.png)
Credential情報をメモ帳などにコピーし、保管。次のCloudFuse設定で使用します。
<font color="blue">「OK」</font>を押し、終了。

#### 5-2-3. CloudFiseの設定
Debian7での操作です。
rootユーザでログイン後、<font color="blue">「~/.cloudfuse」</font>ファイルを作成し、Credentialを登録します。
ここでは、nanoを使用しました。

```Command:cloudfuseファイルを作成
  # nano ~/.cloudfuse ⏎
``` 
![49.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/49.png)

```Command:Credential情報の登録
  username=SLOSxxxxxx-2:SLxxxxxx
  api_key=cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  authurl=https://tok02.objectstorage.softlayer.net/auth/v1.0/
``` 
![51.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/51.png)
前の「5-2-2. ObjectStorageのCredential情報入手」で入手した、Credential情報を登録します。
<font color="blue">「Ctl+x」</font>⇒<font color="blue">「Y」</font>⇒<font color="blue">⏎</font>で保存終了します。

#### 5-2-4. ObjectStorageのマウント
<font color="blue">「/mnt」</font>にObjectStorageをマウントします。

```Command:ObjectStorageのマウント
# cloudfuse /mnt ⏎
``` 
![53.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/53.png)
マウント完了。

念のため、dfで確認。

```Command:dfでObjectStorageのマウント確認
# df ⏎
``` 
![55.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/55.png)
<font color="blue">「/mnt」</font>にObjectStorageがマウントされています。

#### 5-2-5. 「vyos-1.1.6-amd64.iso」をObjectStorageへコピー
 Debuan7の<font color="blue">/tmp</font>にある<font color="blue">「vyos-1.1.6-amd64.iso」</font>を<font color="blue">/mnt/testdata</font>にコピーします。

```Command:vyos-1.1.6-amd64.isoをコピー
# cd /mnt/testdata ⏎
# cp /tmp/vyos-1.1.6-amd64.iso ./ ⏎
``` 
![57.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/57.png) 

<strong>以上で、「③VyOS(iso)をObjectStorageへ転送」完了！</strong>

# 6. ④ VyOS(iso)のイメージテンプレート化
ポータルでの操作です。

「vyos-1.1.6-amd64.iso」をイメージテンプレート化します。
![59.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/59.png) 
<font color="blue">「Devices」</font>⇒<font color="blue">「Manage」</font>⇒<font color="blue">「Imeges」</font>

![61.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/61.png) 
<font color="blue">「Import Image」</font>タグを選択。

![63.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/63.png) 
プルダウンより、<font color="blue">「Account」</font>、<font color="blue">「Cluster」</font>(ロケーション)、<font color="blue">「Container」</font>、<font color="blue">「Image File」</font>を選択し、<font color="blue">「Image Name」</font>を入力(ここでは「vyos-1.1.6-amd64」にしました)。
<font color="blue">「Import」</font>ボタンを押す。

![65.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/65.png) 
イメージタイプISOの、<font color="blue">「vyos-1.1.6-amd64」</font>イメージが作成されました。

<strong>以上で、「④ VyOS(iso)のイメージテンプレート化」完了！</strong>

# 7. ⑤ VyOS(iso)のISOブート
 あらかじめ準備した、Debian7に<font color="blue">「vyos-1.1.6-amd64」をISOブート</font>し、上書きインストールします。

![67.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/67.png) 
対象の<font color="blue">「Device」</font>をクリックして、詳細表示します。

![69.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/69.png) 
<font color="blue">「Action」</font>⇒<font color="blue">「Boot from Image」</font>を選択。

![71.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/71.png) 
<font color="blue">「Boot from This Image」</font>をクリック。

![73.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/73.png) 
<font color="blue">「Boot From Image」</font>をクリック。

![75.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/75.png) 
<font color="blue">「OK」</font>をクリック。

これで、ISOブートの指示が完了したので、これ以降「KVM」での操作となります。
<font color="red">尚、「KVM」での接続は管理ネットワーク経由の接続となりますので、あらかじめSoftLayerのSSL(無償)で接続しておいてください。
また、初めて「KMV」で仮想サーバ接続すると、Javaアプリケーションがブロックされますので、下記手順を実施してください。</font>

>
![77.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/77.png) 
「場所：http://10.3.30.24:5199」をメモして 下さい。下記手順で使用します。
「OK」を押して画面を閉じます。
クライアントPCで、「コントロールパネル」⇒「Java」⇒「セキュリティタグ」⇒「サイト・リストの編集」をクリック。
![80.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/80.png) 
「追加」ボタンを押す。
![82.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/82.png)
一番下までスクロールし、矢印のフィールドに先ほどメモしたアドレスを入力後、「OK」ボタンを押す。
![84.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/84.png)
「続行」ボタンを押す。
「OK」ボタンを押して、「javaコントロール・パネル」を閉じます。
ブラウザーを全て閉じ、再度ブラウザーを開いて終了です。
>


「KVM」でサーバ画面を開きます。
![86.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/86.png)
<font color="blue">「Action」</font>⇒<font color="blue">「KVM Console」</font>を選択

![88.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/88.png)
<font color="blue">「実行」</font>を押す。

![90.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/90.png)
VyOSがISOブートで起動されてます。
画面が黒い状態のままでしたら、黒い画面をクリックして、⏎キーを押してください。

<strong> 以上で「⑤ VyOS(iso)のISOブート」完了！</strong>
 
# 8. ⑥ VyOSインストール
　プライベート/パブリックネットワークインターフェースはまだ、認識されていないため「KVM」でインストールします。
　VyOSのインストール方法は、
 <font color="blue">・システムインストール(install system)
 ・イメージインストール(install image)</font>
 の２通りありますが、ここでは<font color="blue">イメージインストール</font>で行います。
 
![93.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/93.png)
 　ログインID：vyos 、パスワード：vyos でログイン。
![95.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/95.png) 
 
![98.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/98.png) 
 「install image」 ⏎
 
![101.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/101.png) 
 ⏎ (Yes)

![104.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/104.png) 
 「No」⏎
 ここでは、「RAID-1構成にしない」にしました。
 
 ![106.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/106.png) 
 「Auto」⏎
 ここでは、パーティション構成を「自動」にしました。

![109.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/109.png) 
 「xvda」⏎
 ここでは、「xvdaにインストール」しました。
 
![112.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/112.png) 
 「Yse」⏎
 ここでは、「xvdaのデータを消去」にしました。
 
![115.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/115.png) 
 「Yse」⏎
 ここでは、「Devian7サーバ作成時SSH Keyを保管」にしました。
  
![117.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/117.png) 
 「1000」⏎
 ここでは、「サイズを1000MB」にしました。
 
![119.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/119.png) 
 「1000」⏎
 ここでは、「名称を"1.1.6"」にしました。

![121.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/121.png) 
 ⏎

![121.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/121.png) 
 「vyos」⏎
 ここでは、「パスワードを"vyos"」にしました。
 
![126.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/126.png) 
 「xvda」⏎

![127.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/127.png) 
 「reboot」⏎
再起動。

![129.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/129.png) 
VyOSが起動しました。

<strong> 以上で「⑥ VyOSインストール」完了！</strong>


# 9. ⑦ VyOSネットワークの設定
  eth0、eth1のIPアドレスやディフォルトゲートウェイ、がまだ設定されてないので、Teratermなのでアクセスできません。
 <font color="blue"> eth0、eth1、gateway-address、ssh</font>の設定をします。
 
 ポータルのデバイス詳細より、<font color="blue">ネットワーク設定をメモ</font>。
 ![131.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/131.png) 

VyOSの設定
◆<font color="blue">「configure」</font>コマンドで設定モードへ移ります。
次に、<font color="blue">「show interfaces」</font>でeth0、eth1の設定値を確認します。

```Command:設定モードへ
$ configure ⏎
``` 

```Command:interfaceの確認
# show interfaces ⏎
``` 
![134.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/134.png) 
  
◆interface-eth0に、<font color="blue">「address」「duplex」「smp_affinity」「speed」</font>を設定。(Private)

```Command:interface-eth0設定
# edit interfaces ethernet eth0 ⏎
# set address xxx.xxx.xxx.xxx/26 ⏎
# set duplex auto ⏎
# set smp_affinity auto ⏎
# set speed auto ⏎
# commit ⏎
# save ⏎
``` 
![136.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/136.png)

◆interface-eth1に、<font color="blue">「address」「duplex」「smp_affinity」「speed」</font>を設定。(Public)

```Command:interface-eth1設定
# edit interfaces ethernet eth1 ⏎
# set address xxx.xxx.xxx.xxx/28 ⏎
# set duplex auto ⏎
# set smp_affinity auto ⏎
# set speed auto ⏎
# commit ⏎
# save ⏎
``` 
![138.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/138.png)

◆<font color="blue">ゲートウェイアドレス</font>の設定。

```Command:gateway-address設定
# edit system ⏎
# set gateway-address xxx.xxx.xxx.xxx ⏎
# commit ⏎
# save ⏎
``` 
![140.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/140.png)

◆<font color="blue">ssh</font>の設定。

```Command:ssh設定
# edit service ⏎
# set ssh ⏎
# edit ssh ⏎
# set port 22 ⏎
# commit ⏎
# save ⏎
``` 
![142.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/142.png)
これで、外部からssh接続できる環境ができました。

TeraTermでPublic 経由で接続してみます。
![144.png](http://www.seahorse-inc.com/QIITA/VyOS-Inst/144.png)

 <strong>以上で「⑦ VyOSネットワークの設定」完了！</strong>


# 10. おわりに
「VyOSを仮想サーバへインストールする」がメインでしたが、"CloudFuseでのObjectStorageマウント操作"、"ISOのイメージテンプレート化"、"仮想サーバでのISOブート方法"、"KVM Consokeについて"、"VyOSインストール"、"VyOS設定さわり"と色々な事を詰め込みすぎたかもしれません。