企業は、運用を改善するためのソフトウェアの開発とインストールに多大な時間とお金を投資してきました。クラウドコンピューティングの導入により、より効率的で安全であることが証明されたサービスとしてインターネット上のソフトウェアにアクセスすることがビジネスに提供されました。 AWSのようなクラウドインフラストラクチャを簡単にプロビジョニングおよび管理するAnsibleのようなIT自動化ツールを統合することは、大当たりのようなものです。これが、このAnsible forAWSブログで説明する内容です。
日記:
DevOpsをマスターしたい場合は、 ' コースはあなたの頼りになるオプションです。
Pythonのkeyerrorとは何ですか
企業がクラウドに移行する理由
前述のように、Could Computingを使用すると、企業はインターネットを介してソフトウェアなどのサーバーにアクセスできます。明確にするために、クラウドコンピューティングは、独自の電力を生成するのではなく、中央の電力網に接続するようなものです。クラウドは新しい常識になり、これは多くの時間とお金を節約することになります。企業がクラウドに移行する理由のいくつかの利点を見てみましょう。
1.柔軟性:
ビジネスの成長は決して静的ではありません。クラウドベースのサービスは、成長し変動するビジネス需要に適しています。要件に基づいて展開をスケールアップおよびスケールダウンする機能により、非常に柔軟になります。
2.ディザスタリカバリ:
すべての企業が災害復旧に投資すべきでした。すべての幸運な会社は、災害復旧に莫大な投資をすることになります。新興企業や低予算の企業は、これに必要な資金とスキルが不足しており、適切な機能的なディザスタリカバリ特性を備えていません。クラウドは、お客様が堅牢で費用効果の高い計画を作成するためのディザスタリカバリソリューションを提供します。
3.自動ソフトウェアアップデート:
ご存知のように、クラウドはインターネットによって提供されるサービスであるため、すべてのサーバーが手の届かないところにあるか、頭痛の種ではありません。サプライヤは、必要に応じて更新し、定期的なセキュリティチェックを実行するなど、それらの面倒をみます。これもまた、多くの時間とお金を節約することになります。
4.コストの削減:
データセンターを最初から確立すると、コストがかかる可能性があります。実行と保守は費用の合計になります。適切なテクノロジー、適切なハードウェア、適切な知識と経験を備えた適切なスタッフが必要です。これは私には大変な作業のように思えます。また、あまり有望ではありませんが、これがうまくいかない可能性のある方法は無数にあります。クラウドに移行すると、このプラスポイントが得られます。
5.スケーラビリティ:
予期しない成長を計画する従来の方法は、追加のサーバー、ストレージ、およびライセンスを購入して保持することです。実際に使用するまでに数年かかる場合があります。クラウドプラットフォームでは、必要に応じてこれらのリソースをスケールアップできます。この動的スケーリングは、予測できない成長に最適です。
6.データセキュリティ:
ほとんどの場合、ラップトップやハードディスクなどの物理デバイスにデータを保存するよりも、データをクラウドに保存する方が適切です。これらの物理デバイスが盗まれたり、粉々になったりする可能性が高くなります。クラウドを使用すると、データをリモートで削除するか、別のサーバーに転送して、データが完全で安全な状態に保たれるようにすることができます。
7.コラボレーションの強化:
クラウドプラットフォームを使用すると、チームはいつでもどこでもドキュメントにアクセス、編集、共有できます。それらは一緒に働くことができるので、効率が上がります。これにより、リアルタイムで透過的な更新も提供されます。
Ansibleの機能
Ansibleにはいくつかの独自の機能があり、そのような機能がアマゾンウェブサービスと連携する場合、マークを残します。これらの素晴らしい機能を見てみましょう。
- Ansibleは、ChefやPuppetとは異なり、エージェントレスアーキテクチャに基づいています
- AnsibleはSSHを介してホストにアクセスします。これにより、サーバーとホスト間の通信が簡単になります。
- カスタムセキュリティインフラストラクチャは必要ありません
- YAML形式に従うため、プレイブックとモジュールの構成は非常に簡単です
- 顧客向けの幅広いモジュールがあります
- 完全な構成管理、オーケストレーション、および展開機能を可能にします
- AnsibleVaultは秘密を安全に保ちます
なぜAnsibleFor AWSを使用するのですか?
AWSのようなクラウドプラットフォームとAnsibleの独自の機能を使用するメリットを確認したので、これら2つの凡例を統合することで作成される魔法を見てみましょう。
1.サービスのグループとしてのクラウド
クラウドは、他の誰かのデータセンター上のサーバーのグループであるだけでなく、それ以上のものです。サービスをデプロイすると、そのことに気付くでしょう。アプリケーションを迅速にデプロイおよび拡張できるサービスは多数あります。 Ansible Automationは、AWS環境をサーバーのグループとして使用するのではなく、サービスのグループのように管理するのに役立ちます。
2.AWSをサポートするAnsibleモジュール
Ansibleは、さまざまなサービスを定義、デプロイ、管理するために使用されます。最も複雑なAWS環境は、ハンドブックを使用して非常に簡単にプロビジョニングできます。最良の機能は、サーバーとホストの接続を作成してから、1つのシステムでプレイブックを実行し、要件に応じてスケールアップおよびスケールダウンするオプションを使用して他の複数のシステムをプロビジョニングすることです。
AnsibleにはAWSをサポートする何百ものモジュールがあり、そのうちのいくつかは次のとおりです。
- 自動スケーリンググループ
- CloudFormation
- CloudTrail
- CloudWatch
- DynamoDB
- ElastiCache
- Elastic Cloud Compute(EC2)
- Identity Access Manager(IAM)
- ラムダ
- リレーショナルデータベースサービス(RDS)
- Route53
- セキュリティグループ
- シンプルストレージサービス(S3)
- 仮想プライベートクラウド(VPC)
- などなど
3.動的インベントリ
開発環境では、ホストはさまざまなビジネス要件に応じてスピンアップおよびシャットダウンを続けます。このような場合、静的インベントリを使用するだけでは不十分な場合があります。このような状況では、動的インベントリを使用する必要があります。これにより、非常に面倒な手動でホストをマップする必要がある通常のインベントリとは異なり、インベントリスクリプトによって提供されるグループに基づいてホストをマップできます。
4.安全な自動化
あなたが5人のチームを持っていて、それぞれが完全に熟練していない2人の部下を持っていると仮定します。導入プロセス全体への完全なアクセスを彼らに与えたくはありません。そのとき、承認を制限する必要があることに気づきます。
Ansible Towerは、認証を制限するためにこの機能を提供します。つまり、基本的には、誰が何をできるかを選択したので、モデレートが簡単になります。また、Ansible Towerは資格情報やその他の機密データを暗号化し、部下に関連するリソースへのアクセスのみを許可し、関係のないリソースへのアクセスを制限します。
デモ:Ansibleを使用してEC2インスタンスのプロビジョニングを自動化する
このデモセクションでは、EC2インスタンスの開始とプロビジョニングを自動化する方法を示すことで、AnsibleがAWSをサポートする方法を示します。始めましょう。
ステップ1 :
サーバーノードにAnsibleをインストールし、サーバーとAWSのクライアントノードの間にSSH接続を確立します。この場合、2つのEC2インスタンスを作成しました。1つはAnsibleがインストールされているサーバーで、もう1つはクライアントです。
ステップ2:
ここで、すべての要件がインストールされていることを確認してください。ドキュメントによると、これらは次の要件です。
- Python> = 2.6
- 投票
次のコマンドを使用してPythonをインストールします。
$ sudo apt install python
次のコマンドを使用してbotoをインストールします。
$ sudo apt install python-pip
$ pip install boto
例を使用してJavaで型キャスト
Botoは、AmazonWebサービスを使用するためのPythonインターフェースです。次のコマンドを使用してインポートする必要があります。
$ python
$インポートボタン
$ exit()
ステップ3:
AWSを設定する必要があります。同じために次のコマンドを使用します。
$ aws configure
そして、AWSアクセスキーID、シークレットキー、デフォルトリージョン(オプション)を追加します。
ステップ4:
プレイブックを作成して、EC2インスタンスを開始およびプロビジョニングします。
$ sudo vi /etc/ansible/launch.yml
--- --name:ec2インスタンスを作成しますhosts:web collect_facts:false vars:region:us-east-1 instance_type:t2.micro ami:ami-05ea7729e394412c8 keypair:priyajdmタスク:-name:ec2インスタンスを作成しますec2:aws_access_key : '********************' aws_secret_key: '************************ **************** 'key_name:' {{keypair}} 'group:launch-wizard-26 instance_type:' {{instance_type}} 'image:' {{ami}} 'wait:true region:' {{region}} 'count:1 vpc_subnet_id:subnet-02f498e16fd56c277 assign_public_ip:yes register:ec2
実際に実行する前に、コードの機能を理解しておくことをお勧めします。理解を深めるために、このプレイブックについて説明します。
名前: 文字通り何でもかまいません。実行するタスクの基本的な説明を示す名前を付けることをお勧めします。
ホスト: プレイブックを実行する必要があるホストリストの名前を示します。私の場合は ウェブ 。
collect_facts: このパラメーターは、将来の参照のために、関連するすべてのファクト、変数、およびその他のデータを収集するようにAnsibleに指示します。この例では、ファクト(IPアドレス、ホスト名など)を収集する必要がないため、falseに設定しました。
その: このセクションでは、このハンドブックで使用するすべての変数を定義して初期化します。ここには4つの変数があります。
- 領域 EC2インスタンスを起動する必要があるリージョンを定義します
- instance_type 起動しようとしているインスタンスのタイプを定義します。私たちの場合、t2.microを使用しています
- これ 起動しようとしているインスタンスのAMIを定義します
Pythonのインスタンスとは何ですか
- キーペア インスタンスを起動するために使用するキーペアを定義します
ec2: これは、EC2インスタンスを開始または終了するために使用されるAnsibleによって提供されるモジュールです。
このモジュールには、開始しようとしているEC2インスタンスの他の機能を指定するために使用する特定のパラメーターがあります。
- まず、パラメーターを使用してAWSアクセスキーIDとシークレットキーについて説明します。 aws_access_key そして aws-secret_key 。
- key_name: ここで使用されているキーペアを定義する変数を渡します
- グループ: セキュリティグループの名前を記載します。これは、私たちが提起しようとしているEC2インスタンスのセキュリティルールを定義します
- instance_type: ここで使用しているインスタンスのタイプを定義する変数を渡します
- 画像: 開始しようとしている画像のAMIを定義する変数を渡します
- 待つ: これには、trueまたはfalseのブール値があります。 trueの場合、インスタンスが目的の状態に達するのを待ってから戻ります
- 領域: EC2インスタンスを作成する必要があるリージョンを定義する変数を渡します。
- カウント: このパラメーターは、作成する必要のあるインスタンスの数を指定します。この場合、1つだけ言及しましたが、これは要件によって異なります。
- vpc_subnet_id: インスタンスを作成するサブネットIDを渡します
- assign_public_ip: このパラメーターにはブール値があります。この場合のようにtrueの場合、VPC内でプロビジョニングされるときにパブリックIPがインスタンスに割り当てられます。
ステップ5:
プレイブックのすべての行を理解したので、先に進んでそれを実行しましょう。次のコマンドを使用します。
$ ansible-playbook /etc/ansible/launch.yml
プレイブックを実行すると、インスタンスが作成されているのがわかります。
そして多田! EC2インスタンスのプロビジョニングを正常に自動化しました。同じ方法で、EC2インスタンスを停止するためのプレイブックを作成することもできます。
これで、Ansible ForAWSブログは終了です。この記事が役に立った場合は、 ' Edurekaによって提供されます。 IT業界を効率化したすべてのツールを網羅しています。