Category Archives: VM

[メモ][Vagrant] FreeBSDのboxを作る。

Pocket

インストール時設定

容量節約のためにgame, srcはインストールしない。
rootのパスワードはvagrantに。
ユーザvagrantを追加、パスワードもvagrantに。
sshdは有効に、dumpdevは無効に。

/etc/rc.confの中身

hostname="freebsd10"
keymap="jp.106.kbd"
ifconfig_em0="DHCP"
sshd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"

インストール後設定

まずはOSの更新。

# freebsd-update fetch install
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... none found.
Fetching public key from update.FreeBSD.org... done.
(略)

pkgのインストール

pkgをインストールするには、pkg listでもなんでも叩けばインストールしてくれる。

# pkg list
The package management tool is not yet installed on your system.
Do you want to fetch install it now? [y/N]: y
(略)

sudoのインストール

vagrant用に。

# pkg install sudo

ユーザvagrantにパスワードなしのsudo権限を与える。

requirettyがあればコメントアウト。

# visudo

vagrant ALL=(ALL) NOPASSWD: ALL

ユーザvagrantのssh key設定

定番のキーをauthorized_keysとしてダウンロードし、パーミッションを設定する。

# mkdir -p /home/vagrant/.ssh
# cd /home/vagrant/.ssh
# fetch --no-verify-peer -o authorized_keys https://github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub
fetch: https://github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub: size of remote file is not known
authorized_keys                                         80 kB  225 kBps 00m00s
#
# chmod 700 ~vagrant/.ssh
# chmod 600 ~vagrant/.ssh/authorized_keys
# chown -R vagrant:vagrant ~vagrant

sshd設定の変更

/etc/ssh/sshd_configに以下を追加。

Port 22
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
PermitEmptyPasswords no
UseDNS no

空行、コメント行を除くとこんな感じ。

# egrep -v '^ *#|^ *$' ./sshd_config
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
PermitEmptyPasswords no
UseDNS no
Subsystem       sftp    /usr/libexec/sftp-server

sshdを再起動

# service sshd restart
Performing sanity check on sshd configuration.
Stopping sshd.
Performing sanity check on sshd configuration.
Starting sshd.

VirtualBox Guest Additonsは必要か。

FreeBSDのGuest Additionsで以下が可能になる。
https://wiki.freebsd.org/VirtualBox

Clipboard sharing
Mouse pointer integration
Host Time synchronization
Window scaling
Seamless mode

逆に言うと、以上が必要なければわざわざ入れることもない。
もしXを入れないのであれば、インストールしないほうがよい。
pkgのGuest AdditionsはX11のサポートがOnになっており、そのままインストールすると山ほどpackageを追加されるから。
ではportsからコンパイルする?
まずportsディレクトリが必要。
さらに、実はGuest AdditionsのコンパイルにはKernelソースが必要なので、/usr/srcも必要。
しかもportsからのコンパイルするとperlやらgmakeやら、いろんなもののコンパイルが発生する。
本当におすすめしない。

Guest Additionsのインストール

インストールする場合には、pkgからvirtualbo-ose-additonsを。
search -fすると分かるが、X11がOnになっている。

$ pkg search -f virtualbox-ose-additions
virtualbox-ose-additions-4.3.30
Name           : virtualbox-ose-additions
Comment        : VirtualBox additions for FreeBSD guests
Description    :
These additions are for installation inside a FreeBSD guest.

Options        :
        DEBUG          : off
        OPENGL         : off
        X11            : on

$ pkg install virtualbox-ose-additions<\pre>

/etc/rc.confの変更
$ sudo sysrc vboxguest_enbale=YES
vboxguest_enbale:  -> YES
$ sudo sysrc vboxservice_enable=YES
vboxservice_enable:  -> YES

念のため確認

$ sudo sysrc vboxservice_enable
vboxservice_enable: YES
$ sudo sysrc vboxguest_enbale
vboxguest_enbale: YES

仮想マシンをパッケージする

シャットダウンしたのち、ホストマシンで梱包
–boxに続けてVirtualBox上の名前を入れる。

vagrant package --box FreeBSD10

できたpackage.boxは約1Gバイト。うーん。ちょっとでかいなあ。

[メモ][Vagrant] Ubuntuのboxを作る

Pocket

Vagrantは便利だが、boxの初回ダウンロードがウンザリするくらい長い。
torrentに流してくれればいいのに…。
しかたないので自分でUbuntuのboxを作る。

参照ドキュメントは公式の以下のもの。
https://docs.vagrantup.com/v2/boxes/base.html

