【簡単】VMイメージを複製した時のネットワーク設定


Webシステムの開発者は特に「まっさらなWebサーバー」を必要とします。色々と手垢のついたサーバーでは、不必要な不具合を作り出してしまいます。
そのような場合に役に立つのがVMです。VMイメージを保存しておけば、簡単に「まっさらなWebサーバー」を入手できます。

今回は、私の環境(iMac+Parallels)でCentOS6.5のVMイメージを作成したものとします。
このVMイメージを「複製」します。
残念ながら「複製されたVM」はネットワークの設定をしなければ使えません。
毎回手作業で行ってもいいのですが、こういう単純作業はシェルスクリプトに任せましょう。

1.イメージの元になるゲストOS上で、次のスクリプトを「networkSetting.sh」として保存します

おそらくrootで作業をするので/root/直下でいいと思います。

#!/bin/bash

sed -i -e '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules
sed -i -e 's/eth1/eth0/g' /etc/udev/rules.d/70-persistent-net.rules
MA=`ifconfig eth1 | grep 'HWaddr ' | sed -e 's/^.*HWaddr //' -e 's/ .*//'`
sed -i -e "/HWADDR/c\HWADDR=${MA}" /etc/sysconfig/network-scripts/ifcfg-eth0
reboot

2.「networkSetting.sh」に実行権限を与えます

# chmod +x networkSetting.sh

3.VMイメージを作成します
これで、複製後すぐにこのシェルを実行できる準備ができました。

4.VMイメージを複製し、rootでログインします
ログインしたらいきなり実行します。

# ./networkSetting.sh

5.気になったら確認します

# ifconfig -a

とりあえず、外部から接続するためにIPは手元に控えておいてください。
それはそれとして何が何に変わったか分からない・・・ですね。シェルスクリプトを実行する前に、このコマンドを実行して見ておくと比較できていいかもしれません。

6.外部ターミナルから接続する
接続できればOKです。

さて、ざっと説明しておきます。
元になるVMイメージのせい(?)で複製したVMのNICが「eth1」になっています。
そこで、使えないeth0を削除して(3行目)、eth1をeth0に書き換え(4行目)ます。
ここではまだrebootしていないことに留意してください。
rebootしていないのでifconfigは古い情報のままですのでeth1のMACアドレスを取得します(5行目)。
現時点では「HWaddr (MACアドレス)」の後ろには改行コードしかないのですが、一応スペース以降は削除しておきます。
今取得したMACアドレスをeth0に割り当てます(6行目)。
最後にrebootします。

蛇足ですが・・・。
このシェルスクリプトはRHEL6.5でも使えます。

The following two tabs change content below.

谷中

システム開発チームと検証チームのマネージャー。 「疎結合 小さなクラス 分業制」 を裏スローガンとし、これが実現できてこそ、幸せな開発者人生を過ごせるという確信のもと、上流から設計まで口を挟んだり挟まなかったりしています。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>