Ubuntu Core メモ
カスタム版Ubuntu Core Imageを作成する(失敗)
公式の設定ファイルを使ってやろうとしたが断念。
Ubuntu Core 20以降はconsole-confを無効化できないというエラーが出る。
Error: Error preparing image: cannot support with UC20+ model requested customizations: console-conf disable
設定ファイル
実行したコマンド
sudo ubuntu-image snap --disable-console-conf --snap=nextcloud -O nextcloud-core-22-amd64 ubuntu-core-22-amd64.model
VMWareでdd形式のイメージファイルを起動する
この段落の記載は、Ubuntu Coreに限らず dd形式のイメージファイルで提供されるOSをVMware等で動作確認する際に使えるノウハウです。
イメージを変換してVMDK準備する
https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/
上記から ubuntu-core-22-amd64.img.xz をダウンロードしてvmdkに変換する。 当方はStarWind V2V Converter で変換を行い、
手元の VMware Playerで動作確認してから VMware vCenter Converter StandaloneでESXiに転送した。
qemu-img 等を使ってもいいだろう。
仮想マシンの作成
既存のvmdkを使用する設定で仮想マシンを作成し、変換したvmdkを指定する。
OSの種類は「Ubuntu 64ビット」CPUやメモリの割り当ては適当に。2コア、4GBあれば十分じゃね?
Ubuntu Core は Legacy BOOTに対応していないので、仮想マシンのファームウエアをUEFIに変更する。
セキュアブートやTPMはあれば使用されるがなくてもOK
既存vmdkを使用すると仮想マシンの.vmxに絶対パスが記載されトラブルの原因になるので.vmxを編集する。
ide0:0.fileName = "D:¥VM¥nextcloud-core\ubuntu-core-22-amd64.vmdk"
↓
ide0:0.fileName = "ubuntu-core-22-amd64.vmdk"
vmdkのサイズ変更
Ubuntu Core の初回起動時にデータ保存用パーティションの拡大が自動的に行われるため、vmdkの大きさを必要な大きさに変更しておく。
この辺の動きはSDカードに書き込むラズパイ用OSと同じ考えのようだ。
わかりにくい表記だが、[展開]を押すとサイズ指定ダイアログが出るので、必要なサイズを指定する。
なお、この時点ではvmdkファイルがいきなり大きくなったりしないので、多めにしておくのがいいと思われる。
root@ubuntu:~# df -h Filesystem Size Used Avail Use% Mounted on tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 778M 18M 761M 3% /run tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda3 721M 75M 594M 12% /run/mnt/ubuntu-boot /dev/sda2 1.2G 397M 785M 34% /boot/efi /dev/sda5 250G 2.0G 235G 1% /writable /dev/sda4 26M 44K 23M 1% /var/lib/snapd/save tmpfs 1.9G 0 1.9G 0% /media tmpfs 1.9G 0 1.9G 0% /mnt tmpfs 1.9G 28K 1.9G 1% /tmp tmpfs 1.9G 0 1.9G 0% /var/lib/sudo
RLoginで接続できないときの対処法
Windows付属のOpenssh.exeで繋がるのにrloginで繋がらなかったためにいろいろ試行錯誤した。
Ubuntu CoreはRLoginデフォルトのSHA1署名で接続できない設定になっていることが判明したので、SHA512に変更することで接続可能になった。
なお、SSH子公開鍵はインストール開始前に登録しておかないとログインできない。
Cloudflare Tunnel を使用する。
当方のネットワークは一部のポート開放が制限されたネットワークで、SNIで振り分けるリバースプロキシ等の構築などもぶっちゃけ面倒なので、Cloudflare TunnelでWANからアクセスできるようにする。
snap版のパッケージもあるがコンテナ内に閉じ込められており機能が制限されていおり、デーモンの常駐などができない。
Ubuntu Coreは/homeや/etc/systemd/systemが書き込み可能になっているので、Cloudflare公式サイトから cloudflared の実行ファイルを落としてきてchmod +xすれば公式のドキュメント通りに設定することができる。
なおUbuntu Core 22にはwgetやcurlが無いのでscpで送り込む必要がある。
コンソールログインできるようにする
パスワードがあればコンソールログインできる模様。
ネットワークの設定ミスって締め出された時のために設定しておく
sudo passwd <SSHでログイン中のユーザー>
ブリッジアダプタの作成
LXDやDockerで使用可能なブリッジアダプタを作成素すためのUbuntu Core 以外の普通のUbuntuでも通用する書き方。
すでにある設定ファイルをコピーして、名前順に並べ替えた際に後にくる名前で作成する。
横着して元のファイルをそのまま編集するとバッティングしてひどいことになるので必ず名前を変える。
おかしくなったら作った設定ファイルを消して再起動すればよし。
- 99-bridges.yaml
# This is the network config written by 'console-conf' network: ethernets: ens33: dhcp4: no bridges: br0: interfaces: - ens33 dhcp4: no addresses: - 192.168.100.223/24 gateway4: 192.168.100.1 nameservers: addresses: - 192.168.100.200 - 192.168.100.201 search: - junk-labs.net parameters: forward-delay: 0 stp: no optional: true version: 2