VirtualBox上でUbuntu14.04をインストール後、apt-get update && apt-get upgrade && apt-get dist-upgradeまで済ませた前提。
providerはVirtualBox。
まずVirtualBox特有の注意点を先に。

VirtualBox向けにBoxを作るときの注意点

https://docs.vagrantup.com/v2/virtualbox/boxes.html

  1. ネットワークインタフェースはNATにしておくこと。
  2. MACアドレスをメモしておくこと。
  3. VirtualBox Guest Additionsをインストールしてあること。

一つ目の理由は、VirtualBoxが決め打ちで接続してくるから。
二つ目の理由は、Vagrantfileのconfig.vm.base_macに書く必要があるから。
MACアドレスはVirtualBoxのGUIから確認できる。
三つめの条件を満たすには、あらかじめlinux kernel headersとbasic developer toolsをインストールしておく必要がある。
手順は後述。
ではさっそく。

不要なハードウェアの無効化

USB, オーディオなどを無効化する。
特にUSBが有効になっていると、無用なバグを引いたりするので、無効化しておくことを強く勧める。

デフォルトユーザ(vagrant)の作成

Vagrantの作業用アカウントを作る。
Vagrantはデフォルトでユーザ”vagrant”として仮想マシンにSSH接続する。
vagrantというユーザのいることが明らかだと、それはそれでセキュリティ上のリスクになるのだが、それはVagrantに慣れてから考える。

vagratを追加し、パスワードもvagrantに。
パスワードを設定しておくのは、万が一、手動で仮想マシンに接続する必要が生まれたときのため。

# useradd -m vagrant
# passwd vagrant

SSH接続用に鍵を作成する。
鍵はインターネットからダウンロードする。そんな鍵なんて危ないように見えるが、これはあくまでも初回ブート用。Vagrantが自動的に書き換えてくれる。

# mkdir -p /home/vagrant/.ssh
# cd /home/vagrant/.ssh 
# curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
# chmod 700 /home/vagrant/.ssh
# chmod 600 /home/vagrant/.ssh/authorized_keys
# chown -R vagrant:vagrant /home/vagrant/

ユーザvagrant向けsudo設定

ユーザvagrantがパスワードなしでsudoできるように。
visudoで以下の行を追加。

# visudo
vagrant ALL=(ALL)       NOPASSWD: ALL

さらにrequirettyという記述があればコメントアウト

# requiretty # コメントアウトでttyなくsudoできる。

rootのパスワードも変える。

rootのパスワードも”vagrant”に。

# passwd

sshd設定

sshdがなければインストール。

# apt-get install openssh-server

sshdの設定ファイルを書き換え

# vi /etc/ssh/sshd_config

以下の行があることを確認。なければ書く。

    Port 22
    PubKeyAuthentication yes
    AuthorizedKeysFile %h/.ssh/authorized_keys
    PermitEmptyPasswords no
    UseDNS no

VirtualBox Guest Additionsのインストール

再掲だが以下のドキュメントに沿って。
https://docs.vagrantup.com/v2/virtualbox/boxes.html

# apt-get install dkms
# /etc/init.d/vboxadd setup
# apt-get install -y build-essential linux-headers-server

その後、VirtualBox Guest Additionsのインストール
VitualBoxのGUIからCDを挿入し、以下を実行。

# mount /dev/cdrom /media/cdrom
# sh /media/cdrom/VBoxLinuxAdditions.run
# umount /media/cdrom
# apt-get clean

後はこちらの通り。

[メモ][Windows] VirtualBoxの仮想マシンからvagrantのboxを作る

Pocket

VirtualBox上の仮想マシンをvagrantのboxにする方法はありきたりだが、たいていはLinux、OS Xでの話で、Windowsでのメモはあまりない。そこでメモ。

packageの作成

VirtualBox上の仮想マシンをパッケージする。
vagrant packageの–baseオプションにVirtualBox上の仮想マシン名を与える。
なお、そのまえにUSB、サウンドは無効にしておいたほうがよい。

C:\Users\nobwak\vagrant>vagrant package --base centos64
==> centos64: Exporting VM...
==> centos64: Compressing package to: C:/Users/doe/vagrant/package.box

カレントディレクトリにpackage.boxができた。
この中に仮想マシンが入っている。
あとはこれをどこに移動してもよい。
うーん、ポータブル。
次にこの中の仮想マシンをvagrantから参照する方法。

package.boxをvagrantから参照する。

