Azure の FreeBSD の概要

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

この記事では、Azure での FreeBSD 仮想マシン (VM) の実行の概要を説明します。

概要

Azure の FreeBSD は、最新のサーバー、デスクトップ、組み込みプラットフォームを強化するために使用される先進のコンピューター オペレーティング システムです。

Microsoft では、事前構成された Azure VM ゲスト エージェントを提供し、Azure で FreeBSD のイメージを利用できるようにしています。 現時点では、次のバージョンの FreeBSD がイメージとしてマイクロソフトから提供されています。

  • Azure Marketplace の FreeBSD 10.4
  • Azure Marketplace の FreeBSD 11.2
  • Azure Marketplace の FreeBSD 11.3
  • Azure Marketplace の FreeBSD 12.0

次の FreeBSD バージョンには、Azure VM ゲスト エージェントも含まれています。 これらは FreeBSD Foundation によってイメージとして提供されます。

  • Azure Marketplace の FreeBSD 11.4
  • Azure Marketplace の FreeBSD 12.2
  • Azure Marketplace の FreeBSD 13.0

エージェントは、初回使用時の VM のプロビジョニング (ユーザー名、パスワード、SSH キー、ホスト名) や、選択的な VM 拡張機能の有効化などの操作で、FreeBSD VM と Azure ファブリック間の通信を担います。

FreeBSD の今後のバージョンについては、最新の機能に対応し、FreeBSD リリース エンジニアリング チームが最新版を公開したらすぐに提供することを目指しています。

FreeBSD で Azure CLI を使用して FreeBSD VM を作成する

まず、FreeBSD マシンで次のコマンドを使用して Azure CLI をインストールする必要があります。

curl -L https://aka.ms/InstallAzureCli | bash

Bash が FreeBSD コンピューターにインストールされていない場合は、インストールの前に次のコマンドを実行します。

sudo pkg install bash

Python が FreeBSD コンピューターにインストールされていない場合は、インストールの前に次のコマンドを実行します。

sudo pkg install python38
cd /usr/local/bin 
sudo rm /usr/local/bin/python 
sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python

インストール中に、Modify profile to update your $PATH and enable shell/tab completion now? (Y/n) を実行するように求められます。 y と答えて /etc/rc.confa path to an rc file to update と入力すると、ERROR: [Errno 13] Permission denied が表示される場合があります。 この問題を解決するには、etc/rc.conf ファイルに対して現在のユーザーに書き込みアクセス許可を付与する必要があります。

これで、Azure にサインインし、FreeBSD VM を作成できます。 次の例は、FreeBSD 11.0 VM を作成する方法を示しています。 --public-ip-address-dns-name パラメーターを追加して、新しく作成されるパブリック IP に対するグローバルに一意な DNS 名を指定することもできます。

az login 
az group create --name myResourceGroup --location eastus
az vm create --name myFreeBSD11 \
    --resource-group myResourceGroup \
    --image MicrosoftOSTC:FreeBSD:11.0:latest \
    --admin-username azureuser \
    --generate-ssh-keys

その後、前のデプロイで出力された IP アドレスを使用して、FreeBSD VM にサインインできます。

ssh azureuser@xx.xx.xx.xx -i /etc/ssh/ssh_host_rsa_key

FreeBSD の VM 拡張機能

FreeBSD では、次の VM 拡張機能がサポートされています。

VMAccess

VMAccess 拡張機能では次のことが可能です。

  • 元の sudo ユーザーのパスワードをリセットする。
  • パスワードを指定して新しい sudo ユーザーを作成する。
  • 指定したキーで公開ホスト キーを設定する。
  • ホスト キーが指定されていない場合、VM のプロビジョニング時に指定された公開ホスト キーをリセットする。
  • SSH ポート (22) を開き、reset_sshtrue に設定されている場合は、sshd_config を復元します。
  • 既存のユーザーを削除する。
  • ディスクをチェックする。
  • 追加されたディスクを修復する。

CustomScript

CustomScript 拡張機能では次のことが可能です。

  • 指定した場合、Azure Storage または外部パブリック ストレージ (GitHub など) からカスタマイズされたスクリプトをダウンロードする。
  • エントリ ポイント スクリプトを実行する。
  • インライン コマンドをサポートする。
  • シェル スクリプトと Python スクリプトで Windows 形式の改行を自動的に変換する。
  • シェル スクリプトと Python スクリプトで BOM を自動的に削除する。
  • CommandToExecute の機密データを保護します。

Note

FreeBSD VM は、現在のところ CustomScript バージョン 1.x のみをサポートしています。

認証: ユーザー名、パスワード、SSH キー

Azure portal を使用して FreeBSD 仮想マシンを作成するときに、ユーザー名、パスワード、または SSH 公開キーを入力する必要があります。

Azure に FreeBSD VM をデプロイするためのユーザー名に、VM に既に存在するシステム アカウント (UID <100) の名前 ("root" など) と一致するものは使用できません。

現在サポートされているのは、RSA SSH キーだけです。 複数行の SSH キーは、---- BEGIN SSH2 PUBLIC KEY ----で始まり、---- END SSH2 PUBLIC KEY ----で終わる必要があります。

スーパーユーザー特権を取得する

Azure での VM インスタンスのデプロイ時に指定されたユーザー アカウントは、特権アカウントです。 公開済みの FreeBSD イメージには、sudo のパッケージがインストールされています。

このユーザー アカウントを使用してログインすると、コマンド構文を使用して、root としてコマンドを実行できます。

$ sudo <COMMAND>

sudo -s を使用して root シェルを取得することもできます。

既知の問題

Azure VM Guest Agent バージョン 2.2.2 については、Azure 上の FreeBSD VM に対してプロビジョニング エラーが発生するという既知の問題が確認されています。 修正プログラムは、Azure VM Guest Agent バージョン 2.2.3 以降のリリースによってキャプチャされました。