Ansible: как связать ec2_asg с ecs_cluster - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь автоматизировать развертывание проекта в ecs_cluster в ansible.

Я создал допустимые определения задач и службы для указанного кластера, но я пытаюсь подключить ec2_asg к этому. Таким образом, не позволяя кластеру создавать и управлять новыми задачами.

    - hosts: localhost
      vars:
        aws_access_key: #key
        aws_secret_key: #key
        region: #region

      tasks:

      - name: Create task definition
        ecs_taskdefinition:
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"
          family: test
          launch_type: EC2
          network_mode: host
          containers:
          - name: test
            essential: true
            image: "nginx"
            portMappings:
            - containerPort: 80
              hostPort:      80
            cpu: 2048
            memory: 3884
          state: present

      - name: Create cluster
        ecs_cluster:
          name: test
          state: present
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"

      - name: Create service
        ecs_service:
          state: present
          name: test
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"
          cluster: test
          task_definition: test
          desired_count: 1
          deployment_configuration:
            minimum_healthy_percent: 75
            maximum_percent: 150
          #placement_constraints:
          #  - type: memberOf
          #    expression: 'attribute:flavor==test'
          #placement_strategy:
          #  - type: binpack
          #    field: memory



      - name: Create launch config
        ec2_lc:
          image_id: ami-0917237b4e71c5759
          instance_type: t3.medium
          name: test launch config
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"

      - name: Create scaling group
        ec2_asg:
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"
          launch_config_name: test launch config
          name: test scaling group
          state: present
          min_size: 1
          max_size: 1

      - name: Create scaling policy
        ec2_scaling_policy:
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"
          asg_name: test scaling group
          name: test
          state: present
          adjustment_type: "ChangeInCapacity"
          scaling_adjustment: -1
          min_adjustment_step: 1

      - name: Wait for register
        ecs_cluster:
          aws_access_key: "{{aws_access_key}}"
          aws_secret_key: "{{aws_secret_key}}"
          region: "{{region}}"
          name: test
          state: has_instances
          delay: 10
          repeat: 10
        register: task_output

Есть ли что-то очевидное, что я упускаю в документации к Playbook? Или мне нужно каким-то образом повлиять на экземпляры, созданные группой автоматического масштабирования, чтобы вместо этого присоединить их к кластеру?

...