2015-06-17 3 views
1

Я попытался запустить экземпляр контейнера ECS, используя модуль Ansible EC2.Экземпляр контейнера AWS ECS

My playbook выглядит следующим образом.

- name: Launch ECS Container Instance 
    ec2: 
    key_name: "{{ ec2_keyname }}" 
    instance_type: t2.micro 
    image: ami-ca01d8ca 
    wait: yes 
    group: "{{ ec2_security_group }}" 
    region: ap-northeast-1 
    exact_count: 1 
    vpc_subnet_id: "{{ ec2_subnet_id }}" 
    count_tag: 
     docker-registry: 1 
    instance_profile_name: ecsInstanceRole 
    instance_tags: 
     Name: ECS_docker-registry 
     docker-registry: 1 
    assign_public_ip: yes 

В результате были запущены два экземпляра; один из них настроен так, как я предполагаю, но у другого есть следующие теги, которые я не намерен устанавливать.

  • AWS: автомасштабирование: GroupName
  • AWS: CloudFormation: логико-ID
  • AWS: CloudFormation: стек-ID
  • AWS: CloudFormation: стек имя

Кроме того, Я могу найти эти два экземпляра на панели ECS.

enter image description here

Но его видимым только для кластера «по умолчанию», и невидимый для других кластеров.


То, что я действительно хочу сделать это;

  • Launch контейнер экземпляр ECS
  • Зарегистрируйте экземпляр контейнера в кластер

Это лучше, если я могу сделать процесс выше AWS-кли, но сначала я должен понять странное поведение контейнеров и делать вручную.

+0

Проблема также происходит, когда я запускаю экземпляр вручную из EC2 приборной панели, вместо анзибль , – ai0307

ответ

4

Чтобы зарегистрировать экземпляр EC2 контейнера в кластере ECS у вас есть несколько вариантов:

  1. Используйте специальные амазонки-ЭКС-оптимизированной AMI вручную запускать EC2 экземпляр с пользовательскими данными пользователя с awscli или AWS Консоль (подробнее о Launching an Amazon ECS Container Instance):

     
        #!/bin/bash  
        echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 
    
  2. Использование AWS OpsWorks и создать ECS слой кластеров с AWS OpsWorks Supports Managing Amazon ECS Container Instances. В этом случае OpsWoks будет использовать любой экземпляр EC2 внутри слоя для работы с определенным кластером ECS.

Есть несколько ограничений:

  1. Каждая OpsWorks Стек может иметь только один ECS слой кластера
  2. Каждый экземпляр EC2 может назначить только один ECS Cluster
1

Вы можете также добавьте экземпляр EC2 в кластер ECS вручную:

  1. Создайте файл в /etc/ecs/ecs.config с этой линией:

    ECS_CLUSTER={{ name }} 
    

    Где {{имя}} это имя кластера вы хотите.

  2. Установите агент ecs (название пакета «ecs-init») и запустите его.

Экземпляр создаст кластер, если он еще не существует.

 Смежные вопросы

  • Нет связанных вопросов^_^