最初に、ありがちな
/etc/network/interfaces
の最後に # eth0設定
auto eth0
iface eth0 inet static
address 172.20.XX.XX
network 172.20.0.0
netmask 255.255.0.0
broadcast 172.20.255.255
gateway 172.20.YY.YY
な感じで、追加したんだけど、起動してみたら確かに、指定したアドレスのIPを持ってたんだけど、それとは「別に」DHCPでもアドレスを取得していてそっちでもアクセスできちゃう。さらに気持ち悪いことに、ifconfigをやってみると、なぜかDHCPで取ってきたアドレスだけ表示されて、↑で指定したアドレスが見えない。
{なんじゃろなー・・・}
と思い /etc/network/interfaces を見てみると、
source /etc/network/interfaces.d/*.cfg
てな行があったので、 {こいつか}
と探すと、
/etc/network/interfaces.d/50-cloud-init.cfg
がいた、このページを見た感じ、これ変えりゃ行けるっぽかったので、このファイルに設定を移して、rebootすると、指定アドレスでなくDHCPになっている。{オレなんかミスったか?}
と
/etc/network/interfaces.d/50-cloud-init.cfg
を見ると編集前の状態に戻っている。 {はっーー!? なんじゃそりゃ?}
もう一回やったが、全く同じ現象・・・
どうやら、cloud-initさんとやらが起動時に勝手に書き換えちゃってくれているらしい。
ちょっと調べると、ビンゴなタイトル「how to set static ip in ubuntu 16.04 on raspberry pi 3 (cloud-init)?」のページがあったんだけど、回答はついてなくて、コメントで
「sudo apt remove cloud-init やったら動いたょ」
「えーっ。cloud-init使う方法ないの?」
みたいなやりとりがあって微妙。
他にもIP変えようとして、苦労して解決したけどcloud-initへの怒り丸出しなページ も発見、しかし、うちのケースには役に立たずがっかり。
{うー。ちゃんとしたドキュメント見つからないなーー。}
とさまよっていると、RedHatのユーザー向けページに「cloud-init に関する FAQ」 なんてやつを発見。結構丁寧に書いてあるが、↑で最初に書いたような設定を、meta-data ファイルに書けとの司令。
{うーむ、meta-data ファイルって何・・? っていうか、どこ・・?}
公式 見ても、ググっても何か埒あかないので、頭来て、
sudo find / 2>/dev/null | grep meta-data
で、ルートから探してやったら、 /var/lib/cloud/seed/nocloud-net/meta-data
{なんすかそこは? 見つかんないよそれは・・・}で、その見つけたファイルに
network-interfaces: |
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.20.XX.XX
network 172.20.0.0
netmask 255.255.0.0
broadcast 172.20.255.255
gateway 172.20.YY.YY
bootcmd:
- ifdown eth0
- ifup eth0
って追加したらやっとまともに動きました。 動きはしたんですが、
/etc/network/interfaces.d/50-cloud-init.cfg
はdhcpのままなんすよね。/etcをgrepしても、↑で指定したアドレスを含むファイルは無いようだし、cloud-init 全然理解してないです。
0 件のコメント :
コメントを投稿