Azure の Linux VM で cloud-init を使用してパッケージを更新およびインストールする
適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
この記事では、Azure でのプロビジョニング時に、cloud-init を使用して、Linux 仮想マシン (VM) または仮想マシン スケール セットでパッケージを更新する方法を示します。 これらの cloud-init スクリプトは、Azure によってリソースがプロビジョニングされた後の最初の起動時に実行されます。 cloud-init が Azure およびサポートされている Linux ディストリビューションでネイティブに動作する方法の詳細については、cloud-init の概要に関するページをご覧ください
cloud-init で VM を更新する
セキュリティのために、初回起動時に最新の更新プログラムを適用するように VM を構成することが必要な場合があります。 cloud-init はさまざまな Linux ディストリビューションで動作するため、パッケージ マネージャーに対して apt
、zypper
、または yum
を指定する必要がありません。 代わりに、package_upgrade
を定義し、cloud-init プロセスで、使用中のディストリビューションに適したメカニズムを判断します。
この例では、Azure Cloud Shell を使用します。 実行中のアップグレード プロセスを確認するには、cloud_init_upgrade.txt という名前のファイルを作成し、次の構成を貼り付けます。 任意のエディターを使用することができます。 cloud-init ファイル全体 (特に最初の行) が正しくコピーされたことを確認してください。
下のテキストをコピーし、cloud_init_upgrade.txt
ファイルに貼り付けます。 cloud-init ファイル全体 (特に最初の行) が正しくコピーされたことを確認してください。
#cloud-config
package_upgrade: true
packages:
- httpd
デプロイする前に、az group create コマンドを使用してリソース グループを作成する必要があります。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。
az group create --name myResourceGroup --location eastus
ここで、az vm create で VM を作成し、次のように --custom-data
パラメーターで cloud-init ファイルを指定します。
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_upgrade.txt \
--admin-username azureuser \
--generate-ssh-keys
注意
myResourceGroup、vmName、imageCIURN の値を適宜置き換えます。 cloud-init を含むイメージが選択されていることを確認してください。
前述のコマンドからの出力に示すように、VM のパブリック IP アドレスに SSH 接続します。 実際の user と publicIpAddress を次のように入力します。
ssh <user>@<publicIpAddress>
パッケージ管理ツールを実行し、更新プログラムを確認します。
- 次のコマンドを実行して、保留中の更新プログラムがないことを確認します
sudo yum check-update
cloud-init によって起動時に更新プログラムが確認され、インストールされるため、追加で適用する更新プログラムはありません。
- 次のコマンドを実行して出力を確認することで、更新プロセス、変更されたパッケージの数、
httpd
のインストールを確認できます。
sudo yum history
ID | Command line | Date and time | Action(s) | Altered
--------------------------------------------------------------------------------------------------
3 | -y install httpd | 2022-02-18 18:30 | Install | 7
2 | -y upgrade | 2022-02-18 18:23 | I, O, U | 321 EE
1 | | 2021-02-04 19:20 | Install | 496 EE
次のステップ
構成変更の cloud-init の他の例については、以下をご覧ください。