2024/10/08(火)ルーターの簡易ネームサーバ
RTX1210のネームサーバ機能はUDPでの昔ながらの応答しか返せないようで、EDNSやらTCPフォールバックやらを要求されても応答できない。
タブレットがたまにSambaを見失う事はあったけど、Linuxは高頻度で見失う。systemd-resolvedがそういう動きをする?
RTX1210のネームサーバ機能はUDPでの昔ながらの応答しか返せないようで、EDNSやらTCPフォールバックやらを要求されても応答できない。
タブレットがたまにSambaを見失う事はあったけど、Linuxは高頻度で見失う。systemd-resolvedがそういう動きをする?
FedoraCoreos にパッケージを追加する場合は Ansible でも使うのがいいかな?と考えていたけど、一応公式ドキュメントにパッケージを追加する場合のサンプルがある。
https://docs.fedoraproject.org/en-US/fedora-coreos/os-extensions/
Type=oneshot で systemd ユニットを実行する事で起動時に一回だけ実行させる方法が取られている。これを ignition で実行する事でOSインストール時に一緒に実行できる。もっといい方法を導入する予定だ、と2020年に宣言されているが続報はない。
簡単な操作ならこれでもいい。 Ansible をインストールするような systemd ユニットを作るのが妥協点だろうか。
https://pvamos.github.io/fcos-k8s/
そんな事例を見つけた。
参考情報をみてやるだけ、ではある。 https://docs.freebsd.org/en/books/handbook/virtualization/#virtualization-host-bhyve https://forums.freebsd.org/threads/hints-for-installing-fedora-in-bhyve.80257/
余力で
やってみるとクラウド環境って便利。自動化とかスケーリングとか当たり前にある前提だけどローカルにそれらはない。kind とか minikube 使わずコントロールプレーン側を触ってみるのが目的なので不便は承知。
bhyve 環境は出来ている前提
Live DVD をダウンロードしておく https://fedoraproject.org/
散らからないように階層を掘ってボリュームを作る。例では k8s という階層にまとめた。
sudo zfs create -o mountpoint=none stor/k8s sudo zfs create -V 16G stor/k8s/coreos01 sudo zfs create -V 16G stor/k8s/coreos02 sudo zfs create -V 16G stor/k8s/coreos03
bridge インターフェースはbhyve環境として準備されている前提。
sudo ifconfig tap create sudo ifconfig bridge addm tap0
ファイルを用意
variant: fcos version: 1.5.0 passwd: users: - name: core ssh_authorized_keys: - ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAGbIdk/TcXdtEmKo7MgQGmhOKmaZgxGG8YXzWUP84yx1yI44YOlGUgSez4aR5JoJ40XdoyNJY6eJyN== BSD - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5A mac storage: files: - path: /etc/NetworkManager/system-connections/enp0s2.nmconnection mode: 0600 contents: inline: | [connection] id=enp0s2 type=ethernet interface-name=enp0s2 [ipv4] dns=192.168.3.1 gateway=192.168.3.1 address1=192.168.1.1/22 method=manual
このファイルを butane で ign ファイルに変換する。適当に Linux VM を用意して実行する。
https://docs.fedoraproject.org/en-US/fedora-coreos/producing-ign/#_via_a_container_with_podman_or_docker
こんな具合のスクリプトを使って Fedoracoreos のLiveDVDを起動する。 fbufのパスワードが指定してあるのは、指定なしだと接続できなかったため。mac の 画面共有アプリのせいなのかどうなのかは未確認。
while ループに入れているのは、ゲストOSの再起動時にも bhyve が終了してしまうので。bhyve の戻り値はゲストの終了の仕方によって決まっていて、再起動のときは 0 が返る。
CoreOS は自動で更新して自動で再起動するが、bhyveコマンドをループさせておかないとこのタイミングでVMが終了してしまう。
while [ $? -eq 0 ]; do bhyve -A -H -P -c 2 -m 2048M \ -s 0:0,hostbridge \ -s 1:0,lpc \ -s 2:0,virtio-net,tap0 \ -s 3:0,virtio-blk,/dev/zvol/stor/k8s/coreos01 \ -s 4:0,ahci-cd,/pub/ISO/Linux/FedoraCoreos/fedora-coreos-39.20231119.3.0-live.x86_64.iso \ -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait,password=pass \ -s 30,xhci,tablet \ -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \ fedoracore01 done
mac では 画面共有 (Screen Sharing.app) で VNC 接続できる。とりあえずは Installing CoreOS on Bare Metal に従ってインストールする。
https://docs.fedoraproject.org/en-US/fedora-coreos/bare-metal/
起動したらインストーラーコマンドを実行する。
sudo coreos-installer install /dev/vda \ --ignition-url https://s3.ap-northeast-1.amazonaws.com/ign.teak.jp/k8smaster01.ign?response-content-disposition=inline&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAkaDmFwLW5vcnRoZWFzdC0xIkcwRQIh...
この後に続く kubeadm とかの設定が面倒そうだなぁ、と思っている。
久しぶりなのと土台の bhyve 環境もなくなっていたのでおさらいを兼ねて。
bridge と tap を作成する。
%sudo ifconfig bridge create
%sudo ifconfig tap create
%sudo ifconfig bridge0 addm tap0
/etc/rc.conf.d/bhyve_bridge0.conf をこんな感じ?
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="tap* em0"
ISOイメージを手に入れて
%ls /pub/ISO/Linux/Ubuntu/ubuntu-24.04.1-live-server-amd64.iso
ディスクを作って
%sudo zfs create -V 16G stor/bhyve/ubuntu24
bhyve 起動コマンドをファイルに書く fbuf(Frame Buffer) デバイスを定義しているので 5900/TCP に VNC でつなげばコンソールが見える。
bhyve -A -H -P -c 2 -m 2048M \
-s 0:0,hostbridge \
-s 2:0,virtio-net,tap0 \
-s 3:0,virtio-blk,/dev/zvol/stor/bhyve/ubuntu24 \
-s 4:0,ahci-cd,/pub/ISO/Linux/Ubuntu/ubuntu-24.04.1-live-server-amd64.iso \
-s 29,fbuf,tcp=0.0.0.0:5900,w=1024,h=800,wait,password=ubuntu \
-s 30,xhci,tablet \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
ubuntu24
起動
%sudo sh /common/bhyve/ubuntu.sh
fbuf frame buffer base: 0x151812a00000 [sz 16777216]
我が家は mac なので 画面共有(Screen Sharing) で接続する。bhyve 側でVNCのパスワードを設定しておかないとうまく動かないっぽい。
OpenSSH の有効化と docker ランタイムのインストールだけいじって、後は既定値。 sshはパスワード認証いけるらしい。
#PasswordAuthentication yes
nmdm を使ったシリアルコンソールがうまく動かないのはなんでだ。
痛いとかばって変な動きになるのと、理解が間違えていたかも。股関節はちょっとかがむような姿勢なのかな?と思っていたんだけどガッツリ伸ばした方がいいというか伸ばさないとダメみたい。接地のときにも伸びたまま。衝撃を吸収するためにかがんでしまったりしがちだけどそれはダメっぽい。
体を反らしすぎたり反り腰はダメというけど、どっちかというと前かがみの方が禁忌。わかんなければ反ってしまっていい。動きが小さくなるくらいなら足が流れるほうが万倍マシなのと同じ理屈。
多分。