os:xenserver:autometer:xenauto-freebsd
FreeBSDにxenserver-automatorを移植する
VagrantとかPackerとかありますが、Xenではよさげなところでスナップショットを取ってテンプレート化すればそんなに困らない。でも起動時にIPを引き継ぐのは寂しいので、新しいVMを作成するときに新しいIPを指定したい。
xenserver-automatorなるものを利用すればできると分かったのですがLinux用…
「FreeBSDで使いたい」と言ったら、「言いだしっぺが実装するんじゃ」と言われましたので…
xenserver-automaterはLinux用でしたので、これをFreeBSDに移植します。
テンプレートとなる仮想マシンで以下の設定をします
起動スクリプトの設定
/etc/rc.confに以下の行を追加します
xe_auto_net_configure_enable="YES"
起動時に実行されるスクリプト
以下のファイルを /usr/local/etc/rc.d/ に配置します。1)
- xe_auto_net_configure_enable
#!/bin/sh # # xe_auto_net_configure # # PROVIDE: xe_auto_net_configure # REQUIRE: NETWORKING . /etc/rc.subr name="xe_auto_net_configure" rcvar="xe_auto_net_configure_enable" stop_cmd=":" start_cmd="xe_auto_net_configure_start" xe_auto_net_configure_start() { /usr/local/sbin/xe-set-network } load_rc_config $name run_rc_command "$1"
ネットワーク設定をするスクリプト
以下のファイルを /usr/local/sbin/ に配置します。2)
- xe-set-network
#!/bin/sh # # xe-set-network # [ -e /usr/local/bin/xenstore-read ] || exit 0 NAME=`/usr/local/bin/xenstore-read name` DOMAIN=`/usr/local/bin/xenstore-read vm-data/dm` IP=`/usr/local/bin/xenstore-read vm-data/ip` GW=`/usr/local/bin/xenstore-read vm-data/gw` NM=`/usr/local/bin/xenstore-read vm-data/nm` NS=`/usr/local/bin/xenstore-read vm-data/ns` DM=`/usr/local/bin/xenstore-read vm-data/dm` [ "$NAME" = "" ] && exit 0 [ "$IP" = "" ] && exit 0 [ "$GW" = "" ] && exit 0 [ "$NM" = "" ] && exit 0 [ "$NS" = "" ] && exit 0 # stoping network I/F /usr/sbin/service netif stop # change host if [ "$DOMAIN" = "" ]; then FULLHOST=$NAME else FULLHOST=$NAME.$DOMAIN fi hostname $FULLHOST /usr/sbin/sysrc hostname="$FULLHOST" # change IP /usr/sbin/sysrc ifconfig_xn0="inet $IP netmask $NM" /usr/sbin/sysrc defaultrouter="$GW" # change /etc/hosts cp /etc/hosts /etc/hosts.`/bin/date +%Y%m%d-%H%M` cat << EOF > /etc/hosts 127.0.0.1 localhost $IP $FULLHOST $NAME EOF # change nameserver /bin/cp /etc/resolv.conf /etc/resolv.conf.`/bin/date +%Y%m%d-%H%M` /bin/cat << EOF > /etc/resolv.conf search $DOMAIN nameserver $NS EOF # restarting network start /etc/netstart # bootup script off /usr/sbin/sysrc xe_auto_net_configure_enable="NO"
テンプレートの作成以降
テンプレートの作成以降は、Linux用の手順(テンプレートの作成以降)と同じです。
os/xenserver/autometer/xenauto-freebsd.txt · 最終更新: 2017/04/14 05:21 by 127.0.0.1