FreeBSD 11 on Azure のポイント

いやまぁ 10.3-R とかでも立ち上げてたけど、11.0-R でごりっと立ち上げたりした上でのポイントまとめとして。

  • とりあえず最初に pkg upgrade はしよう
  • sshd の listen port 変える場合は穴開けよう
  • パスワード設定されてないので wheel への追加と sudo passwd と sudo passwd (user) はしておこう
  • /etc/localtime はないよ

イメージを展開した直後にインストールされているパッケージはちょっと古いので、やっぱり pkg upgrade は必要な感じですね。

freebsd-version は 11.0-RELEASE-p10 だったから問題ないのだけど、うーん。(笑)

「security log 的にうぜー」という気持ちで sshd の listen port を変える場合、Linux 仮想マシン (扱い) は基本的に 22 番しかポート開いてないので、しっかり開けましょう。大事。

deploy 直後のイメージだと、(おそらく普通に作る) SSH 公開鍵認証の場合、ユーザーのパスワードは「非公開」とかになってるので、しっかりパスワードを設定しておかないと……うっかり freebsd-update upgrade のついでに pkg delete -af とかしたい気分になったときに「ちょ、sudo 使えない!」でハマります。wheel にも入ってないので、当然 su - root とかもできません。

「その時は仮想マシンごと壊せばいいや」で済むならともかく、済まなそうな事をするなら、しっかり sudo passwd で設定しておきましょう。

済む形にまとめられるのが (クラウド環境的には) 最善だとは思いますが、一応。

/etc/localtime がない (= 基本 UTC) ってのは、共通イメージ的には基本だし当然ではあるのだけど、穴と言えば穴なので、気にしておかないとハマる点ではあります。

/etc/mail/aliases の root なりをしっかり書き換えてホストレポート受信してれば「あれ、こんなタイミングで来るの?」とかで気付きやすい点ではありますが。

localtime をしっかり見て欲しいなら (日本の場合は) 'sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime' ですね。(/usr/share/zoneinfo 以下は必要に合わせて調整で)

実機デバッグが適切に動作しないとか……

UWP でちょこちょこっとアプリを書いたりしていると、たまにローカルコンピューター上でのデバッグ実行でも、Mobile Emulator (on Hyper-V) 上のデバッグ実行でも全然問題ないのに、MADOSMA などの ARM 機にデプロイしてデバッグ実行するとスコンスコンと落ちまくるパターンがあったりします。

コード見直しても何の問題もないのに、本当にスコンスコンと落ちて、割と意味が分かりません。

で、ちょこっと調べてみたところ……。

Debug/ARM でビルドして配置すると、win10-arm-aot ではなくwin8-arm-aot になっていて、この場合、(Win10 系として存在するはずの) ライブラリーの一部が存在せず、その結果、スコンと落ちる、と。

……えー。

で、Release/ARM の場合は win10-arm 系になり、こちらには含まれているので、落ちたりせずに動作する、と。

……えー。

これは、UWP アプリは基本的に x86 環境で開発して、ARM 環境は Release ビルドでパフォーマンス調整とかその辺頑張れ的な扱いをする以外ないのかなー?

実機動作でのパフォーマンスプロファイルって、どうやるのが一番いいんだろうなー、これ。