vagrant init <新規に作成する仮想マシンの名前> <package.boxの場所>と指定してvagrantfileを作る。
もちろんvagrant initと空撃ちして手で書き換えてもよい。後述。

package.boxはローカルに置いてあるので、場所の指定は「file://」に続けてパスを書く。
windowsの場合は「/C:/path/to/package.box」のように書く。
結果、「file:///C:/….」となる。
スラッシュが多くて不安になるけど、これでよい。
なお、windowsっぽく円マークあるいはバックスラッシュを使ってしまうとエスケープされてしまい、vagrantがpackage.boxを見つけられない。注意。

C:\Users\nobwak\vagrant>vagrant init centosTest file:///c:/Users/doe/vagrant/package.
box
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

C:\Users\nobwak\vagrant>

Vagrantfileが以下のようになっていること。
vagrant initを空撃ちした場合には、以下の二行を加えること。

  config.vm.box = "centosTest"
  config.vm.box_url = "file:///c:/Users/nobwak/vagrant/package.box"

あとはvagrant upでよい。

C:\Users\nobwak\vagrant>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos64' could not be found. Attempting to find and install..
<中略>
==> default: Booting VM...
<後略>

別の方法:box listに登録する。

package.boxをvagrantのbox listに登録しておけば、いちいちpackage.boxの場所を指定しなくてもいいようになる。

