0

私はec2でいくつかのサーバを設定し、配備することができます。これらのサーバーは頻繁に変更されるため、動的な広告枠を使用したいと考えています。可能なec2動的インベントリのトラブル

ERROR! Specified --limit does not match any hosts 

明らかに私のホストことを意味します。私は脚本を実行したとき、私は私のジェンキンスサーバにec2.pyとec2.iniを設定している(これはansibleスクリプトが実行されているところである)が、問題に実行していますが正しく選択されていません。私が走るとき:

./ec2.py --list >> aws_example.json 

すべてがaws_example.jsonのように見えます。

私は名前と環境の2つのタグに基づいてサーバーを選択しようとしています。たとえば、「名前」タグが「api」で、環境タグが「プロダクション」のサーバーがあります。

destination_format_tags = Name,environment 

と、次のようにansible実行します:

ansible-playbook site.yml -i ec2.py -l api 

私もhostname_variableを変更しようとしました:

私はそうのような destination_format_tagsを設定した


hostname_variable = tag_Name.tag_environment 

などのようなコマンドを実行している:

hostname_variable = tag_Name 

などのようなコマンドを実行している:

ansible-playbook site.yml -i ec2.py -l api.production 

さらに、私はまた、hostname_variableと1つのタグだけを使用して試してみました

ansible-playbook site.yml -i ec2.py -l api 

これらの構成は動作しません。私もこれらの設定に関する多くのドキュメントを見つけることができないので、正しく設定する方法がわかりません。誰かが私を正しい方向に向けることができますか?

+0

どのようにプレイブックを実行していますか?引数を含むコマンドラインをポストします。 – helloV

+0

@helloVコマンドを含めるために質問を更新しました。 – cscan

答えて

2

問題は、私のプレイブックでホスト名をどのように表現していたかです。 hostname変数を行うには正しいことだったの設定:

hostname_variable = tag_Name 

そして、ここでは、脚本にそれを表現する方法は次のとおりです。

- name: configure and deploy api servers 
    hosts: tag_Name_api 
    remote_user: ec2-user 
    sudo: true 

    roles: 
    - java 
    - nginx 
    - api 

さらに、それはそうのように呼び出される必要があります

ansible-playbook site.yml -i ec2.py -l tag_Name_api 

.または-から_などの特殊文字を必ず変更してください。

+0

タグに含めることができます。または他の特殊文字を使用しますが、インベントリはすべての特殊文字を下線に変換します。 – smiller171

+0

tag_Name_api.productionはtag_Name_api_production – smiller171

+0

に感謝@ smiller171、私はそれを反映するために私の答えを更新しました。 – cscan

関連する問題