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でも使えます。
ロゴスウェア
最新記事 by ロゴスウェア (全て見る)
- Amazon Linux(EC2)と PHPSTORM で Xdebug を行う - 2018年9月26日
- やらないことの合意 - 2018年6月27日
- 卒園アルバムとプロジェクトマネジメント - 2018年3月30日
Comments are closed.