C:\Users\doe\vagrant>vagrant box add centosSkel package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centosSkel' (v0) for provider:
    box: Unpacking necessary files from: file://C:/Users/nobwak/vagrant/package.box

    box: Progress: 100% (Rate: 9737k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'centosSkel' (v0) for 'virtualbox'!

あとは定石で。

C:\Users\nobwak\vagrant>vagrant init centosSkel
<略>
C:\Users\nobwak\vagrant>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centosSkel'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1442498300953_28586
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...

[memo] VirtualBoxのNATでホストからゲストへの接続を許可(ポートフォワーディング)

Pocket

ほんとにメモ。

VirtualBoxで;

  1. ゲストをホスト外へ露出させず、一方で
  2. ゲストから外部へのアクセスを許可し、なおかつ
  3. ホストからゲストへのsshをさせたい

場合のメモ。

上記をかみ砕くと、ゲストのネットワーク設定で「NAT」を選びつつ、作業のためにホストからゲストへsshをしたい場合。

高度な設定からポートフォワーディングを選び
2015-09-03_22-14-16_090315_102509_PM

ホストのポートとゲストのポートを設定する。
以下の例ではホストの8022に繋ぐとゲストの22、すなわちsshへ繋がれる設定。
2015-09-03_22-14-25_090315_102545_PM

No tags for this post.

[VM] VMWareのイメージをVirtualBoxで読み込むには(OVF経由での読み込み)

Pocket

 

VMware Playerにはsnapshot機能がない。
仮想マシンを使う目的の一つは、本番マシンではできない、いろいろな実験をすることだ。
snapshot機能がないと実験が途端に面倒になる。

こればかりはどうしようもない。仕方がないので、手元の仮想マシンはすべてVirtualBoxに移行する。
そのときのメモ。

全体の流れ

  1. VMWare Player付属のツールでOVFに変換する。
  2. それをVirtualBoxでインポート。

OVFとはOpen Virtualization Formatのこと。詳しくはWikipedia

VMWare Player付属のovftool.exeについて

VMWareのイメージをOVFフォーマットに変換するツール。
コマンドプロンプトで使う。
書式は以下の通り。

ovftool <変換元イメージ> <変換先イメージ>

実際にやってみる。

OVFへの変換。

ovftool.exeはVMWare Playerのインストールフォルダにある。
作業はコマンドプロンプトで行う。
いちいちcdしていくのが面倒なので、以下のようにしてコマンドプロンプトを開く。

convert001
convert002

そして変換元ディスクイメージの指定も面倒なので、いったんエクスプローラに戻り、パスを取得する。

convert003

コマンドプロンプトに戻って貼り付け。その後、変換先イメージの場所を指定。

convert004
convert005

VirtualBoxでのインポート

大して難しいことはない。
が、注意点が一つだけ。

OVFファイルのあるフォルダに、拡張子.mfを持つファイルがある。
VirtualBoxでのインポート前に削除しておくこと。
.mfとはManifestファイルであり、これがあるとインポートに失敗する

convert0071

後は素直に。英語ならpretty straightforwardとかいうでしょうか。

convert006
ファイル→仮想アプライアンスのインポート。

convert007
変換してできたovfを選ぶと、設定が表示される。
メモリ256MBってなんだよ…。あとで設定を変えよう。

convert008

convert009
できあがり。
このあと設定を変えればVirtualBoxで使えます。
なお、OVFファイルは捨ててしまっても問題なし。

No tags for this post.

仮想マシンイメージの変換について

Pocket

 

VMWare PlayerのイメージをESXi用に変換するには

VMWareが提供しているコンバータを使う。
以下、まとめ。

なお、動機としては、「手元のVMware Playerで手軽にいろいろ検証をして、出来上がったものをESXiに移す」ことが出来るようにしたい、というもの。
しかし最後に書くように、変換してもVMware Player上と同じようにESXi上でも動くとは限らない。
可能なら最初からESXi上で検証したほうがよいようだ。

VMware vCenter Converterとは。

 

「VMware vCenter Converter は、物理マシンから仮想マシンへの変換のほか、仮想マシン フォーマット間の変換を自動化および簡素化します。 VMware vCenter Converter では、直感的なウィザード形式のインターフェイスを使用して、物理マシンを仮想マシンに変換できます。」

vmware.comを見ると、「物理マシンから仮想マシンへ変換」なんてすごい事が書いてある(2013/8/1現在)。

さらにvmware.comから引く。

VMware vCenter Converter は、さまざまなハードウェア上で実行でき、最も広く使用されている Microsoft Windows と Linux オペレーティング システムの各バージョンに対応します。 この堅牢なエンタープライズ クラスの移行ツールにより、次のことが可能になります。

システム停止やダウンタイムなしで、ローカルおよびリモートの物理マシンを迅速かつ確実に仮想マシンに変換できます。
統合管理コンソールと直感的な変換ウィザードにより、複数の変換を同時に実行します。

Microsoft Hyper-V、Microsoft Virtual PC、Microsoft Virtual Server など、サードパーティの仮想マシン フォーマットのほか、Symantec Backup Exec System Recovery や Norton Ghost など、物理マシンのバックアップ イメージを VMware の仮想マシンに変換します。

入手

http://www.vmware.com/jp/products/converter

 

手順

ここでは5.0.0ビルド 470252を使用している。

メニューから変換を選ぶ

  1. 「ソースのタイプを選択」→「VMware Workstation またはその他の VMware 仮想マシン」を選ぶ
  2. 仮想マシンファイルで変換したいvmxファイルを選ぶ。
  3. 「ターゲットのタイプを選択」→「VMware Infrastructure 仮想マシン」
  4. VMware Infrastructure サーバの詳細で、ESXiマシンの詳細を入れる。

ESXi上での名前を決めて、あとは適当に。
100MのEternetで2GBytes程度の仮想イメージを転送したところ、10分強かかった。

また、ESXi上で起動するときもいくつか聞かれるが、それも適当に。

 

愚痴

本記事が、とてもやる気のない感じになっているのは、VMware Playerで問題のなかった仮想マシンが、ESXiに移したら途端に調子が悪くなったから。
具体的には、FreeBSD 9.1-RELEASE(amd64)をESXiに移したら、ira16から割り込みの嵐が発生してまともにパフォーマンスがでなかった。
新規で同じOSを入れたら事象発生せず(vmstat -iを見たら割り込みを発生させたデバイスがない)。
ぐぐっても解決策なし。
がっかり。

No tags for this post.

VMWare vSphere5.0(ESXi5.0)インストーラをUSBメモリ「から」起動するには

Pocket

VMWareのESXiは大変便利なのだが、インストーラをCDに書き込む必要のあるのが玉に瑕。
今更CD-R/DVD-Rなんて持ってないよ。
USBメモリにインストーラをインストールする方法を調べたのでまとめる。

なおESXiはVMWareからダウンロードしている前提。

UNetbootinの入手

以下より、OSに合わせたUNetbootinをダウンロード。

http://unetbootin.sourceforge.net/

Windows、Macのほか、各種Linux向けにも用意されているし、インストールの必要なく動作するので、Windowsのレジストリだって汚れないよ!

USBメモリの準備

USBメモリはFAT32でフォーマットしておく。
Windowsでは「クイックフォーマット」は選んだりしないこと。

USBメモリへの書き込み

USBメモリを挿してから、USBUNetbootinを起動。
ディスクイメージ→ISO→ESXiのインストーラISOイメージを選択
タイプでUSBメモリを選択
OKをクリック

unetbootin

以下のようになれば完成。
ママも安心ESXiインストーラ入りUSBメモリの出来上がり。

unetbootin01

以上

 

No tags for this post.