2016-06-01 9 views
1

AnabilitiesからEC2インスタンスを作成する場合、セキュリティグループをどのように指定しますか(これはアカウントのデフォルトではないAmazon VPC環境用です)。私の場合、私は自分のウェブサーバEC2インスタンスにセキュリティグループ(現在存在する)を割り当てようとしていますが、その前に置かれているELBからのトラフィックだけにトラフィックを制限しています。私は、次しようとした場合:EC2からAnonymousへの割り当て

{{security_group_nameが}} AWSコンソールで見つかった「グループ名」です
- name: Create webserver instance 
    ec2: 
    key_name: "{{ project_name }}-{{ env }}-key" 
    image: "{{ image }}" 
    instance_type: "{{ instance_type }}" 
    instance_tags: '{"Name":"{{ project_name }}-{{ env }}-{{ webserver_name }}","Owner":"{{ project_name }}", "Type":"{{ webserver_name }}","Environment":"{{ env }}"}' 
    region: "{{ aws_region }}" 
    group: "{{ security_group_name }}" 
    wait: true 
    register: ec2 

を、私は次のエラーが表示されます。パラメータのgroupIdのための「値()が無効です。 (例えば、SG-XXXXXXなど)AWSコンソールに見られるグループID '私が受け取る:値が」

{{security_group_idが}}である
- name: Create webserver instance 
    ec2: 
    key_name: "{{ project_name }}-{{ env }}-key" 
    image: "{{ image }}" 
    instance_type: "{{ instance_type }}" 
    instance_tags: '{"Name":"{{ project_name }}-{{ env }}-{{ webserver_name }}","Owner":"{{ project_name }}", "Type":"{{ webserver_name }}","Environment":"{{ env }}"}' 
    region: "{{ aws_region }}" 
    group_id: "{{ security_group_id }}" 
    wait: true 
    register: ec2 

私は次のことをしようと

' 空にすることはできません同じエラー。 Anipalのドキュメントでは、 'group'と 'group_id'はセキュリティグループ(http://docs.ansible.com/ansible/ec2_module.html)の仕様であると述べています。

私が考えている唯一のことは、AWSはセキュリティグループを作成しているため、それを配置するVPCを知らないため、またはデフォルトのVPCに配置してセキュリティグループを見つけることができないということですそれは異なるVPCにあるためです。

これは、特定のEC2インスタンス(特定の地域に複数のVPCがある場合)にVPCを指定する方法です。

+0

'region'パラメータと' AWS_REGION'または 'EC2_REGION'環境変数が正しいことを確認してください。 'ec2_group'でグループを作成する場合は、正しい' vpc_id'パラメータを使用していることを確認してください。 –

+0

グループを作成せずにec2インスタンスを作成します。 –

+0

詳細な手順については、このgithubレポを参照できます:https://github.com/arbabnazar/ansible-aws-roles –

答えて

0

I receive the following error: 'Value() for parameter groupId is invalid. The value cannot be empty'

これらの変数は定義されていないようですが、どこでそれらを定義していますか?変数を使用せずに値を直接入力すると機能しますか?

So, maybe a better question is, how to I specify the VPC for a particular EC2 instance (when I have multiple VPCs in a region)?

VPCは、特にgroup/group_idvpc_subnet_id、他の値によって暗示されています。

group_id代わりのgroupを使用しての主な利点の一つは、あなたが間違ったVPCのサブネットを使用する場合は、複数のVPCで同じ名前のセキュリティグループを持っている場合、一方、あなたはgroupを使用して、エラーが発生しますということです正しくないvpc_subnet_idは、間違った場所でマシンを正常に起動させます。

0

あなたのプレイブックにVPC IDを指定する方法はありません。代わりにvpc_subnet_idを指定します。 AWSはサブネットIDに基づいてVPCを把握できます。あなたはサブネットIDを指定していないので、AWSはあなたがEC2 Classicで起動することを前提としています。指定したセキュリティグループがEC2 Classicに見つからないため、not foundまたはinvalidエラーが発生しています。

これを修正するにはどうすればよいですか?インスタンスを起動するサブネットのidを探します。各VPCは、1つ以上のパブリックサブネットまたはプライベートサブネットを持つことができます。 AWSダッシュボードから、VPC Serviceを選択すると、サブネットとVPCが表示されます。あなたが立ち上げたいサブネットを見つけて、そのプレイリストにそのIDを指定してください。

vpc_subnet_id: subnet-29e63245 
関連する問題