Я пытаюсь настроить наши политики автоматического масштабирования в ec2 с помощью ansible. Каждая группа автомасштабирования будет иметь несколько политик (масштабирование и масштабирование IE) и может иметь несколько предупреждений о паушках на одну политику (использование ЦП, латентность балансировки нагрузки).Конфигурирование автоматических политик EC2 и аварийных сигналов с невозможным
У меня есть ВАР для политики и сигнализации масштабирования, если одна автомасштаба группа в .yml файла и пытается построить политику с PlayBook:
- ec2_scaling_policy:
state: present
region: "{{ region }}"
adjustment_type: "ChangeInCapacity"
asg_name: "{{ asg_name }}"
scaling_adjustment: "{{ item.scaling_adjustment }}"
min_adjustment_step: 1
cooldown: "{{ item.cooldown }}"
name: "{{item.name }}"
register: "sp_result"
with_items: scaling_policies
- debug: msg="{{sp_result}}"
- debug:
msg="{{item[1]['name']}} == {{item[0]['scaling_policy_name']}}"
with_nested:
- alarm_metrics
- sp_result.results
- ec2_metric_alarm:
state: present
region: "{{ region }}"
name: "{{ item[0].name }}"
metric: "{{ item[0].metric }}"
namespace: "AWS/EC2"
statistic: "{{ item[0].statistics }}"
comparison: "{{ item[0].comparison }}"
threshold: "{{ item[0].threshold }}"
period: "{{ item[0].period }}"
evaluation_periods: "{{ item[0].evaluation_periods }}"
unit: "{{ item[0].unit }}"
description: "{{ item[0].description }}"
dimensions: "{{ item[0].dimensions }}"
alarm_actions: "{{ item[1]['arn'] }}"
when: "{{item[1]['name']}} == {{item[0]['scaling_policy_name']}}"
with_nested:
- alarm_metrics
- sp_result.results
Это ближайший I» я пришел к тому, чтобы заставить его работать, но я все еще получаю ошибку: msg: unsupported parameter for module: when
Кроме того, элемент [0], элемент [1] и итерация по вложенным циклам становятся беспорядочными, есть ли лучший способ сделать это? Если нет, то как я могу решить ошибку, которую я получаю?
Изменить, чтобы добавить файл VARS:
Пример файла VARS для одной из наших групп:
asg_name: autoscale-group-prod
region: us-east-1
scaling_policies:
- scaling_adjustment: 1
name: policy-high-cpu
cooldown: 300
- scaling_adjustment: -1
name: policy-low-cpu
cooldown: 300
alarm_metrics:
- name: group-high-cpu-alarm
metric: "CPUUtilization"
statistics: Average
comparison: ">="
threshold: "85"
period: 300
evaluation_periods: 2
unit: "Percent"
description: "alerm when CPU utilization is >= 85% for 10 minutes."
dimensions: {"AutoScalingGroupName": 'autoscale-chameleon-prod'}
scaling_policy_name: policy-high-cpu
- name: group-healthy-host-alarm
metric: "HealthyHostCount"
statistics: Average
comparison: "<"
threshold: "1"
period: 300
evaluation_periods: 3
unit: "Count"
description: "alarm when there are no healthy instances behind the elb"
dimensions: {"ElasticLoadBalancerName": "GroupELB"}
scaling_policy_name: policy-high-cpu
- name: group-low-cpu-alarm
metric: "CPUUtilization"
statistics: Average
comparison: "<"
threshold: "50"
period: 300
evaluation_periods: 2
unit: "Percent"
description: "alerm when CPU utilization is < 50% for 10 minutes."
dimensions: {"AutoScalingGroupName": 'autoscale-chameleon-prod'}
scaling_policy_name: policy-low-cpu
К сожалению, ничто не может быть сделано для этого .. я неправильно понял ваш 'with_nested' как' with_together' и были некоторые надежды .. Для вложенных циклов вы должны страдать 'пунктом [0] и' пунктом [1 ] 'AFAIK. – Kashyap