私は立ち往生しています。ウェブからグーグルを奪い、答えを見つけることができませんでした。ダイナミックインベントリを使用してステージング/プロダクションを区別する方法は?
私は数年間Anabledを使用してきましたが、常に静的なインベントリを使用しています。ステージングとプロダクションのような異なる環境を区別するために、私はそれぞれ異なる静的インベントリファイルstaging
とproduction
を使用しました。私は準備ステージングサーバに必要な場合は、私がやるだろう:
ansible-playbook site.yml -i staging
私は生産のために同じことをやってみたかったときに、私がしたい:
ansible-playbook site.yml -i production
を両方ステージングと生産が異なると、変数を必要とします値なので、私はgroup_vars/staging
とgroup_vars/production
です。すべての良いとベストプラクティスに従って。
ここで、AWSでEC2インスタンスをプロビジョニングする必要があります。私はthis AWS guideを使用しています。私は2つの演劇とのプレイブックを持っています。最初はlocalhost
に対して実行され、AWSに必要なEC2インスタンスが作成/検索され、グループにはadd_host
が設定されます。第2のプレイは、そのグループを使用して、第1のプレイで発見されたEC2インスタンスに対して実行される。すべてそのガイドに従ってください。
1つのこと以外はすべて素晴らしい作品です。どの環境をプロビジョニングするかを指定する方法がわからないので、必要な変数がgroup_vars/(staging|production)
からロードされていません。基本的には、私が欲しいのは、-i (staging|production)
と似ています。これらの年を静的な在庫とともに使っていましたが、-i
を使用しているのは、在庫が動的なので意味をなさないと思われます。私はそれを実行するとansible-playbook
に渡す引数に基づいてgroup_vars/staging
またはgroup_vars/production
から変数をロードできるようにしたい。
どうすればよいですか?ベストプラクティスは何ですか?
別のプレイブックで何かできますか? production.ymlとstaging.ymlのようなもの。これらのプレイブックにはsite.ymlが含まれていますが、env固有のヴァールも含まれます。 –