BargeOS の ISO を re-master して immutable infrastructure
読了まで:約1分
BargeOS の
と
実際に何をしたのか
[[BargeOS]] の
ISO の [[initrd]] を 編集して、 設定等が カスタムされた [[BargeOS]] の bootable iso を 作製し deploy する
と
成果物
下記のMakefile
を
ただし、
- [[GNU make]]
- [[curl]]
- [[mkisofs]] ( [[cdrtools]] )
辺りが
all: fetch mount copy umount extract patch pack iso
.PHONY: fetch mount copy umount extract patch pack iso
fetch:
curl -LO https://github.com/bargees/barge-os/releases/download/2.8.0-rc2/barge.iso
mount:
test -d iso || mkdir -p iso
sudo mount -o loop barge.iso iso
copy:
test -d iso-custom || mkdir -p iso-custom
cp -R iso/boot iso-custom/boot
umount:
sudo umount iso
extract:
test -d rootfs || mkdir -p rootfs
cd rootfs && xz -dc < ../iso-custom/boot/initrd | sudo cpio --quiet -i --make-directories
patch:
sudo cp -R overlays/* rootfs/
sudo chown root:root rootfs/etc/ssh/sshd_config
sudo chown root:root rootfs/etc/sudoers.d/bargees
sudo chown -R 1000:1000 rootfs/home/bargee/.ssh
sudo chmod 700 rootfs/home/bargee/.ssh
sudo chmod 600 rootfs/home/bargee/.ssh/authorized_keys
pack:
cd rootfs && sudo find . 2>/dev/null | sudo cpio -H newc -o | xz -9 -C crc32 -c >../iso-custom/boot/initrd
iso:
cd iso-custom \
&& mkisofs -v -l -r -J -o ../barge-custom.iso \
-b boot/isolinux/isolinux.bin \
-c boot/isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table . \
&& isohybrid ../barge-custom.iso
解説未満
- 基本的に、
実際に 運用に 使うには patch
とfetch
辺りは弄る 必要が ある - 次に、
ディレトリ構造と しては、 だいたい こんな 感じ: - code:-
- workdir/ → ここを
作業ディレクトリと すると ↓ - Makefile → 作業タスクの
ための Makefile - iso/ → 元の
ISO データの マウント先 - iso-custom/ → カスタムされた
ISO ファイルを 作製する ための l working copy - overlays/ → rootfs へ
上書きする ファイル類置き場 - rootfs/ → initrd から
取り出された rootfs の 中身 - で、
色々編集とか したら、 make pack iso
でISO [[ディスクイメージ]] を 作製できる
確認したコト
- [[nyarla.icon]] [[{ とり
あえず [initrd]] を 編集した ISO [[ディスクイメージ]] が boot する 所までは 確認した ] - [[nyarla.icon]] [[{ ただ、
一番 最初の boot 時には 何故か [Kernel Panic]] した。 二度目以降は 普通だったけど ]
使い道
今
- 起動時に、
自動的に SWAP と DATA パーティションを 作る - [[docker-compose]] を
なんらかの 形で セットアップし、 自動的に サービスを 展開する 様に する ssh
やbargee
アカウントを完全に 無効化し、 [[ログインレス]] システムを 作製 - システムの
更新時には ISO [[ディスクイメージ]] を 切り 替えて Blue-Green Deployment
と