2010年09月27日
@ 北陸先端科学技術大学院大学
北陸先端科学技術大学院大学にタッチ!
住所:石川県能美市旭台1-1
@ Johnカリオストロ
Johnカリオストロにタッチ!
住所:石川県石川郡野々市町横宮町8-11 グランディール103号
2010年09月10日
タイトルの通りの変換を行うスクリプトを作ってみました。
引数には、MACアドレスリストを書いたファイルを渡す必要があります。
用途的に、$jの部分は別にハードコードしても問題ないかと思います。
$prefixは将来的には指定できるようにして、
グローバルアドレスに対応させようと思っていたり。
そうなると::省略が真ん中とは限らなくなったり、そもそも省略がなかったりしますね。
ちなみに引数で渡すファイルの中身はこんな感じ。
1行ずつ書かれているのを想定しています。
空行があると変なアドレスを出力しちゃうと思います。
ところで何に使うんだろう
#!/usr/bin/perl
$prefix = "fe80";
$mac_file = $ARGV[0];
open(MACLIST, "< $mac_file");
while($buf=<MACLIST>) {
@mactmp = split(/:/,$buf);
$j=0;
$addrtmp = hex($mactmp[$j++]) ^ 2;
$addr[0] = sprintf("%x%s",$addrtmp,$mactmp[$j++]);
$addr[1] = sprintf("%sff",$mactmp[($j++)]);
$addr[2] = sprintf("fe%s",$mactmp[($j++)]);
$addr[3] = sprintf("%s%s",$mactmp[($j++)],$mactmp[$j++]);
printf("$prefix::$addr[0]:$addr[1]:$addr[2]:$addr[3]",$addr[0]);
}
引数には、MACアドレスリストを書いたファイルを渡す必要があります。
用途的に、$jの部分は別にハードコードしても問題ないかと思います。
$prefixは将来的には指定できるようにして、
グローバルアドレスに対応させようと思っていたり。
そうなると::省略が真ん中とは限らなくなったり、そもそも省略がなかったりしますね。
ちなみに引数で渡すファイルの中身はこんな感じ。
1行ずつ書かれているのを想定しています。
空行があると変なアドレスを出力しちゃうと思います。
11:11:11:11:11:11
22:22:22:22:22:22
2010年09月09日
CentOSで、MyPLCを構築するためのメモです。
yumが使用出来れば、他のディストリビューションでも同じようにできると思われます。
ちなみにCentOS5.5での作業メモです。
・selinuxを無効にする
selinuxが有効だと、MyPLCのサービスが起動しなかったりと
挙動に影響が出るので無効にしておきます。
具体的には、空パスが設定されるところに、違うパスワードが設定されたりします。
/etc/sysconfig/selinuxを編集。
SELINUX=enforcing を SELINUX=disabled に変更します。
・yum用のファイルの作成
MyPLCをyumで入手するために、レポジトリの設定ファイルを作成します。
/etc/yum.repo/myplc.repoなどの名前で保存します。
baseurlのURL部分は、使いたいバージョンや
PLC用ホストのOS等に合わせて変更します。
作成後、yumでmyplcをインストールします。
MyPLC本体を含めて、必要なパッケージが一通りインストールされます。
・・・のはずだったんですが、build.planet-lab.orgが落ちていたり
依存関係が解決できなくてエラーが出たりしてるので
今回はyumの必要ないRPMを使用しています。
plc-config-ttyというコマンドが用意されており
インタラクティブに各項目を設定できます。
DNS以外は、基本的に自分自身のIPアドレスを入力すればOKです。
ただし、127.0.0.1などを指定してはいけません。
ここで指定したアドレスはインストーラで使用されるので
少なくとも、インストールするノードから到達性のあるアドレスを指定します。
DNSについてはPLCから利用するDNSサーバを指定します。
一通り入力した後、コマンドを入力できます。
wで設定を反映させた後、rでサービスを再起動
一通りのサービスがOKとでれば完了です。
yumが使用出来れば、他のディストリビューションでも同じようにできると思われます。
ちなみにCentOS5.5での作業メモです。
準備・インストール編
・selinuxを無効にする
selinuxが有効だと、MyPLCのサービスが起動しなかったりと
挙動に影響が出るので無効にしておきます。
具体的には、空パスが設定されるところに、違うパスワードが設定されたりします。
/etc/sysconfig/selinuxを編集。
SELINUX=enforcing を SELINUX=disabled に変更します。
・yum用のファイルの作成
MyPLCをyumで入手するために、レポジトリの設定ファイルを作成します。
/etc/yum.repo/myplc.repoなどの名前で保存します。
[myplc]
name= MyPLC
baseurl=http://build.planet-lab.org/planetlab/centos5/planetlab-centos5-i386-5.0-rc10/RPMS/
enabled=1
gpgcheck=0
baseurlのURL部分は、使いたいバージョンや
PLC用ホストのOS等に合わせて変更します。
作成後、yumでmyplcをインストールします。
# yum install myplc
MyPLC本体を含めて、必要なパッケージが一通りインストールされます。
・・・のはずだったんですが、build.planet-lab.orgが落ちていたり
依存関係が解決できなくてエラーが出たりしてるので
今回はyumの必要ないRPMを使用しています。
設定・起動
plc-config-ttyというコマンドが用意されており
インタラクティブに各項目を設定できます。
DNS以外は、基本的に自分自身のIPアドレスを入力すればOKです。
ただし、127.0.0.1などを指定してはいけません。
ここで指定したアドレスはインストーラで使用されるので
少なくとも、インストールするノードから到達性のあるアドレスを指定します。
DNSについてはPLCから利用するDNSサーバを指定します。
一通り入力した後、コマンドを入力できます。
wで設定を反映させた後、rでサービスを再起動
<plc> -bash-3.2# plc-config-tty
Enter command (u for usual changes, w to save, ? for help) u
== PLC_NAME : [PlanetLab Test] PlanetLab on OpenNebula
== PLC_SLICE_PREFIX : [pl]
== PLC_ROOT_USER : [root@localhost.localdomain] nanodayo@nanodayo.org
== PLC_ROOT_PASSWORD : [root]
== PLC_MAIL_ENABLED : [false]
== PLC_MAIL_SUPPORT_ADDRESS : [root+support@localhost.localdomain] nanodayo@nanodayo.org
== PLC_DB_HOST : [localhost.localdomain] 192.168.122.219
== PLC_API_HOST : [localhost.localdomain] 192.168.122.219
== PLC_WWW_HOST : [localhost.localdomain] 192.168.122.219
== PLC_BOOT_HOST : [localhost.localdomain] 192.168.122.219
== PLC_NET_DNS1 : [127.0.0.1] 192.168.122.1
== PLC_NET_DNS2 : [None]
Enter command (u for usual changes, w to save, ? for help) w
Wrote /etc/planetlab/configs/site.xml
Merged
/etc/planetlab/default_config.xml
and /etc/planetlab/configs/site.xml
into /etc/planetlab/plc_config.xml
+ service plc reload
You might want to type 'r' (restart plc) or 'q' (quit)
Enter command (u for usual changes, w to save, ? for help) r
==================== Stopping plc
PLC: Stopping crond: [ OK ]
PLC: Reverting /etc/resolv.conf and /etc/hosts: PLC: Stoppi[ OK ]erver:
[ OK ]
PLC: Stopping web server: [ OK ]
PLC: Stopping database server: [ OK ]
PLC: Stopping mail server: [ OK ]
PLC: Shutting down system logger: [ OK ]
[ OK ]
==================== Starting plc
PLC: Generating network files: [ OK ]
PLC: Starting system logger: [ OK ]
PLC: Starting database server: [ OK ]
PLC: Generating SSL certificates: [ OK ]
PLC: Configuring the API: [ OK ]
PLC: Updating GPG keys: [ OK ]
PLC: Generating SSH keys: [ OK ]
PLC: Starting web server: [ OK ]
PLC: Bootstrapping the database: [ OK ]
PLC: Starting DNS server: PLC: Configuring resolv.conf: [ OK ]
PLC: Starting crond: [ OK ]
PLC: Rebuilding Boot CD: [ OK ]
PLC: Rebuilding Boot Manager: [ OK ]
PLC: Signing and indexing node packages: [ OK ]
Enter command (u for usual changes, w to save, ? for help) q
一通りのサービスがOKとでれば完了です。