Nota
Este complemento es parte del colección community.aws (versión 1.3.0).
Para instalarlo use: ansible-galaxy collection install community.aws
.
Para usarlo en un libro de jugadas, especifique: community.aws.ec2_asg
.
Nuevo en la versión 1.0.0: de community.aws
- Sinopsis
- Requisitos
- Parámetros
- Notas
- Ejemplos de
- Valores devueltos
Sinopsis
- Puede crear o eliminar grupos de AWS AutoScaling.
- Puede usarse con el community.aws.ec2_lc módulo para gestionar las configuraciones de lanzamiento.
Requisitos
Los siguientes requisitos son necesarios en el host que ejecuta este módulo.
- boto
- boto3
- botocore
- pitón> = 2.6
Parámetros
Parámetro | Opciones / Valores predeterminados | Comentarios | |
---|---|---|---|
zonas_disponibilidadlista / elementos = cadena | Lista de nombres de zonas de disponibilidad en las que crear el grupo. Por defecto, todas las zonas de disponibilidad en la región si vpc_zone_identifier no está configurado. | ||
aws_access_keycuerda | Clave de acceso de AWS. Si no se establece, se utiliza el valor de la variable de entorno AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY o EC2_ACCESS_KEY. perfil se establece este parámetro se ignora. aws_access_key y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: ec2_access_key, access_key |
||
aws_ca_bundlesendero | La ubicación de un paquete de CA para usar al validar certificados SSL. Solo se usa para módulos basados en boto3. Nota: El paquete de CA se lee en el lado del ‘módulo’ y es posible que deba copiarse explícitamente del controlador si no se ejecuta localmente. | ||
aws_configdiccionario | Un diccionario para modificar la configuración de botocore. Los parámetros se pueden encontrar en https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.ConfigSolo se utiliza la clave ‘user_agent’ para los módulos boto. Ver http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto para más configuración de boto. | ||
aws_secret_keycuerda | Clave secreta de AWS. Si no se establece, se utiliza el valor de la variable de entorno AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY o EC2_SECRET_KEY. perfil se establece este parámetro se ignora. aws_secret_key y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: ec2_secret_key, secret_key |
||
debug_botocore_endpoint_logsbooleano |
|
Utilice un registrador botocore.endpoint para analizar las llamadas API “resource: action” únicas (en lugar de totales) realizadas durante una tarea, generando el conjunto en la clave resource_actions en los resultados de la tarea. Utilice la devolución de llamada aws_resource_action para generar la lista total realizada durante un libro de jugadas. También se puede utilizar la variable de entorno ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
default_cooldownentero | Defecto: 300 |
El número de segundos después de que se completa una actividad de escalado antes de que pueda comenzar otra. | |
capacidad_deseadaentero | Número deseado de instancias en el grupo, si no se especifica, se utilizará el valor del grupo actual. | ||
ec2_urlcuerda | Url que se utilizará para conectarse a EC2 o su nube Eucalyptus (de forma predeterminada, el módulo utilizará puntos finales EC2). Ignorado para módulos donde se requiere región. Debe especificarse para todos los demás módulos si no se utiliza la región. Si no se establece, se utiliza el valor de la variable de entorno EC2_URL, si existe. alias: aws_endpoint_url, endpoint_url |
||
health_check_periodentero | Defecto: 300 |
Tiempo en segundos después de que una nueva instancia EC2 entra en servicio y Auto Scaling comienza a verificar su estado. | |
health_check_typecuerda |
|
El servicio del que desea conocer el estado de salud, Amazon EC2 o Elastic Load Balancer. | |
launch_config_namecuerda | Nombre de la configuración de lanzamiento que se utilizará para el grupo. Consulte el módulo community.aws.ec2_lc) para administrarlos. Si no se especifica, se utilizará el valor del grupo actual. Uno de launch_config_name o launch_template debe ser provisto. | ||
launch_templatediccionario | Diccionario que describe la plantilla de lanzamiento a utilizar | ||
launch_template_idcuerda | El ID de la plantilla de lanzamiento. Solo uno de launch_template_name o launch_template_id es requerido. | ||
launch_template_namecuerda | El nombre de la plantilla de lanzamiento. Solo uno de launch_template_name o launch_template_id es requerido. | ||
versióncuerda | El número de versión de la plantilla de lanzamiento que se utilizará. De forma predeterminada, es la última versión si no se proporciona. | ||
lc_checkbooleano |
|
Verifique para asegurarse de que las instancias que se reemplacen con reemplazar_instancias no tengo ya la corriente launch_config. | |
balanceadores_de_cargalista / elementos = cadena | Lista de nombres de ELB que se utilizarán para el grupo. Úselo para balanceadores de carga clásicos. | ||
lt_checkbooleano |
|
Verifique para asegurarse de que las instancias que se reemplacen con reemplazar_instancias no tengo ya la corriente launch_template o yo (launch_templateversión. | |
max_instance_lifetimeentero | La cantidad máxima de tiempo, en segundos, que una instancia puede estar en servicio. La vida útil máxima de la instancia debe ser igual a 0, entre 604800 y 31536000 segundos (inclusive), o no especificado. El valor de 0 elimina la restricción de vida útil. | ||
tamaño máximoentero | Número máximo de instancias en el grupo, si no se especifica, se utilizará el valor del grupo actual. | ||
metrics_collectionbooleano |
|
Habilite la recopilación de métricas de ASG. | |
metrics_granularitycuerda | Defecto: “1 minuto” |
Cuando metrics_collection = true esto determinará la granularidad de las métricas recopiladas por CloudWatch. | |
lista_metricslista / elementos = cadena | Defecto: [“GroupMinSize”, “GroupMaxSize”, “GroupDesiredCapacity”, “GroupInServiceInstances”, “GroupPendingInstances”, “GroupStandbyInstances”, “GroupTerminatingInstances”, “GroupTotalInstances”] |
Lista de métricas de ajuste de escala automático para recopilar cuando metrics_collection = true. | |
min_sizeentero | Número mínimo de instancias en el grupo, si no se especifica, se utilizará el valor del grupo actual. | ||
política_instancias_mezcladasdiccionario | Una política de instancia mixta para usar con el ASG. Solo se usa cuando el ASG está configurado para usar una plantilla de lanzamiento (launch_template).Ver también https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html | ||
tipos_instancialista / elementos = cadena | Una lista de tipos_instancia. | ||
nombrecuerda / requerido | Nombre único para el grupo que se creará o eliminará. | ||
tema_de_notificacióncuerda | Un ARN de tema de SNS al que enviar notificaciones de escalado automático. | ||
tipos_de_notificaciónlista / elementos = cadena | Defecto: [“autoscaling:EC2_INSTANCE_LAUNCH”, “autoscaling:EC2_INSTANCE_LAUNCH_ERROR”, “autoscaling:EC2_INSTANCE_TERMINATE”, “autoscaling:EC2_INSTANCE_TERMINATE_ERROR”] |
Una lista de eventos de escalado automático para activar notificaciones. | |
Location_groupcuerda | Ubicación física de su grupo de ubicación de clúster creado en Amazon EC2. | ||
perfilcuerda | Utiliza un perfil de boto. Solo funciona con boto> = 2.24.0. perfil anulará aws_access_key, aws_secret_key y token de seguridad y apoyo para pasarlos al mismo tiempo que perfil ha quedado obsoleto.aws_access_key, aws_secret_key y token de seguridad se hará mutuamente excluyente con perfil después de 2022-06-01. alias: aws_profile |
||
regióncuerda | La región de AWS que se utilizará. Si no se especifica, se utiliza el valor de la variable de entorno AWS_REGION o EC2_REGION, si existe. Ver http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region alias: aws_region, ec2_region |
||
reemplazar_todas_instanciasbooleano |
|
De manera progresiva, reemplace todas las instancias que usaban la configuración de lanzamiento anterior por una de la nueva configuración de lanzamiento. Aumenta el tamaño de ASG en reemplazar_size_batch, espera a que las nuevas instancias estén en funcionamiento. Después de eso, finaliza un lote de instancias antiguas, espera los reemplazos y se repite hasta que se reemplazan todas las instancias antiguas. Una vez hecho esto, el tamaño de ASG se reduce de nuevo al tamaño esperado. | |
reemplazar_size_batchentero | Defecto: 1 |
Número de instancias que le gustaría reemplazar a la vez. Usado con reemplazar_todas_instancias. | |
reemplazar_instanciaslista / elementos = cadena | Lista de id_instancia perteneciente al AutoScalingGroup nombrado que le gustaría para terminar y ser reemplazado por instancias que coincidan con la configuración de lanzamiento actual. | ||
token de seguridadcuerda | Token de seguridad de AWS STS. Si no se establece, se utiliza el valor de la variable de entorno AWS_SECURITY_TOKEN o EC2_SECURITY_TOKEN. perfil se establece este parámetro se ignora. token de seguridad y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: aws_security_token, access_token |
||
estadocuerda |
|
Registre o anule el registro de la instancia. | |
suspender_procesoslista / elementos = cadena | Defecto: [] |
Una lista de procesos de escalado para suspender. Los valores válidos incluyen:Launch , Terminate , HealthCheck , ReplaceUnhealthy , AZRebalance , AlarmNotification , ScheduledActions , AddToLoadBalancer La documentación completa de los valores válidos se puede encontrar en la documentación de AWS:https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html |
|
etiquetaslista / elementos = diccionario | Una lista de etiquetas para agregar al grupo de escala automática. La clave opcional es propagate_at_launch, cuyo valor predeterminado es verdadero. propagate_at_launch si es cierto, las etiquetas se propagarán a las instancias creadas. | ||
target_group_arnslista / elementos = cadena | Lista de ARN del grupo objetivo que se utilizarán para el grupo. Se utiliza para equilibradores de carga de aplicaciones. | ||
termination_policieslista / elementos = cadena | Defecto: “Defecto” |
Una lista ordenada de criterios que se utilizan para seleccionar instancias que se eliminarán del grupo de Auto Scaling al reducir la capacidad. termination_policies = Predeterminado cuando la modificación de un AutoScalingGroup existente resultará en la retención de la política existente en lugar de cambiar a Default Los valores válidos incluyen: Default , OldestInstance , NewestInstance , OldestLaunchConfiguration , ClosestToNextInstanceHour La documentación completa de los valores válidos se puede encontrar en la documentación de AWS:https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#custom-termination-policy |
|
validate_certsbooleano |
|
Cuando se establece en “no”, los certificados SSL no se validarán para las versiones de boto> = 2.6.0. | |
vpc_zone_identifierlista / elementos = cadena | Lista de subredes de VPC para usar | ||
esperar_por_instanciasbooleano |
|
Espere a que las instancias de ASG estén listas antes de salir. Si las instancias están detrás de un ELB, esperará hasta que el ELB determine que todas las instancias tienen un lifecycle_state de “InService” y un health_status de “Healthy”. | |
wait_timeoutentero | Defecto: 300 |
Cuánto tiempo esperar para que las instancias sean viables cuando se reemplacen. Si experimenta el error “Se esperó demasiado para que las instancias de ELB estén en buen estado”, intente aumentar este valor. |
Notas
Nota
- Si los parámetros no se establecen dentro del módulo, las siguientes variables de entorno se pueden usar en orden decreciente de precedencia
AWS_URL
oEC2_URL
,AWS_PROFILE
oAWS_DEFAULT_PROFILE
,AWS_ACCESS_KEY_ID
oAWS_ACCESS_KEY
oEC2_ACCESS_KEY
,AWS_SECRET_ACCESS_KEY
oAWS_SECRET_KEY
oEC2_SECRET_KEY
,AWS_SECURITY_TOKEN
oEC2_SECURITY_TOKEN
,AWS_REGION
oEC2_REGION
,AWS_CA_BUNDLE
- Ansible usa el archivo de configuración boto (típicamente ~ / .boto) si no se proporcionan credenciales. Ver https://boto.readthedocs.io/en/latest/boto_config_tut.html
AWS_REGION
oEC2_REGION
se puede usar normalmente para especificar la región de AWS, cuando sea necesario, pero esto también se puede configurar en el archivo de configuración boto
Ejemplos de
# Basic configuration with Launch Configuration-community.aws.ec2_asg:name: special load_balancers:['lb1','lb2']availability_zones:['eu-west-1a','eu-west-1b']launch_config_name:'lc-1'min_size:1max_size:10desired_capacity:5vpc_zone_identifier:['subnet-abcd1234','subnet-1a2b3c4d']tags:-environment: production propagate_at_launch: no # Rolling ASG Updates# Below is an example of how to assign a new launch config to an ASG and terminate old instances.## All instances in "myasg" that do not have the launch configuration named "my_new_lc" will be terminated in# a rolling fashion with instances using the current launch configuration, "my_new_lc".## This could also be considered a rolling deploy of a pre-baked AMI.## If this is a newly created group, the instances will not be replaced since all instances# will have the current launch configuration.-name: create launch config community.aws.ec2_lc:name: my_new_lc image_id: ami-lkajsf key_name: mykey region: us-east-1security_groups: sg-23423instance_type: m1.small assign_public_ip: yes -community.aws.ec2_asg:name: myasg launch_config_name: my_new_lc health_check_period:60health_check_type: ELB replace_all_instances: yes min_size:5max_size:5desired_capacity:5region: us-east-1# To only replace a couple of instances instead of all of them, supply a list# to "replace_instances":-community.aws.ec2_asg:name: myasg launch_config_name: my_new_lc health_check_period:60health_check_type: ELB replace_instances:- i-b345231 - i-24c2931 min_size:5max_size:5desired_capacity:5region: us-east-1# Basic Configuration with Launch Template-community.aws.ec2_asg:name: special load_balancers:['lb1','lb2']availability_zones:['eu-west-1a','eu-west-1b']launch_template:version:'1'launch_template_name:'lt-example'launch_template_id:'lt-123456'min_size:1max_size:10desired_capacity:5vpc_zone_identifier:['subnet-abcd1234','subnet-1a2b3c4d']tags:-environment: production propagate_at_launch: no # Basic Configuration with Launch Template using mixed instance policy-community.aws.ec2_asg:name: special load_balancers:['lb1','lb2']availability_zones:['eu-west-1a','eu-west-1b']launch_template:version:'1'launch_template_name:'lt-example'launch_template_id:'lt-123456'mixed_instances_policy:instance_types:- t3a.large - t3.large - t2.large min_size:1max_size:10desired_capacity:5vpc_zone_identifier:['subnet-abcd1234','subnet-1a2b3c4d']tags:-environment: production propagate_at_launch: no
Valores devueltos
Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:
Llave | Devuelto | Descripción |
---|---|---|
auto_scaling_group_arncuerda | éxito | El ARN único del grupo de ajuste de escala automático Muestra:arn: aws: autoescaling: us-east-1: 123456789012: autoScalingGroup: 6a09ad6d-eeee-1234-b987-ee123ced01ad: autoScalingGroupName / myasg |
auto_scaling_group_namecuerda | éxito | El nombre único del grupo de escalado automático Muestra:myasg |
zonas_disponibilidadlista / elementos = cadena | éxito | Las zonas de disponibilidad para el grupo de escalado automático Muestra:[‘us-east-1d’] |
created_timecuerda | éxito | Marca de tiempo de la hora de creación del grupo de escalado automático Muestra:2017-11-08T14: 41: 48.272000 + 00: 00 |
default_cooldownentero | éxito | El tiempo de recuperación predeterminado en segundos. Muestra:300 |
capacidad_deseadaentero | éxito | La cantidad de instancias EC2 que deberían ejecutarse en este grupo. Muestra:3 |
healthcheck_periodentero | éxito | Tiempo en segundos después de que una nueva instancia EC2 entra en servicio y Auto Scaling comienza a verificar su estado. Muestra:30 |
healthcheck_typecuerda | éxito | El servicio del que desea conocer el estado de salud, uno de “EC2” o “ELB”. Muestra:ELB |
instancias_saludablesentero | éxito | Número de instancias en buen estado Muestra:5 |
in_service_instancesentero | éxito | Número de instancias en servicio Muestra:3 |
instance_factsdiccionario | éxito | Diccionario de instancias EC2 y su estado en relación con el ASG. Muestra:‘i-0123456789012’: ‘health_status’: ‘Healthy’, ‘launch_config_name’: ‘public-webapp-production-1’, ‘lifecycle_state’: ‘InService’ |
instanciaslista / elementos = cadena | éxito | lista de ID de instancia en el ASG Muestra:[‘i-0123456789012’] |
launch_config_namecuerda | éxito | Nombre de la configuración de lanzamiento asociada con el ASG. Igual que launch_configuration_name, proporcionado para compatibilidad con el módulo ec2_asg. Muestra:public-webapp-production-1 |
balanceadores_de_cargalista / elementos = cadena | éxito | Lista de nombres de balanceadores de carga adjuntos al ASG. Muestra:[‘elb-webapp-prod’] |
max_instance_lifetimeentero | éxito | La cantidad máxima de tiempo, en segundos, que una instancia puede estar en servicio. Muestra:604800 |
tamaño máximoentero | éxito | Tamaño máximo del grupo Muestra:3 |
metrics_collectionlista / elementos = cadena | éxito | Lista de métricas de AutosSalingGroup habilitadas Muestra:[‘Granularity’: ‘1Minute’, ‘Metric’: ‘GroupInServiceInstances’] |
min_sizeentero | éxito | Tamaño mínimo del grupo Muestra:1 |
política_instancia_mezcladalista / elementos = cadena | éxito | Devuelve la lista de tipos de instancias si se establece una política de instancias mixtas. Muestra:[‘t3.micro’, ‘t3a.micro’] |
pendientes_instanciasentero | éxito | Número de instancias en estado pendiente Muestra:1 |
etiquetaslista / elementos = cadena | éxito | Lista de etiquetas para el ASG y si cada etiqueta se propaga o no a las instancias en el lanzamiento. Muestra:[‘key’: ‘Name’, ‘propagate_at_launch’: ‘true’, ‘resource_id’: ‘public-webapp-production-1’, ‘resource_type’: ‘auto-scaling-group’, ‘value’: ‘public-webapp-production-1’, ‘key’: ‘env’, ‘propagate_at_launch’: ‘true’, ‘resource_id’: ‘public-webapp-production-1’, ‘resource_type’: ‘auto-scaling-group’, ‘value’: ‘production’] |
target_group_arnslista / elementos = cadena | éxito | Lista de ARN de los grupos objetivo que el ASG llena Muestra:[‘arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/target-group-host-hello/1a2b3c4d5e6f1a2b’, ‘arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/target-group-path-world/abcd1234abcd1234’] |
target_group_nameslista / elementos = cadena | éxito | Lista de nombres de los grupos objetivo que completa el ASG Muestra:[‘target-group-host-hello’, ‘target-group-path-world’] |
termination_policieslista / elementos = cadena | éxito | Una lista de políticas de terminación del grupo. Muestra:[‘Default’] |
insalubres_instanciasentero | éxito | Número de instancias en un estado insalubre |
instancias_ viablesentero | éxito | Número de instancias en un estado viable Muestra:1 |
vpc_zone_identifiercuerda | éxito | ID de zona / ID de subred de VPC para el grupo de escalado automático Muestra:subnet-a31ef45f |
Autores
- Gareth Rushgrove (@garethr)
Reseñas y valoraciones del artículo
Tienes la posibilidad mostrar este escrito si te fue de ayuda.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)