Azure Linux エージェントの理解と使用Understanding and using the Azure Linux Agent

注意

Azure には、リソースの作成と操作に関して、Resource Manager とクラシック の 2 種類のデプロイメント モデルがあります。Azure has two different deployment models for creating and working with resources: Resource Manager and classic. この記事では、両方のモデルについて取り上げていますが、最新のデプロイでは Resource Manager モデルの使用をお勧めします。This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

はじめにIntroduction

Microsoft Azure Linux エージェント (waagent) は、Linux と FreeBSD のプロビジョニング、および仮想マシンと Azure ファブリック コントローラーとの相互動作を管理します。The Microsoft Azure Linux Agent (waagent) manages Linux & FreeBSD provisioning, and VM interaction with the Azure Fabric Controller. Linux および FreeBSD IaaS デプロイ用に次の機能が用意されています。It provides the following functionality for Linux and FreeBSD IaaS deployments:

注意

詳細については、Azure Linux エージェントの README を参照してください。See the Azure Linux agent README for additional details.

  • イメージのプロビジョニングImage Provisioning

    • ユーザー アカウントの作成Creation of a user account
    • SSH 認証の種類の構成Configuring SSH authentication types
    • SSH 公開キーおよびキー ペアのデプロイDeployment of SSH public keys and key pairs
    • ホスト名の設定Setting the host name
    • プラットフォーム DNS へのホスト名の発行Publishing the host name to the platform DNS
    • プラットフォームへの SSH ホスト キーの指紋のレポートReporting SSH host key fingerprint to the platform
    • リソース ディスクの管理Resource Disk Management
    • リソース ディスクのフォーマットとマウントFormatting and mounting the resource disk
    • スワップ領域の構成Configuring swap space
  • ネットワークNetworking

    • プラットフォーム DHCP サーバーとの互換性を向上させるためのルートの管理Manages routes to improve compatibility with platform DHCP servers
    • ネットワーク インターフェイス名の安定性の保持Ensures the stability of the network interface name
  • カーネルKernel

    • 仮想 NUMA (2.6.37 未満のカーネルでは無効) の構成Configures virtual NUMA (disable for kernel <2.6.37)
    • /dev/random の Hyper-V エントロピの使用Consumes Hyper-V entropy for /dev/random
    • root デバイス (リモート デバイス) の SCSI タイムアウトの構成Configures SCSI timeouts for the root device (which could be remote)
  • 診断Diagnostics

    • コンソールからシリアル ポートへのリダイレクトConsole redirection to the serial port
  • SCVMM のデプロイSCVMM Deployments

    • System Center Virtual Machine Manager 2012 R2 環境で実行されているときに Linux 用の VMM エージェントを検出およびブートストラップDetects and bootstraps the VMM agent for Linux when running in a System Center Virtual Machine Manager 2012 R2 environment
  • VM 拡張機能VM Extension

通信Communication

プラットフォームからエージェントへの情報の流れは 2 つのチャンネルを経由します。The information flow from the platform to the agent occurs via two channels:

  • 起動時に接続される IaaS デプロイ用 DVD。A boot-time attached DVD for IaaS deployments. この DVD に、OVF に準拠している構成ファイルが収録されており、このファイルに、実際の SSH キー ペア以外のすべてのプロビジョニング情報が保存されています。This DVD includes an OVF-compliant configuration file that includes all provisioning information other than the actual SSH keypairs.
  • デプロイとトポロジの構成を取得するために使用する REST API を公開する TCP エンドポイント。A TCP endpoint exposing a REST API used to obtain deployment and topology configuration.

必要条件Requirements

次のシステムがテスト済みで、Azure Linux エージェントで機能することがわかっています。The following systems have been tested and are known to work with the Azure Linux Agent:

注意

