2023-08
2023-08-31
知った
etcd / Discovery service protocol
Kubernetes を多段で構成するなら tailscale で node attestation の問題を解いたほうが楽そうだな(既にクラスタらしきものができるので)
2023-08-27
みた
Extreme Hearts × Hyper × Stage
2023-08-25
気持ちを出し,Cloudflare Access で自分で立ててる IdP を使うようにする
いやなんで GUI だと scope 使えないんすか,ありえなさすぎる
2023-08-20
Git のコンフィグって includeIf を使って色々な条件で読み分けられるらしい
2023-08-17
ずっとサブディスプレイに 2023-08#64dcf3791565b30000b36630 が置かれていて,気持ちが出ないときにこれを見て元気を出す仕組みになっている
2023-08-16
やった
洗濯
東方獣王園
映画
買い物
東方獣王園
料理
↑で一日終わったのありえなさすぎる
2023-08-14
https://scrapbox.io/files/64dcf37bdc757c001cdfee30.png
2023-08-13
やる
erlite で bird_exporter と promtail を動かす
MIPS ビルド業
若干リソース消費が心配ではあるが……
2023-08-12
やった
nono で tailscale をコンテナ無しで展開
HTTP Proxy が不安定すぎてメトリクスが飛んでた
nono と border で promtail を使って Grafana Cloud にログを送る
自 Grafana で Grafana Cloud の Loki を Data source にする
これできてしまうんだよな,人数制限とか頑張ってかけてるけど意味ないんじゃないか
Prometheus の 10k active series はかなり厳しいが Grafana Loki / Grafana Tempo の 50GB/month は異様なレベルで緩いので使いまくっていきたい
2023-08-11
ここ数日やっていた BIRD のビルドを GitHub Actions で回して上げるようにした
https://github.com/tosuke-homelab/containers/pkgs/container/bird
バイナリビルドもしてるので「containers」ではなくなってきた気もしている
build とかになっちゃう
Nix はまあ便利ではあるのだが,ビルドに関しては明らかに Earthly に分があるという気持ちに
キャッシュ機構とかまあかなり微妙な部分ではある
ビルドツールがキャッシュ機構を持っている場合,buildkit のキャッシュマウント機構が使える Earthly のほうが強い
Nix は derivation 以外を分解点にできないので1つの derivation の計算時間が大きいとそれに引きずられる
両ツールとも分散ビルドではデーモンが全ノードで起動しているという前提でやっていっているので GitHub Actions との相性が微妙
あれは基本的に弱くて揮発性のノードを大量に起動して分散させるというアプローチなので
可能な限り1ステージに1ノードを持たせて Artifact やキャッシュとして分散させてほしいんだよな
それらの書き込みが意外と重いみたいな問題はあるにせよ
2023-08-09
ゼノブレイドシリーズのサウンドトラックの長さ
Xenoblade 3,明らかに長いと思ってたけど異常なスケールだな
ライナーノーツを読むとわかるがインタラクティブなトラックの導入をしようとしていたり(流行りだ)するので長くなっているみたいな側面はありそう
仕様変更によるボツ曲もあったらしい
さらに言えば終盤における諸々を考えればもっと長くなる気があったんじゃないかと思ってしまう
もしかして BIRD が同一 L2 セグメント内なら next hop を直接到達できるものにして送ってくるのって L3 ルーティング容量が足りないオタクのためじゃなくて IX の Route Server のため?
そりゃそうだろ
実は RPKI 有効にしてビルドしてたつもりが libssh に依存できていなかったのでなおす
RPKI は様々な transport protocol をサポートしているらしい
なぜ?
め,めんどくさい……
依存関係がハチャメチャに壊れる
そもそも EdgeOS には libssh は入っていない
BIRD は libssh2 は使わない
別物っぽい
そもそもこの周辺のコードが2004年(!)からアップデートされてない
誰も RPKI SSH transport なんて使ってないんじゃないか?
どこかのタイミングで libssh なしで rpki 有効(=tcp transport しか使わない)にできるようになったらしくて……
2023-08-08
BIRD on EdgeRouter Lite 3 2023-08#64d070831565b30000493662
昨日の試行から,クロスコンパイル自体より古い環境に向けてビルドすることのほうが難しいことがわかった
EdgeOS 2.x (2.0.x?) は debian stretch なのでその環境でビルドすればいい
こうなってしまった場合,nix はあんまり役に立たない
nixpkgs はパッケージリストであり,NixOS というディストリビューションを構成している
Nix の表現力をもって古い nixpkgs からパッケージを引っ張ってくることもできるが古いドキュメントは無いので単純なこと以上のことをする(e.g. クロスコンパイル)は難しい
ということで Earthly を使ってビルドした
↑の余談
C/C++ のエコシステムは configure make make installする(=コンパイルした環境の上で動かす)ことを前提にしている
クロスコンパイルの概念を持ってきたとしても基本概念は同じで,コンパイル時に入っているバイナリと同じ(正確には互換性がある)バイナリがその位置に配置されている環境で動かさないと動いてくれない
この問題に真面目に取り組む(配置先でのバイナリの配置とかを頑張って考えたりする)のは無理があるので,ディストリみたいな概念を導入して共有ライブラリの依存関係と配置を固定してしまうことで解決しているという理解
debian だとアーキテクチャ非依存みたいな入り方をしていて,なんかそういうことするためにすごい大きいパッチセットを管理しているという話を聞いたことがある
真面目に取り組むという方向もあって,共有ライブラリをバンドルするみたいな
patchelf とかを使って既にあるバイナリの向きを変えることもできる
MirakTest とかでそういう問題があるって聞いているのでやってみても面白いかも
2020年代に生きる我々としては理解しがたい前提と運用だとは思う
2023-08-07
やる
BIRD を MIPS 向けにビルドする
birdc (クライアント)が readline を要求するので他ライブラリが絡むクロスビルドになる
zig でやりたいが……
BIRD も readline も nixpkgs にあるので pkgs に対して stdenv を置き換えてビルドする方向でなんとかならんか?
GitHub - Cloudef/nix-zig-stdenv: cross-compile nixpkgs with zig
外部ライブラリに依存する場合,多分 mips-linux-gnu に対してコンパイルする必要があって
環境に存在する so は当然環境に存在する libc を動的リンクすることを前提にコンパイルされているので
多分シンボル名が衝突しておしまいになってしまう
古〜い glibc をターゲットにするやつ
EdgeOS は glibc = 2.24 なので
zig は glibc >= 2.33 じゃないと死ぬ?
unable to build mipsel glibc: fatal error: 'entry.h' file not found · Issue #4927 · ziglang/zig · GitHub
2.33 という数字はおそらくこのあたりと関連している
zig/lib/libc/glibc/sysdeps/mips/start-2.33.S at ac95cfe4496a5504b42bf37b02f34eff390fe956 · ziglang/zig · GitHub
詰んでね?
mips64 はさらに壊れているので本当に使いものにならん
諦めて,Nix の持つ環境分離機構を使って gcc の MIPS 向けツールチェインを用意して頑張ってビルド
i7-13700K なのにめっちゃ時間かかるんすけど!!!
cross compiling w/ old glibc,むずすぎる
知った
GitHub - hyprwm/Hyprland: Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Sway - For showing how 2 do stuff the overkill way
なんか前見た気がする
/sno2wman/Hyprland か
xdg-desktop-portal を自前で作っている
GitHub - hyprwm/xdg-desktop-portal-hyprland: xdg-desktop-portal backend for hyprland
ウィンドウ共有をサポートする?
GitHub - hyprwm/hyprland-protocols: Wayland protocol extensions for Hyprland
このへんで wayland のプロトコル拡張をしてやっていってるらしい
そういえば xdg-desktop-portal(のフロントエンド)は PipeWire が握ってるんだから音声付きの共有は普通にできそうに見えるんだけど,できないんだろうか
2023-08-06
みた
shuymn (shuymn@den.shuymn.me) - Wildebeest
はやE
Cloudflare D1 の beta backend らしい
考えている
VyOS のコンテナ立てる機構は雑に使えて便利なんだが,イメージ管理であったり(VyOS 全体に言えることだが)独善的なラッピングがしんどかったりするので自力でサービス管理したほうが究極的には楽なのかもしれない
別に tailscale をコンテナで立てる必然性ってないわけで
コンテナで立ててユーザスペースモードになってることの弊害はそれなりにある
それはそれとして各ノード上において自前で管理するべきものが増えていっているのは何とかしたい
node_exporter,frr_exporter,promtail……
問題は EdgeRouter Lite 3 で,他2つと異なりコンテナは使えないので自前でバイナリを配る他ない
様々な事情により付属の FRR (系列の何か)ではなく BIRD を使っているので管理するべきものが増えている
rsync で /config/user-data/bin にバイナリを放りこみ,mitamae で systemd unit と,それらのファイルを適切な場所にリンクするスクリプトを配置するという運用をしているが,もうちょっとマシにならんか?という話ではある
VyOS (と EdgeOS)のコンフィグ管理もうまいこと自動化できないか……と思っているが色々と難しいし
root 相当で動かさないと何もできないが root 相当では動かしたくなくない?といった悩み
おもった
エンジニアが組織とか言い出す前の最期の輝き
組織の話というのは半分くらいはスケールアウトのたのしみなのではないかという仮説を持っているが,それをするのはスケールアップの限界を知ってからにしたいし,そうなっていてほしいという信条に近い
上の表現は露悪的すぎるが……
まあなんか「気付いたら一人ぼっちになってた」みたいなのは普通にあるよな
「お、おい…みんな、(以下略)」と思うことがないわけではない
それはまあ各自専門性な方向に進んでるわけで文脈共有のコストは日々上がっていくし,人がやっていることにいちいち口を挟むのも微妙だし,分かっている者同士なら語らずとも通じ合えるのではみたいなことを考えて易きに流れがちだけれど(後者2つは主に自分のことだ),最近はこれをやってて面白いとか,そういう話を時間も考えずにやるみたいな努力を払ったほうがいいのではないのか
時間も日々高価になっていくのでつらい,どうしてそんな……
人間関係における老いから逃れようとする足掻きとして
しかしまあ一方的なコミュニケーションをしがちでして……
2023-08-05
サーバネットワーク 大整備
接続方式変更
NURO光 側から VPS への経路を WireGuard に
IPsec で繋いでいたが VTIトンネルの IPv6 LLA が時間経過で消滅する(!)謎現象が起きていたので
マンションの無料インターネットがいつの間にかフレッツ IPoE になっていたので IX2105 を使って GRE over IPsec を終端し,EdgeRouter Lite 3 と VPS を L2 で繋いだ
EdgeRouter Lite 3 は物理インターフェース間でパケットフォワーディングしている時が一番輝く
監視
ちょっと前に家に Prometheus を立てていた
こいつにそれぞれのノードのメトリクスを記録
https://scrapbox.io/files/64ce57f2979d17001bb5d9a1.png
あまりに破滅していたので 2023-07 はありません
アイドルマスター シンデレラガールズ U149 よかったね……
#日報