2016-04-05 18 views
0

これは私が最終的に達成しようとしているものです。 Foundation-> Base-> Specialized Base-> Applicationを使用してAWSに階層化されたAMIシステムを構築したいと考えています。条件付きでパッケージをインストールする

私はこれらのAMIにできるだけ多くの構成を焼き付けたいと考えています。これを達成するために私が使用しているツールは、Jenkins、Packer、Ansibleです。

私が抱えている問題は、生産用に設定されたインスタンスに特定のパッケージのみをインストールしたいということです。私は当初、このようなことをするしかないと思った。

{ role: <<package_name>>, when: "{{ lookup('env', 'PROD') }}" } 

しかし、これはホストマシンであり、AWSターゲットではない。私はここで私のプロセスを再評価しようとしていて、誰かが特定のパッケージのインストールを特定のマシンに制限する方法についてより良い提案をしているかどうかを見たいと思っていました。私は生産拠点と非生産拠点を作ることができると知っていますが、それは私が持っている下流のAMIすべてを倍増させ、それを避けようとしています。

+0

頭の中の質問をちょっと反転すると、プロダクションではどのようなパッケージが欲しいですか?それはあなたのパイプラインの有効性を制限しませんか?そして、それを生産の外にインストールしない理由は何ですか? – ydaetskcoR

+0

良い質問です。この特定のユースケースでは、インストールごとに支払う監視エージェントとなります。私は、この監視エージェントを生産システムに焼き付けたいだけです。インスタンスがuser_dataなどで起動したときにこれを行うことができましたが、インスタンスに焼き付けることにしました。 –

答えて

1

documentationによれば、{{ ansible_env.SOME_VARIABLE }}が動作するはずです。

+0

ありがとうございます。だから私はなぜ私のパッカーのスクリプトが変数を正しく設定していないのか把握しなければなりません。それは別の質問の話題です。 :) –