Terraform を使用して Azure 仮想マシンを作成する

Terraform を使用して Azure 仮想マシンを作成する

以前、Terraform を使用して Proxmox 仮想マシンをデプロイする方法についての記事を書きました。それは、Core i7-8700 + 64G Homelab 上に構築された仮想マシン環境であり、常に私の実験環境となっていました。昨年 Microsoft MVP に参加して Azure クレジットを取得するまでは、特に最近はマルチクラスター環境でテストを行うことが多いため、より多くのリソースが必要になったり、イメージが頻繁にプルされたりするときには Azure 仮想マシンを使用することを選択しました。

Azure 上で仮想マシンを作成するときは、Web ページ CLI から始めましたが、複雑な構成が必要な場合は Terraform を使用するようになりました。この記事では、Terraform を使用して Azure 仮想マシンの作成を構成する方法について説明します。

Terraform[1]は、インフラストラクチャ・アズ・コード・ソフトウェア・ツールです。 Terraform を使用すると、インフラストラクチャ (仮想マシン、ロード バランサ、データベースなどのクラウド リソースとローカル リソースを含む) の望ましい状態を記述するコードを記述し、クラウド リソースとローカル リソースを安全、柔軟、効率的に構築、変更、バージョン管理できます。

前提条件

始める前に、次のものがあることを確認してください。

  • Azure アカウント
  • テラフォームCLI[2]
  • Azure CLI[3]

認証

自動化したいので、最初のステップは認証の問題を解決することです。結局、毎回手動で認証を行うのは非現実的であり、怠け者の特性に合わないのです。

TerraformのAzureプロバイダー[4]は5つの認証方法[5]をサポートしています。ローカルでのみ使用するため、この記事では認証にAzure CLI [6]を使用します。

認証を有効にするには、次のコマンドを実行します。認証する前に、https://portal.azure.com/#settings/directory にアクセスしてテナント情報を取得してください。

 az ログイン--テナント xxxx

コマンドを実行すると、ページが自動的にブラウザにジャンプし、認証プロセスが完了します。

認証が成功すると、コマンドを通じてアカウント情報を表示できます。

 az アカウント表示
{
"環境名" : "AzureCloud"
"ホームテナントID" : "00000000-0000-0000-0000-000000000000"
「id」 : 「00000000-0000-0000-0000-000000000000」
"isDefault" : true
「テナントによって管理」 : [ ]
「名前」 : 「Microsoft Azure スポンサーシップ」
「状態」 : 「有効」
"テナント ID" : "00000000-0000-0000-0000-000000000000" ,
「ユーザー」 : {
「名前」 : [email protected]
「タイプ」 : 「ユーザー」
}
}

複数のサブスクリプションがある場合は、現在のアカウントで使用されているサブスクリプションを設定する必要があります。

 az アカウントセット--サブスクリプション 00000000-0000-0000-0000-0000-000000000000

コード

このスクリプトは GitHub に送信されており、https://github.com/addozhang/terraform-azure-sample にアクセスして入手できます。

コードをローカルに複製します。

 gitクローンhttps://github.com/addozhang/terraform-azure-sample.git

スクリプトは次の 2 つの部分で構成されます。

  • リソース グループ: Azure 上のすべてのリソースは、リソース グループの下に作成されます。仮想マシンを作成する前に、リソース グループを作成するか、既存のリソース グループを使用する必要があります。リソース グループを作成すると、仮想ネットワークとサブネットも作成されます。
  • virtual-machine: 名前が示すように、仮想マシン リソースを作成します。

リソースグループを作成する

リソース グループ ディレクトリに移動し、次のコマンドを実行して Terraform を初期化し、Azure プロバイダーをダウンロードします。

テラフォーム初期化

入力パラメータは variables.tf ファイルで定義されます: リソース グループ名と場所。次のコマンドを実行してリソース グループを作成します。作成時にパラメータを使用して名前と場所を指定することもできます。

コマンドを実行して、Terraform コードを確認します。

テラフォーム検証

コードを適用するには、次のコマンドを実行します。

 # リソースグループディレクトリで実行
テラフォーム適用
# または
terraform を適用- var "name=demo" - var "location=eastasia"

作成されたリソースを表示するには、terraform state list​ を使用します。または、terrafor show を使用して詳細なリソース情報を表示します。

 terraform 状態リスト

azurerm_resource_group .デモ
azurerm_subnet .デモ
azurerm_virtual_network .デモ

仮想マシンの作成

仮想マシンのディレクトリに入り、コマンドを実行して初期化します。

テラフォーム初期化

仮想マシンを作成するためのパラメータがさらにあります。具体的なパラメータ定義については、variables.tf​ を参照してください。 terraform.tfvars ファイルを通じてパラメータ値を設定できます。ここで、使用するサブスクリプション ID を指定する必要があります。

