GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuでTerraformコマンドラインインターフェイス(CLI)を使用する方法

Terraformは、コマンドラインインターフェイスとDSL言語を使用して、インフラストラクチャをコードとして構築および構成するためのフレームワークです。 Terraformは、既存の人気のあるサービスプロバイダーだけでなく、完全な分散データセンターを構築および構成するためのカスタムの社内ソリューションを管理できます。

Terraformコマンドラインインターフェイス(CLI)を使用すると、コードや構成ファイルを記述せずにTerraformを使用できます。これは、コードを記述したり、マシンにローカルで構成をデプロイしたり、本番環境にプッシュしたりする前に、チームでインフラストラクチャの変更のプロトタイプを作成するための理想的な方法です。 CLIは、HashiCorp NomadCLIToolkitなどのサードパーティによってこの目的のために作成されたterraformspecファイル形式から構築されています。

CLIツールキットはJavaScriptDSLを実装してインフラストラクチャを定義し、TerraformとCLIの両方で同じ構成形式を使用します。 CLIツールキットには、インフラストラクチャテンプレートを生成し、インフラストラクチャコンポーネントを完全なソリューションに構成し、変更を管理するためのコマンドも用意されています。 Terraformワークフロー全体は、コードで定義され、変更を加えるたびにTerraformによって実行されるステートレス関数によって駆動されます。これにより、インフラストラクチャを、構成を再ロードしたりコードベースを変更したりすることなく、実行時に簡単に変更できる単一の設計と考えることができます。

多くのIT専門家や企業は、Terraformコマンドラインインターフェイスを使用して、新しいインフラストラクチャや新しいクラウドインフラストラクチャを管理および作成しています。 terraformコマンドラインインターフェイスは、手動で実行するには時間がかかりすぎる変更を自動化するためのより堅牢な方法を提供できます。インフラストラクチャを管理するための強力なツールです。

Terraformが世界で最も人気のあるオープンソースクラウドプロビジョニングソリューションの1つである理由は簡単に理解できます。これは、あなたのようなLinuxの人々が使用するツールです!

内部には、Terraformの最も強力な機能を実際に体験できるように特別に選択された、最も一般的に使用されるTerraformCLIコマンドの完全な説明と例があります。

前提条件
  • この記事をフォローするには、次のものが必要です。
  • Terraformの特徴に関する特定の基本的な知識。
  • Linuxマシン。このデモではUbuntu20.04LTSを使用していますが、どのLinuxディストリビューションでも機能します。
  • マシンにインストールされているTerraformとdocker。
メインコードのクローン作成

前提条件を満たしたので、TerraformCLIを使用するためのメインコードのクローンを作成する準備が整いました。

1.以下のaptinstallコマンドを実行して、システムにgitをインストールします。 Gitは、小規模なプロジェクトから非常に大規模なプロジェクトまで、あらゆるものを迅速かつ効率的に処理するように設計されたオープンソースの分散型リビジョン管理システムです。 gitを使用して、github.comからterraformコマンドラインインターフェイスプロジェクトテンプレートのクローンを作成します。次に、このデモのterraformコマンドラインの正しいバージョンを確認します。

sudo apt install git -y

2.以下のgitcloneコマンドを実行して、現在のディレクトリにterraformコマンドラインプロジェクトテンプレートのクローンを作成します。

git clone https://github.com/howtoforge-com/terraform-cli.git

3.新しく複製されたterraform-cliディレクトリに移動し、 main.tfを開きます。 お気に入りのテキストエディタ(vim、emacs、nanoなど)でファイルします。 main.tfファイルは、terraformコマンドラインインターフェイス(Cli)へのプロジェクトのエントリポイントです。 terraformコマンドを実行すると、 main.tfが使用されます。 インフラストラクチャを構築する方法の説明の入力としてファイルします。

cd terraform-cli && sudo nano main.tf

次の出力が得られます。

  • テラフォーム{} main.tfのセクション ファイルは、Dockerプロバイダーを required_providerとして設定するだけです。 。 TerraformでDockerインフラストラクチャを管理するには、Dockerプロバイダーを構成する必要があります。

  • リソース"docker_image""nginx" { コードブロックは、 docker_image という新しいリソースを作成して、terraformCLIを使用する方法を示しています。 。次の行では、 docker-imageを使用しています nginxというリソースを作成します 。これはDockerコンテナの管理に使用されると推測できます。次の行は、Dockerイメージの名前を nginx:latestとして設定します。 keep_locally =false イメージがマシンにローカルにキャッシュされるのを防ぎます。重複したダウンロードを防ぐことをお勧めします。

  • リソース"docker_container""nginx" { docker_container という新しいリソースを作成して、terraformCLIを使用する方法を示します。 。次の行では、 docker_containerを使用しています nginxというリソースを作成します 。これは、Dockerコンテナのポートマッピングを管理するために使用されます。次の行では、Dockerコンテナの名前をチュートリアルに設定しています。 最後に、ポート 8000をマッピングする方法を示します およびポート80 ポートブロックを使用して、Dockerコンテナ上のホストマシンで。

Terraformコマンドラインインターフェース(CLI)を使用して最初のインフラストラクチャを構築する

terraformプロジェクトテンプレートのクローンを作成したので、最初のインフラストラクチャを構築できます。 Terraform CLIを使用して、プロジェクトの main.tfを使用してインフラストラクチャを構築します。 ファイル。 Dockerコンテナーを作成し、ホストマシンからDockerコンテナーにポートをマップします。

1.まず、terraform initコマンドを実行して、作業ディレクトリを初期化します。 terraform initコマンドは、作業ディレクトリを初期化し、Terraformがインフラストラクチャを管理するために必要なプラグインをダウンロードします。作業ディレクトリは、terraformコマンドを使用してインフラストラクチャを管理するディレクトリです。初期化されると、このディレクトリにはmain.tfファイルが含まれ、複数のサポートファイルを含めることができます。

terraform init

terraform initコマンドを正常に実行すると、次の出力が表示されます。

2.次に、terraform fmtコマンドを実行して、読みやすさと一貫性を保つためにmain.tfファイルを自動フォーマットします。 terraform fmtコマンドは、読みやすさと一貫性のためにmain.tfファイルを再フォーマットします。これは、自分や他の人がファイルを読みやすくするために従うことをお勧めします。

terraform fmt

terraformfmtコマンドがyourmain.tfを変更した場合 ファイルの場合、再フォーマットしたファイルの名前が出力されます。このデモでは、以下に示すように、main.tfファイルがすでにTerraformの好みに合わせてフォーマットされているため、出力は空白になります。

3. terraform validateコマンドを実行して、インフラストラクチャが意図したとおりに構築されることを確認します。 terraform validateコマンドは、インフラストラクチャが意図したとおりに構築できることを確認するための安全チェックです。

terraform validate

エラーがない場合は、次のような出力が表示されます。これは、すべてが最初のインフラストラクチャを構築する準備ができていることを示しています。

4. terraform planコマンドを実行して、インフラストラクチャを構築するためにTerraformが何をするかを確認します。 terraform planコマンドは、Terraformが構築を計画しているもののプレビューであり、terraformapplyと同じではありません。

terraform plan

terraform planコマンドは、次の構造を出力し、nginxという名前のdocker_containerリソースとtutorialという名前のdocker_imageリソースのインスタンスを作成することを示します。

5. terraform applyコマンドを実行して、terraformplanでプレビューした変更を適用します。 terraform applyコマンドは、インフラストラクチャを構築します。 terraform applyコマンドは、Terraformmain.tf構成ファイルに記述されているすべてのリソースを作成します。

このコマンドは、terraform planコマンドからの変数、制約、およびマッピングの評価を再利用して、可能な限り最も効率的な計画を作成します。適用コマンドを実行すると、terraformapplyを使用してコマンドラインで指定された追加オプションが使用されます。 はいと入力します Enterを押します 値を入力するように求められたとき 。

terraform apply

terraform applyコマンドが成功すると、以下に示すように、インフラストラクチャが正常に構築されたことを示すメッセージが表示されます。これが発生した場合は、インフラストラクチャが意図したとおりに構築されており、構成ファイルが最新であることを意味します。

6. lsコマンドを実行して、作業ディレクトリ内のすべてのファイルを一覧表示します。以下に示すように、terraform.tfstateという名前の新しいファイルが表示されます。この名前のファイルは、インフラストラクチャへの変更を追跡するために作成されます。 terraform planコマンドは、terraformapplyを実行するときに適用される変更を.tfstateという名前の中間ファイルに保存します。状態ファイルには、Terraformが認識しているインフラストラクチャの完全な状態が含まれています。このファイルは、構成を適用するために必要であり、ターゲットが同じプロバイダー内にある場合でも、変更を加えるときに転送する必要があります。

ls

7.これで構築プロセスは終了しました。 terraform destroyコマンドを実行して、構築したばかりのインフラストラクチャを破棄します。 はいと入力します Enterを押します 値を入力するように求められたとき 。 terraform destroyコマンドは、このデモによって作成されたすべてのリソースを削除します。 terraform destroyコマンドは、Terraform main.tfに記述されているすべてのリソースを削除します。 構成ファイル。リソースが破壊されると、それらを回復することはできません。

環境の構成をチェックするために、未使用のリソースを削除する必要があります。それは失敗を隠すことではなく、使われなくなったリソースの蓄積を防ぐことによって失敗を防ぐことです。

 terraform destroy

結論

このチュートリアルでは、例で示した最も一般的なTerraformの概念を使用して、最初のインフラストラクチャを構築する方法を学習しました。 Terraform CLIを使用して、プロジェクトのmain.tfファイルを使用してインフラストラクチャを構築する方法を学習しました。 CLIを使用して、インフラストラクチャを計画、適用、および破棄できます。

これで、独自のインフラストラクチャを構築するためのツールが手に入りました。 Terraformの包括的で表現力豊かな構成言語のおかげで、さまざまなリソースを簡単に管理できます。

Dockerコンテナー、Kubernetes、OpenStackですでに使用されているインフラストラクチャ管理に関する新たな知識を活用して、コードとしてのインフラストラクチャの実践にさらに効率と一貫性をもたらすことができます。


Ubuntu
  1. Ubuntu18.04およびCentOS7でLinuxシャットダウンコマンドを使用する方法

  2. Ubuntuのコマンドラインからセキュリティアップデートをインストールする方法

  3. UbuntuLinuxでtailコマンドを使用する方法

  1. Ubuntu で string コマンドを使用する方法

  2. Ubuntu で netplan コマンドを使用する方法

  3. Ubuntu で ssh-keyscan を使用する方法

  1. Linuxでsudoコマンドを使用する方法

  2. vmstatコマンドの使用方法

  3. Ubuntu で ssh-agent を使用する方法