2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSD jail 小ネタ 20250122

Posted at

jail の区別がつかないよう!

ansible で FreeBSD-jail を管理しようと悪戦苦闘しています。

FreeBSD-jailの問題。

発展途上のトコロがあって、厳密にコンテナのIDとかで管理する方法がない感じです。
いま問題になるのは、同名のJAILを別のホストで作って、ホスト間移動させるときですね。

  • HOSTA/mail
  • HOSTB/mail

上記を全てHOSTAに持っていくときは、JAILにつけた仮想ホスト名がキーになっていたりするので、HOSTBで一旦JAILの名前を付け替えてやってから export するみたいな手順をふまないと、大抵は弾かれます。

bastilleBSD では、コンテナを一個のファイルに落とせるので、クローン化が簡単なのが利点ですが、肝心のFreeBSD自体には jail そのものを区別しようとする試みがなかった模様です。

なんで困ってしまうのか。→IDがないから。

docker以来、コンテナを扱う一般世界の常識としての container-ID は必須だと思われます。インスタンスとテンプレート別にIDがあるのは無論ですが、FreeBSD-jailにはどうもその概念が余りはっきりありません。

何を証拠に? と申しますと、 /etc/hostid や /etc/machine-id は 非jail つまり 物理サーバのFreeBSDには最近普通に存在する( FreeBSD 13.2RELから)んですが、jail を作るとそれがないんです。なぜでしょう?

jail で /etc/machine-id を作る。

以下二点で、多分「ユニークなコンテナ」を区別する手がかりができます。

  • /etc/rc.d/hostid を使う。 ← IDは表示できた。machine-id は保管はされない(なぜ?)
  • /etc/rc.d/hostid_save を使う。 ← このコマンドしないと保管されない。

/etc/amchine-id は どこで使われる?

まず、ansibleで拾える ansible_facts.ansible_machine_id 変数で集めることができます。
稼働しているホスト・JAILを区別なくidで管理しようとしたら、jail だけ得られなくて??状態でしたが
まあとりあえずこれで一つ進みました。

ansibleでサーバ情報を集めて一覧したい。

ちょっと企んでいるんでそのうち出来たら〜

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?