Azure の FreeBSD の概要

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

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

概要

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

Microsoft Corporation では、Azure で利用可能な、Azure VM Guest Agent を事前構成した 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 と回答し、a path to an rc file to update として /etc/rc.conf を入力した場合、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 のプロビジョニング時に指定された公開ホスト キーをリセットする。
  • reset_ssh が true に設定されている場合に、SSH ポート (22) を開き、sshd_config を復元する。
  • 既存のユーザーを削除する。
  • ディスクをチェックする。
  • 追加されたディスクを修復する。

CustomScript

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

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

注意

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

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

Azure Portal を使用して FreeBSD 仮想マシンを作成するときに、ユーザー名、パスワード、または SSH 公開キーを入力する必要があります。 Azure に FreeBSD 仮想マシンをデプロイするためのユーザー名は、仮想マシン ("root" など) に既に存在するシステム アカウント (UID は 100 未満) の名前とは同じにしないでください。 現在サポートされているのは、RSA SSH キーだけです。 複数行の SSH キーは、---- BEGIN SSH2 PUBLIC KEY ----で始まり、---- END SSH2 PUBLIC KEY ----で終わる必要があります。

スーパーユーザー権限の取得

Azure での仮想マシン インスタンスをデプロイする際に指定したユーザー アカウントは、特権を持つアカウントです。 公開済みの 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 以降のリリースによってキャプチャされました。

次のステップ