コードとパラメータのチェックを実行します。

テラフォーム検証

コマンドを実行して仮想マシンを作成します。

 # 仮想マシンディレクトリで実行
テラフォーム適用

たとえば、仮想マシンの数 vm_count​ を 3 に設定し、上記のコマンドを実行した後にリソースを確認します。

 terraform 状態リスト

azurerm_linux_virtual_machine .demo [ 0 ]
azurerm_linux_virtual_machine .demo [ 1 ]
azurerm_linux_virtual_machine .demo [ 2 ]
azurerm_network_interface .demo [ 0 ]
azurerm_network_interface .demo [ 1 ]
azurerm_network_interface .demo [ 2 ]
azurerm_public_ip.デモ[ 0 ]
azurerm_public_ip.デモ[ 1 ]
azurerm_public_ip.デモ[ 2 ]

terraform show コマンドを使用すると、パブリック IP アドレスなどのリソースに関する詳細情報を表示できます。

参考文献

[1] テラフォーム: https://developer.hashicorp.com/terraform/intro

[2] Terraform CLI: https://developer.hashicorp.com/terraform/downloads

[3] Azure CLI: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli

[4] Azureプロバイダー: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs

[5] 5つの認証方法: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#authenticating-to-azure

[6] Azure CLIメソッド: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/azure_cli

<<:  【クラウドネイティブ】Apache Livy on k8s 解説と実践操作

>>:  Kubernetes Ingress はどのように機能しますか?

推薦する

edis-ロシアのデータセンターKVM、最初の1か月は無料、1000Mポート

edis.at は長年の歴史があり、VPS、サーバーなどには多数の異なるデータセンターがあり、ほぼさ...

2021 年に組織が完璧なクラウド コンピューティング戦略を作成するための 3 つの柱

[[378104]]クラウド コンピューティングは、特にコロナウイルスのパンデミックの期間中はこれま...

おすすめウェブサイト: オンラインストアを収益性の高いものにするオンラインストア分析プラットフォーム「Jirafe」

2010年に設立されたオンラインストア管理プラットフォームのJirafeは、最近、シリーズAの資金調...

年次レビュー | 2019年のブランドマーケティングの3つのキーワード

はじめに:頻繁なコラボレーション、頻繁な飢餓マーケティング、頻繁なイノベーション、頻繁な限定販売、頻...

オランダのアムステルダムにおける gcore Basic VM の簡単なレビュー

gcoreはどうですか? gcore クラウド サーバーはどうですか? gcoreのクラウドサーバー...

禁止されたウェブサイトを迅速に復元する方法の分析例

ウェブサイトが K アウトされることは、ウェブマスターが最も恐れる状況です。ウェブサイトが K アウ...

全体的な状況に基づいてウェブサイト広告モデルを選択する方法

多くの SEO 担当者は、ウェブサイトを構築するときに独自の目的を持っています。おそらく、これらの目...

friendhosting: 新年のフラッシュセール、全10データセンターのVPSが50%オフ、最低$16/年、トラフィック無制限

friendhosting は新年の VPS フラッシュセールを開始しました。すべての VPS には...

百度ウォレットの「フォトペイ」がモバイル決済市場に混乱をもたらし、ドメイン名が次々と購入される

eName.cnは4月16日、百度が最近、決済事業ブランド「百度ウォレット」を立ち上げ、強力な「写真...

オンラインドラマ「大淘宝」でSEOについてより深く理解できました

今日は短編感動オンラインドラマ「大淘宝」を観終えました。短編映画の中で淘宝の売り手の生活状況が描写さ...

アリババとテンセントがミニプログラムをめぐって争う!

WeChatミニプログラムの発売から3年が経過した現在も、Alipayミニプログラムは勢いを増し続け...

VMware、企業のアプリケーション近代化を支援する製品ポートフォリオを強化

[51CTO.comより元記事] 疫病の影響により、今年のVMworld2020はオンラインライブ放...

ウェブマスターが運営するポータルサイトは、トレンドに追随しながらも、トレンドに逆らってプロモーションするにはどうすればよいでしょうか。

ほとんどのウェブマスターにとって、ウェブサイトのプロモーションは、フォーラムへの投稿やニュースの公開...

私の当初の理解について話す

独創性はウェブサイトの最適化のプロセスにおいて重要な役割を果たします。特に、高品質のオリジナル記事は...

siberdc: 月額 3 ドル、トルコ VPS (トラフィック無制限)、1G メモリ/2 コア/30g SSD/1Gbps 帯域幅

トルコの商人であるsiberdcは2011年に設立されました。主にトルコの高防御事業を運営しており、...