7

Ansible のような自動化ツールを実行してクラウド (AWS など) でインフラストラクチャ スタックを構築する場合、自動化ツールを使用してクラウド内の別のリージョン/VPC にスタックを構築するだけで十分ですか? または、自動化する方が理にかなっていますか?ツールとスクリプトをローカルに (自分のデータセンター/マシン)?

どちらも使用されているようですが、ベストプラクティスの基準があるかどうか疑問に思っていました.

4

2 に答える 2

4

すべてをローカルで実行します。

プラス

  • ローカルの Vagrant ボックスですべての Playbook (およびソフトウェア) をテストするため、とにかくローカルで必要です。
  • 追加のマシンは必要ありません。また、Ansible を使用してそれらを構成する必要があるため、少なくとも誰かが Ansible をインストールする必要があります。そうしないと、ニワトリと卵の問題が発生します。
  • ネットワーク ホップが 1 つ少ないため、おそらくわずかに高速です。

マイナス

  • Linux と Mac でのみ動作し、Windows では動作しないローカルの Ansible インストールがすべてのユーザーに必要です (ターゲットとしてのみ使用できます)。

その他の考慮事項

  • Windows ユーザーの場合、Linux / Mac ユーザーは Ansible (すべてセットアップ済み) で VM を作成し、それをベース ボックスとしてエクスポートします。次に、Windows ユーザーはそのベース ボックスを Vagrant にインポートし、起動するだけで済みます。すべてが既にインストールされています。これには Ansible が含まれているため、VM からすべてを実行できます。
  • 最初は、NAT インスタンス (プライベート VPC サブネット用) に Ansible を配置する予定でした。ただし、VPC、セキュリティ グループ、NAT インスタンスをセットアップするための 1 つの構成と、NAT インスタンスで実行して残りのインフラストラクチャをセットアップするための別の構成が必要になります。しかし、それには何のメリットも見られなかったので、現在はすべてをローカルに持っています。

PS: 決定的な答えがあるかどうかはわかりませんが、これが私たちの主張です。

于 2015-09-20T23:35:19.203 に答える
4

xeraa良い答えとは対照的に、AWS 内から可能な限り実行します。

ここから得られる本当の利点は、 Ansibleを実行する集中型のJenkinsサーバーを使用できることです(この場合、Ansible を使用した実際の AWS プロビジョニングのTerraformは、EC2 インスタンスを構成し、管理タスク用のアドホック プレイブックを実行するために使用されます)。

その後、資格情報やセキュリティ グループ/NACL を使用して、これらの Jenkins サーバーへのアクセスを制御できます。

このようにすることは、好きなものを構築したり、好きなものを破壊したりできる何らかの形式の資格情報を持つ人々の数を制御できることを意味します。

理想的には、IAM EC2 インスタンス ロールを介して Jenkins サーバーに認証情報を提供するだけで済みますが、まだ完全には達成されていません。

このことの 1 つの真の利点は、ほぼ独占的に Windows を使用しているフロント ライン/セカンド ラインのサポート担当者が、夜中に物事を管理するための優れた Web GUI にアクセスし、実行するために特別にアクセスできる Jenkins ジョブを実行できることです。サーバー/サービスの再起動や、VPC の一部の再構築などを行います。

開発者が自分のマシンからアクセスできる別の「dev」アカウントがあり、Ansible (および Terraform) コード ベースを開発する際に、そのコード ベースがテスト環境および実稼働環境で使用される前に、ここで構築します。

于 2015-09-23T19:03:05.860 に答える