この一覧は、Microsoft Azure Platform でサポートされるシステムの公式の一覧とは異なる場合があります (Microsoft Azure Platform でサポートされるシステムの一覧: http://support.microsoft.com/kb/2805216)This list may differ from the official list of supported systems on the Microsoft Azure Platform, as described here: http://support.microsoft.com/kb/2805216

  • CoreOSCoreOS
  • CentOS 6.3+CentOS 6.3+
  • Red Hat Enterprise Linux 6.7+Red Hat Enterprise Linux 6.7+
  • Debian 7.0+Debian 7.0+
  • Ubuntu 12.04+Ubuntu 12.04+
  • openSUSE 12.3+openSUSE 12.3+
  • SLES 11 SP3+SLES 11 SP3+
  • Oracle Linux 6.4+Oracle Linux 6.4+

サポートされるその他のシステム:Other Supported Systems:

  • FreeBSD 10+ (Azure Linux エージェント v2.0.10+)FreeBSD 10+ (Azure Linux Agent v2.0.10+)

Linux エージェントが正しく機能するには、次の該当するシステム パッケージが必要です。The Linux agent depends on some system packages in order to function properly:

  • Python 2.6+Python 2.6+
  • OpenSSL 1.0+OpenSSL 1.0+
  • OpenSSH 5.3+OpenSSH 5.3+
  • ファイルシステム ユーティリティ: sfdisk、fdisk、mkfs、partedFilesystem utilities: sfdisk, fdisk, mkfs, parted
  • パスワード ツール: chpasswd、sudoPassword tools: chpasswd, sudo
  • テキスト処理ツール: sed、grepText processing tools: sed, grep
  • ネットワーク ツール: ip-routeNetwork tools: ip-route
  • UDF ファイルシステムのマウントのカーネル サポート。Kernel support for mounting UDF filesystems.

インストールInstallation

使用しているディストリビューションのパッケージのリポジトリから RPM または DEB パッケージを使用してインストールする方法は、Azure Linux エージェントのインストールおよびアップグレードとしてお勧めする方法です。Installation using an RPM or a DEB package from your distribution's package repository is the preferred method of installing and upgrading the Azure Linux Agent. すべての動作保証済みディストリビューション プロバイダーAzure Linux エージェント パッケージをイメージとリポジトリに統合します。All the endorsed distribution providers integrate the Azure Linux agent package into their images and repositories.

ソースからカスタムの場所へのインストールやプレフィックスなどの高度なインストール オプションについては、GitHub の Azure Linux Agent リポジトリにあるドキュメントを参照してください。Refer to the documentation in the Azure Linux Agent repo on GitHub for advanced installation options, such as installing from source or to custom locations or prefixes.

コマンド ライン オプションCommand Line Options

フラグFlags

  • verbose: 指定したコマンドのメッセージの詳細度を上げます。verbose: Increase verbosity of specified command
  • force: 一部のコマンドの対話形式の確認をスキップします。force: Skip interactive confirmation for some commands

コマンドCommands

  • help: サポートされているコマンドとフラグを一覧表示します。help: Lists the supported commands and flags.
  • deprovision: システムをクリーンアップし、再プロビジョニングに適した状態にしようとします。deprovision: Attempt to clean the system and make it suitable for re-provisioning. この操作によって次のものが削除されます。This operation deleted the following:

    • すべての SSH ホスト キー (構成ファイルで Provisioning.RegenerateSshHostKeyPair が 'y' の場合)All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)
    • /etc/resolv.conf 内のネームサーバー構成Nameserver configuration in /etc/resolv.conf
    • /etc/shadow の root パスワード (構成ファイルで Provisioning.DeleteRootPassword が 'y' の場合)Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
    • キャッシュされた DHCP クライアントのリースCached DHCP client leases
    • ホスト名を localhost.localdomain にリセットResets host name to localhost.localdomain

警告

プロビジョニング解除により、イメージからすべての機密情報が削除され、イメージが再配布に適した状態になることが保証されるわけではありません。Deprovisioning does not guarantee that the image is cleared of all sensitive information and suitable for redistribution.

  • deprovision+user: -deprovision の場合のすべての対象 (上記参照) を実行するほか、前回プロビジョニングされたユーザー アカウント (/var/lib/waagent から取得) および関連付けられたデータも削除します。deprovision+user: Performs everything under -deprovision (above) and also deletes the last provisioned user account (obtained from /var/lib/waagent) and associated data. このパラメーターは、Azure で先にプロビジョニングしたイメージのプロビジョニングを解除するため、取得して再使用できます。This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and re-used.
  • version: waagent のバージョンを表示します。version: Displays the version of waagent
  • serialconsole: GRUB で ttyS0 (最初のシリアル ポート) がブート コンソールに なるように構成します。serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. これにより、カーネルの起動ログがシリアル ポートに送信され、デバッグに使用できるようになります。This ensures that kernel bootup logs are sent to the serial port and made available for debugging.
  • daemon: プラットフォームとの相互動作を管理するデーモンとして waagent を実行します。daemon: Run waagent as a daemon to manage interaction with the platform. この引数には waagent init スクリプト内で waagent が指定されます。This argument is specified to waagent in the waagent init script.
  • start: バックグラウンド プロセスとして waagent を実行しますstart: Run waagent as a background process

構成Configuration

構成ファイル (/etc/waagent.conf) を使用して waagent の動作を制御します。A configuration file (/etc/waagent.conf) controls the actions of waagent. サンプル構成ファイルを次に示します。A sample configuration file is shown below:

Provisioning.Enabled=y
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=n
Provisioning.AllowResetSysUser=n
Provisioning.PasswordCryptId=6
Provisioning.PasswordCryptSaltLength=10
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.MountOptions=None
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0
LBProbeResponder=y
Logs.Verbose=n
OS.RootDeviceScsiTimeout=300
OS.OpensslPath=None
HttpProxy.Host=None
HttpProxy.Port=None
AutoUpdate.Enabled=y

さまざまな構成オプションについて次に詳述します。The various configuration options are described in detail below. 構成オプションには、ブール、文字列、整数の 3 つの型があります。Configuration options are of three types; Boolean, String or Integer. ブール型の構成オプションは "y" または "n" として指定できます。The Boolean configuration options can be specified as "y" or "n". 特別なキーワード "None" は、次に詳述しているように、一部の文字列型の構成オプションに使用できます。The special keyword "None" may be used for some string type configuration entries as detailed below.

Provisioning.Enabled:Provisioning.Enabled:
型: ブールType: Boolean
既定: yDefault: y

エージェントのプロビジョニング機能を有効または無効にすることができます。This allows the user to enable or disable the provisioning functionality in the agent. 有効な値は "y" または "n" です。Valid values are "y" or "n". プロビジョニングを無効にした場合、イメージ上の SSH ホストとユーザー キーが保持され、Azure プロビジョニング API で指定した構成はすべて無視されます。If provisioning is disabled, SSH host and user keys in the image are preserved and any configuration specified in the Azure provisioning API is ignored.

注意

cloud-init を使用してプロビジョニング タスクを実行する Ubuntu Cloud Image では、Provisioning.Enabled パラメーターが既定で "n" に設定されています。The Provisioning.Enabled parameter defaults to "n" on Ubuntu Cloud Images that use cloud-init for provisioning.

Provisioning.DeleteRootPassword:Provisioning.DeleteRootPassword:
型: ブールType: Boolean
既定: nDefault: n

設定した場合、/etc/shadow 内の root パスワードがプロビジョニング プロセス中に消去されます。If set, the root password in the /etc/shadow file is erased during the provisioning process.

Provisioning.RegenerateSshHostKeyPair:Provisioning.RegenerateSshHostKeyPair:
型: ブールType: Boolean
既定: yDefault: y

設定した場合、すべての SSH ホスト キー ペア (ecdsa、dsa、rsa) がプロビジョニング プロセス中に /etc/ssh/ から削除されます。If set, all SSH host key pairs (ecdsa, dsa and rsa) are deleted during the provisioning process from /etc/ssh/. 1 つの新しいキー ペアが生成されます。And a single fresh key pair is generated.

新しいキー ペアの暗号化の種類は Provisioning.SshHostKeyPairType オプションで構成できます。The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. 一部のディストリビューションでは、SSH デーモンの再起動時 (再起動プロセス中など)、不足している暗号化の種類用に SSH キー ペアが再作成されることに注意してください。Please note that some distributions will re-create SSH key pairs for any missing encryption types when the SSH daemon is restarted (for example, upon a reboot).

Provisioning.SshHostKeyPairType:Provisioning.SshHostKeyPairType:
型: 文字列Type: String
既定: rsaDefault: rsa

仮想マシンの SSH デーモンによってサポートされている暗号化アルゴリズムの種類を設定できます。This can be set to an encryption algorithm type that is supported by the SSH daemon on the virtual machine. 一般的にサポートされている値は "rsa"、"dsa"、"ecdsa" です。The typically supported values are "rsa", "dsa" and "ecdsa". Windows の "putty.exe" は "ecdsa" をサポートしていないことに注意してください。Note that "putty.exe" on Windows does not support "ecdsa". そのため、Windows の putty.exe を使用して Linux のデプロイに接続する場合は、"rsa" または "dsa" を使用してください。So, if you intend to use putty.exe on Windows to connect to a Linux deployment, please use "rsa" or "dsa".

Provisioning.MonitorHostName:Provisioning.MonitorHostName:
型: ブールType: Boolean
既定: yDefault: y

設定した場合、waagent は Linux 仮想マシンに対してホスト名の変更があるかどうか ("hostname" コマンドによって返される値) を監視し、変更があればイメージ上のネットワーク構成を自動的に更新して反映します。If set, waagent will monitor the Linux virtual machine for hostname changes (as returned by the "hostname" command) and automatically update the networking configuration in the image to reflect the change. DNS サーバーに名前の変更をプッシュするために、仮想マシンでネットワークが再起動されます。In order to push the name change to the DNS servers, networking will be restarted in the virtual machine. これによりインターネット接続は短時間失われます。This will result in brief loss of Internet connectivity.

Provisioning.DecodeCustomDataProvisioning.DecodeCustomData
型: ブールType: Boolean
既定: nDefault: n

設定した場合、waagent は CustomData を base64 からデコードします。If set, waagent will decode CustomData from Base64.

Provisioning.ExecuteCustomDataProvisioning.ExecuteCustomData
型: ブールType: Boolean
既定: nDefault: n

設定した場合、waagent はプロビジョニング後に CustomData を実行します。If set, waagent will execute CustomData after provisioning.

Provisioning.AllowResetSysUser 型: ブール値の既定: nProvisioning.AllowResetSysUser Type: Boolean Default: n

このオプションでは sys ユーザーのパスワードをリセットします。既定値は無効です。This option allows the password for the sys user to be reset; default is disabled.

Provisioning.PasswordCryptIdProvisioning.PasswordCryptId
型: 文字列Type: String
既定値: 6Default: 6

パスワード ハッシュの生成時に、crypt によって使用されるアルゴリズム。Algorithm used by crypt when generating password hash.
1 - MD51 - MD5
2a - Blowfish2a - Blowfish
5 - SHA-2565 - SHA-256
6 - SHA-5126 - SHA-512

Provisioning.PasswordCryptSaltLengthProvisioning.PasswordCryptSaltLength
型: 文字列Type: String
既定値: 10Default: 10

パスワード ハッシュの生成時に使用されるランダム salt の長さ。Length of random salt used when generating password hash.

ResourceDisk.Format:ResourceDisk.Format:
型: ブールType: Boolean
既定: yDefault: y

設定した場合、"ResourceDisk.Filesystem" でユーザーによって要求されたファイル システムの種類が "ntfs" 以外であると、プラットフォームに用意されたリソース ディスクが waagent によってフォーマットされてマウントされます。If set, the resource disk provided by the platform will be formatted and mounted by waagent if the filesystem type requested by the user in "ResourceDisk.Filesystem" is anything other than "ntfs". ファイルシステムの種類が Linux (83) の 1 つのパーティションがディスク上で使用可能になります。A single partition of type Linux (83) will be made available on the disk. このパーティションは、正常にマウント可能な場合、フォーマットされないことに注意してください。Note that this partition will not be formatted if it can be successfully mounted.

ResourceDisk.Filesystem:ResourceDisk.Filesystem:
型: 文字列Type: String
既定: ext4Default: ext4

リソース ディスクのファイルシステムの種類を指定します。This specifies the filesystem type for the resource disk. サポートされている値は Linux ディストリビューションによって異なります。Supported values vary by Linux distribution. 文字列が X の場合、mkfs.X は Linux イメージ上に存在する必要があります。If the string is X, then mkfs.X should be present on the Linux image. SLES 11 イメージでは通常は 'ext3' を使用する必要があります。SLES 11 images should typically use 'ext3'. FreeBSD イメージではここで 'ufs2' を使用する必要があります。FreeBSD images should use 'ufs2' here.

ResourceDisk.MountPoint:ResourceDisk.MountPoint:
型: 文字列Type: String
既定: /mnt/resourceDefault: /mnt/resource

リソース ディスクがマウントされるパスを指定します。This specifies the path at which the resource disk is mounted. リソース ディスクは 一時 ディスクであるため、VM のプロビジョニングが解除されると空になることに注意してください。Note that the resource disk is a temporary disk, and might be emptied when the VM is deprovisioned.

ResourceDisk.MountOptionsResourceDisk.MountOptions
型: 文字列Type: String
既定値: NoneDefault: None

mount -o コマンドに渡されるディスク マウント オプションを指定します。Specifies disk mount options to be passed to the mount -o command. これは値のコンマ区切りリストです。たとえば、This is a comma separated list of values, ex. 'nodev,nosuid' などです。'nodev,nosuid'. 詳細については mount(8) を参照してください。See mount(8) for details.

ResourceDisk.EnableSwap:ResourceDisk.EnableSwap:
型: ブールType: Boolean
既定: nDefault: n

設定した場合、スワップ ファイル (/swapfile) がリソース ディスク上に作成され、システムのスワップ領域に追加されます。If set, a swap file (/swapfile) is created on the resource disk and added to the system swap space.

ResourceDisk.SwapSizeMB:ResourceDisk.SwapSizeMB:
型: 整数Type: Integer
既定: 0Default: 0

スワップ ファイルのサイズを MB 単位で指定します。The size of the swap file in megabytes.

Logs.Verbose:Logs.Verbose:
型: ブールType: Boolean
既定: nDefault: n

設定した場合、ログの詳細度が上がります。If set, log verbosity is boosted. Waagent は /var/log/waagent.log にログを記録し、システムの logrotate 機能を利用してログをローテーションさせます。Waagent logs to /var/log/waagent.log and leverages the system logrotate functionality to rotate logs.

OS.EnableRDMAOS.EnableRDMA
型: ブールType: Boolean
既定: nDefault: n

設定した場合、エージェントは、基礎となるハードウェアのファームウェアのバージョンに一致する RDMA カーネル ドライバーをインストールし、読み込もうとします。If set, the agent will attempt to install and then load an RDMA kernel driver that matches the version of the firmware on the underlying hardware.

OS.RootDeviceScsiTimeout:OS.RootDeviceScsiTimeout:
型: 整数Type: Integer
既定: 300Default: 300

OS ディスクおよびデータ ドライブの SCSI タイムアウトを秒単位で構成します。This configures the SCSI timeout in seconds on the OS disk and data drives. 設定しない場合、システムの既定値が使用されます。If not set, the system defaults are used.

OS.OpensslPath:OS.OpensslPath:
型: 文字列Type: String
既定値: NoneDefault: None

暗号化処理に使用する openssl バイナリの代替パスを指定します。This can be used to specify an alternate path for the openssl binary to use for cryptographic operations.

HttpProxy.Host、HttpProxy.PortHttpProxy.Host, HttpProxy.Port
型: 文字列Type: String
既定値: NoneDefault: None

設定した場合、エージェントはこのプロキシ サーバーを使用して、インターネットにアクセスします。If set, the agent will use this proxy server to access the internet.

AutoUpdate.Enabled 型: ブール値の既定: yAutoUpdate.Enabled Type: Boolean Default: y

目標状態の処理の自動更新を有効または無効にします。規定値は有効です。Enable or disable auto-update for goal state processing; default is enabled.

Ubuntu Cloud ImageUbuntu Cloud Images

Ubuntu Cloud Image では cloud-init を使用して、通常は Azure Linux エージェントで管理される、さまざまな構成タスクを実行します。Note that Ubuntu Cloud Images utilize cloud-init to perform many configuration tasks that would otherwise be managed by the Azure Linux Agent. 以下の相違点に注意してください。Please note the following differences:

  • Provisioning.Enabled が既定で "n" に設定されています。Provisioning.Enabled defaults to "n" on Ubuntu Cloud Images that use cloud-init to perform provisioning tasks.
  • 次の構成パラメーターは、cloud-init を使用してリソース ディスクとスワップ領域を管理する Ubuntu Cloud Image に影響を与えません。The following configuration parameters have no effect on Ubuntu Cloud Images that use cloud-init to manage the resource disk and swap space:

    • ResourceDisk.FormatResourceDisk.Format
    • ResourceDisk.FilesystemResourceDisk.Filesystem
    • ResourceDisk.MountPointResourceDisk.MountPoint
    • ResourceDisk.EnableSwapResourceDisk.EnableSwap
    • ResourceDisk.SwapSizeMBResourceDisk.SwapSizeMB
  • プロビジョニング中に Ubuntu Cloud Image にリソース ディスク マウント ポイントとスワップ領域を構成するときは、次のリソースを参照してください。Please see the following resources to configure the resource disk mount point and swap space on Ubuntu Cloud Images during provisioning: