Thursday, 2 September 2021

Ruby on Rails / Akatsuki / IPv6

atton がRoRで書いた IP address / VM 管理サービスだったりするんですが、そういえば、

  IPv6 は EUI64 つまり、MAC address 生成で良い

とした記憶はあったんだが、それをVMで使って良いってことになったのはよろしくなかった。

MAC address 変わらないなら文句はないんですが、変わってるじゃん。reboot で動かなくなるのは卑怯だろ。

まぁ、IPv4 と VLAN は対応しているので、IPv6は、そっちから生成してやれば良いのだが。

EUI64とかルータ生成の方が推測しにくいという利点(?)はあるな。

そんなわけで、RoRの active record を手でいじる羽目に。Postgress いきなりいじっているのを見かけたので

  Rails の active record 経由で触る方が良い

ということに。
まずAkatsukiのコンテナの中に入って
    # podman exec -it akatsuki /bin/bash
runner で走らせてやれば良い。
    # RAILS_ENV=production bundle exec rails runner show.rb | more
script も簡単。
     LocalRecord.all.each do |member|
       member.attributes.each do |name,value|
         printf("%s=%s\n", name,value)
       end
     end

record の insert も

AkatsukiのPodmanのコンテナのなかで,
   # RAILS_ENV=production bundle exec rails runner add.rb

     LocalRecord.find_or_create_by(
       name: 'xxxxx.ie.u-ryukyu.ac.jp',
       rdtype: 'A',
       rdata: '10.100.10.xx'
     )



とすれば良いらしい。podman の one liner にしたい感じもあるが、中に送り込むのがめんどいか。

IPv6部分は気が向いたらなおそうかな。VM以外は EUI64 でも良いから。

No comments: