Azure の仮想マシンでインフラストラクチャ自動化ツールを使用するUse infrastructure automation tools with virtual machines in Azure

Azure の仮想マシン (VM) を一貫した方法で大規模に作成および管理するには、一般的に、何らかの形で自動化することが必要です。To create and manage Azure virtual machines (VMs) in a consistent manner at scale, some form of automation is typically desired. Azure インフラストラクチャのデプロイと管理のライフサイクル全体を自動化できるツールやソリューションはたくさんあります。There are many tools and solutions that allow you to automate the complete Azure infrastructure deployment and management lifecycle. この記事では、Azure で使用できるインフラストラクチャ自動化ツールの一部を紹介します。This article introduces some of the infrastructure automation tools that you can use in Azure. これらのツールは、一般的に、次のいずれかのアプローチに適しています。These tools commonly fit in to one of the following approaches:


Ansible は、構成の管理、VM の作成、またはアプリケーションのデプロイ用の自動化エンジンです。Ansible is an automation engine for configuration management, VM creation, or application deployment. Ansible では、ターゲット マシンを認証および管理するために、通常は SSH キーによる、エージェントレス モデルを使用します。Ansible uses an agent-less model, typically with SSH keys, to authenticate and manage target machines. 構成タスクはプレイブックで定義し、特定のタスクを実行するために利用できるさまざまな Ansible モジュールが用意されています。Configuration tasks are defined in playbooks, with a number of Ansible modules available to carry out specific tasks. 詳細については、「How Ansible works (Ansible のしくみ)」を参照してください。For more information, see How Ansible works.

具体的には、次の方法を学習します。Learn how to:


Chef は、インフラストラクチャを構成、デプロイ、管理する方法を定義するのに役立つ自動化プラットフォームです。Chef is an automation platform that helps define how your infrastructure is configured, deployed, and managed. 追加コンポーネントには、インフラストラクチャではなくアプリケーションのライフサイクル自動化のための Chef Habitat のほか、セキュリティとポリシー要件へのコンプライアンスの自動化に役立つ Chef InSpec があります。Additional components included Chef Habitat for application lifecycle automation rather than the infrastructure, and Chef InSpec that helps automate compliance with security and policy requirements. Chef Client はターゲット マシンにインストールし、1 つ以上の中央 Chef Server で構成を保存および管理します。Chef Clients are installed on target machines, with one or more central Chef Servers that store and manage the configurations. 詳細は、「An Overview of Chef (シェフの概要)」を参照してください。For more information, see An Overview of Chef.

具体的には、次の方法を学習します。Learn how to:


Puppet は、アプリケーションの配信とデプロイのプロセスを処理する、エンタープライズ対応の自動化プラットフォームです。Puppet is an enterprise-ready automation platform that handles the application delivery and deployment process. エージェントは、ターゲット マシンにインストールし、Azure インフラストラクチャと VM の目的の構成を定義したマニフェストを Puppet Master が実行できるようにします。Agents are installed on target machines to allow Puppet Master to run manifests that define the desired configuration of the Azure infrastructure and VMs. Puppet は、Jenkins や GitHub などの他のソリューションと統合して、DevOps ワークフローを強化できます。Puppet can integrate with other solutions such as Jenkins and GitHub for an improved devops workflow. 詳細については、「How Puppet works (Puppet のしくみ)」を参照してください。For more information, see How Puppet works.

具体的には、次の方法を学習します。Learn how to:


cloud-Init は、Linux VM を初回起動時にカスタマイズするために広く使用されているアプローチです。Cloud-init is a widely used approach to customize a Linux VM as it boots for the first time. cloud-init を使って、パッケージをインストールしてファイルを書き込んだり、ユーザーとセキュリティを構成したりすることができます。You can use cloud-init to install packages and write files, or to configure users and security. cloud-init は初回起動プロセスの間に呼び出されるので、構成を適用するために追加の手順や必要なエージェントはありません。Because cloud-init is called during the initial boot process, there are no additional steps or required agents to apply your configuration. #cloud-config ファイルの形式を正しく設定する方法について詳しくは、cloud-init のドキュメント サイトをご覧ください。For more information on how to properly format your #cloud-config files, see the cloud-init documentation site. #cloud-config ファイルは、base64 でエンコードされたテキスト ファイルです。#cloud-config files are text files encoded in base64.

cloud-init はディストリビューション全体でも有効です。Cloud-init also works across distributions. たとえば、パッケージをインストールするときに apt-get installyum install は使用しません。For example, you don't use apt-get install or yum install to install a package. 代わりに、cloud-init ではインストールするパッケージの一覧をユーザーが定義できます。Instead you can define a list of packages to install. cloud-init によって、選択したディストリビューションに対してネイティブのパッケージ管理ツールが自動的に使用されます。Cloud-init automatically uses the native package management tool for the distro you select.

Microsoft は、動作保証済み Linux ディストリビューションのパートナーと協力して、cloud-init 対応のイメージを Azure Marketplace で利用できるようにする作業を行っています。We are actively working with our endorsed Linux distro partners in order to have cloud-init enabled images available in the Azure Marketplace. これらのイメージでは、cloud-init のデプロイと構成が、VM および仮想マシン スケール セット とシームレスに動作するようになります。These images make your cloud-init deployments and configurations work seamlessly with VMs and virtual machine scale sets. Azure の cloud-init について詳しくは、次のページをご覧ください。Learn more details about cloud-init on Azure:

PowerShell DSCPowerShell DSC

PowerShell Desired State Configuration (DSC) は、ターゲット マシンの構成を定義するための管理プラットフォームです。PowerShell Desired State Configuration (DSC) is a management platform to define the configuration of target machines. DSC は、Open Management Infrastructure (OMI) サーバーを介して Linux で使用することもできます。DSC can also be used on Linux through the Open Management Infrastructure (OMI) server.

DSC 構成では、マシンにインストールするものと、ホストを構成する方法を定義します。DSC configurations define what to install on a machine and how to configure the host. Local Configuration Manager (LCM) エンジンは、プッシュされた構成に基づいて要求されたアクションを処理する各ターゲット ノードで実行されます。A Local Configuration Manager (LCM) engine runs on each target node that processes requested actions based on pushed configurations. プル サーバーは、中央ホストで実行され、DSC 構成と関連リソースを格納する Web サービスです。A pull server is a web service that runs on a central host to store the DSC configurations and associated resources. プル サーバーは、各ターゲット ホスト上の LCM エンジンと通信して、必要な構成を提供し、コンプライアンスについて報告します。The pull server communicates with the LCM engine on each target host to provide the required configurations and report on compliance.

具体的には、次の方法を学習します。Learn how to:

Azure カスタム スクリプト拡張機能Azure Custom Script Extension

Linux または Windows 用の Azure カスタム スクリプト拡張機能は、Azure VM でスクリプトをダウンロードして実行します。The Azure Custom Script Extension for Linux or Windows downloads and executes scripts on Azure VMs. 拡張機能は、VM を作成するときや、VM の使用中にいつでも使用できます。You can use the extension when you create a VM, or any time after the VM is in use.

スクリプトは、Azure Storage または GitHub リポジトリなどの公開されている場所からダウンロードできます。Scripts can be downloaded from Azure storage or any public location such as a GitHub repository. カスタム スクリプト拡張機能を使用すると、ソース VM で実行されるスクリプトを任意の言語で作成できます。With the Custom Script Extension, you can write scripts in any language that runs on the source VM. これらのスクリプトを使用して、アプリケーションをインストールしたり、必要に応じて VM を構成したりすることができます。These scripts can be used to install applications or configure the VM as desired. 資格情報をセキュリティで保護するために、パスワードなどの機密情報を保護された構成に格納することができます。To secure credentials, sensitive information such as passwords can be stored in a protected configuration. これらの資格情報は、VM 内でのみ復号化されます。These credentials are only decrypted inside the VM.

具体的には、次の方法を学習します。Learn how to:


Packer は、Azure でカスタム VM イメージを作成するときのビルド プロセスを自動化します。Packer automates the build process when you create a custom VM image in Azure. Packer を使用して、OS を定義し、特定のニーズに合わせて VM をカスタマイズする構成後スクリプトを実行します。You use Packer to define the OS and run post-configuration scripts that customize the VM for your specific needs. 構成後、VM は管理対象ディスク イメージとしてキャプチャされます。Once configured, the VM is then captured as a Managed Disk image. Packer は、ソース VM、ネットワーク、ストレージ リソースを作成し、構成スクリプトを実行して、VM イメージを作成するプロセスを自動化します。Packer automates the process to create the source VM, network and storage resources, run configuration scripts, and then create the VM image.

具体的には、次の方法を学習します。Learn how to:


Terraform は、単一のテンプレート形式言語 (HashiCorp 構成言語 (HCL)) で、Azure インフラストラクチャ全体を定義して作成できる自動化ツールです。Terraform is an automation tool that allows you to define and create an entire Azure infrastructure with a single template format language - the HashiCorp Configuration Language (HCL). Terraform を使用して、特定のアプリケーション ソリューションのネットワーク、ストレージ、および VM リソースを作成するプロセスを自動化するテンプレートを定義します。With Terraform, you define templates that automate the process to create network, storage, and VM resources for a given application solution. 他のプラットフォーム用の既存の Terraform テンプレートを Azure で使用することで、Azure Resource Manager テンプレートに変換せずに、一貫性を確保し、インフラストラクチャのデプロイを簡略化することができます。You can use your existing Terraform templates for other platforms with Azure to ensure consistency and simplify the infrastructure deployment without needing to convert to an Azure Resource Manager template.

具体的には、次の方法を学習します。Learn how to:

Azure AutomationAzure Automation

Azure Automation では、Runbook を使用して、ターゲットの VM で一連のタスクを処理します。Azure Automation uses runbooks to process a set of tasks on the VMs you target. Azure Automation は、インフラストラクチャを作成するためではなく、既存の VM を管理するために使用します。Azure Automation is used to manage existing VMs rather than to create an infrastructure. Azure Automation は、Linux と Windows の両方の VM のほか、Hybrid Runbook Worker を使用してオンサイトの仮想マシンまたは物理マシンで実行できます。Azure Automation can run across both Linux and Windows VMs, as well as on-premises virtual or physical machines with a hybrid runbook worker. Runbook は、GitHub などのソース管理リポジトリに格納することができます。Runbooks can be stored in a source control repository, such as GitHub. これらの Runbook は、手動で、または定義されたスケジュールに基づいて実行できます。These runbooks can then run manually or on a defined schedule.

また、Azure Automation には、特定の VM セットの構成方法の定義を作成できる Desired State Configuration (DSC) サービスも用意されています。Azure Automation also provides a Desired State Configuration (DSC) service that allows you to create definitions for how a given set of VMs should be configured. DSC により、必要な構成が適用され、VM の一貫性が維持されます。DSC then ensures that the required configuration is applied and the VM stays consistent. Azure Automation DSC は、Windows マシンと Linux マシンの両方で動作します。Azure Automation DSC runs on both Windows and Linux machines.

具体的には、次の方法を学習します。Learn how to:

Azure DevOps ServicesAzure DevOps Services

Azure DevOps Services は、コードの共有と追跡、自動ビルドの使用、完全な継続的インテグレーションと開発 (CI/CD) パイプラインの作成に役立つ一連のツールです。Azure DevOps Services is a suite of tools that help you share and track code, use automated builds, and create a complete continuous integration and development (CI/CD) pipeline. Azure DevOps Services は、Visual Studio や他のエディターと統合して、簡単に使用できるようにします。Azure DevOps Services integrates with Visual Studio and other editors to simplify usage. Azure DevOps Services では、Azure VM を作成して構成した後、VM にコードをデプロイすることもできます。Azure DevOps Services can also create and configure Azure VMs and then deploy code to them.

各項目の詳細情報Learn more about:


Jenkins は、アプリケーションのデプロイとテスト、コード配信用の自動化されたパイプラインの作成に役立つ継続的インテグレーション サーバーです。Jenkins is a continuous integration server that helps deploy and test applications, and create automated pipelines for code delivery. Jenkins のコア プラットフォームを拡張するプラグインは多数あります。また、webhook を介して他のさまざまな製品やソリューションと統合することもできます。There are hundreds of plugins to extend the core Jenkins platform, and you can also integrate with many other products and solutions through webhooks. Azure VM に手動で Jenkins をインストールしたり、Docker コンテナー内から Jenkins を実行したり、事前に構築された Azure Marketplace イメージを使用したりできます。You can manually install Jenkins on an Azure VM, run Jenkins from within a Docker container, or use a pre-built Azure Marketplace image.

具体的には、次の方法を学習します。Learn how to:

Azure Resource Manager テンプレートAzure Resource Manager template

Azure Resource Manager は、Azure のデプロイおよび管理サービスです。Azure Resource Manager is the deployment and management service for Azure. Azure サブスクリプション内のリソースを作成、更新、および削除できる管理レイヤーを提供します。It provides a management layer that enables you to create, update, and delete resources in your Azure subscription. アクセス制御、ロック、タグなどの管理機能を使用して、デプロイ後にリソースを保護および整理します。You use management features, like access control, locks, and tags, to secure and organize your resources after deployment.

具体的には、次の方法を学習します。Learn how to:

次のステップNext steps

Azure でインフラストラクチャ自動化ツールを使用する方法はたくさんあります。There are many different options to use infrastructure automation tools in Azure. ニーズや環境に最適なソリューションを自由に使用できます。You have the freedom to use the solution that best fits your needs and environment. Azure に組み込まれているいくつかのツールを使用したり、試したりするには、Linux または Windows VM のカスタマイズを自動化する方法を参照してください。To get started and try some of the tools built-in to Azure, see how to automate the customization of a Linux or Windows VM.