EC2
Resumo
- Cria ou encerra instâncias ec2.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
assign_public_ip | boolean | Escolhas: - false - true | Ao provisionar no vpc, atribua um endereço IP público. |
aws_access_key aliases: ec2_access_key, access_key | string | | Chave de acesso da AWS. Se não for definido, o valor da variável de ambiente AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY ou EC2_ACCESS_KEY é usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções aws_access_key e de perfil ao mesmo tempo se tornou obsoleto e as opções se tornarão mutuamente exclusivas após 01/06/2022. |
aws_ca_bundle | path
| | A localização de um pacote CA para usar ao validar certificados SSL.Usado apenas para módulos baseados em boto3.Observação: o pacote CA é lido no lado do 'módulo' e pode precisar ser copiado explicitamente do controlador se não for executado localmente. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore.Os parâmetros podem ser encontrados em https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config .Apenas a chave 'user_agent' é usada para módulos boto. Consulte http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto para obter mais configurações de boto. |
aws_secret_key aliases: ec2_secret_key, secret_key | string | | Chave secreta da AWS. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY é usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções aws_secret_key e de perfil ao mesmo tempo se tornou obsoleto e as opções se tornarão mutuamente exclusivas após 01/06/2022. |
count | integer | Default: - 1 | Número de instâncias para iniciar. |
count_tag | raw | | Usado com exact_count para determinar quantos nós com base em um critério de tag específico devem estar em execução. Isso pode ser expresso de várias maneiras e é mostrado na seção EXEMPLOS. Por exemplo, pode-se solicitar 25 servidores marcados com class=webserver. A tag especificada já deve existir ou ser passada como a opção instance_tags . |
debug_botocore_endpoint_logs | boolean | Escolhas: - false(default) - true | Use um logger botocore.endpoint para analisar as chamadas API "resource: action" exclusivas (ao invés do total) feitas durante uma tarefa, gerando o conjunto para a chave resource_actions nos resultados da tarefa. Use o retorno de chamada aws_resource_action para gerar a lista total feita durante um manual. A variável de ambiente ATMOSPHERE_DEBUG_BOTOCORE_LOGS também pode ser usada. |
ebs_optimized | boolean | Escolhas: - false(default) - true | Se a instância está usando volumes EBS otimizados, consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html . |
ec2_url aliases: aws_endpoint_url, endpoint_url | string | | Url a ser usado para se conectar ao EC2 ou à nuvem Eucalyptus (por padrão, o módulo usará endpoints EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
exact_count | integer | | Um valor inteiro que indica quantas instâncias que correspondem ao parâmetro 'count_tag' devem estar em execução. As instâncias são criadas ou encerradas com base neste valor. |
group aliases: groups | list / elements=string | | Grupo de segurança (ou lista de grupos) a ser usado com a instância. |
group_id | list / elements=string | | ID do grupo de segurança (ou lista de ids) para usar com a instância. |
id | string | | Identificador para esta instância ou conjunto de instâncias, para que o módulo seja idempotente em relação às instâncias EC2.Este identificador é válido por pelo menos 24 horas após o encerramento da instância e não deve ser reutilizado para outra chamada posteriormente.Para obter detalhes, consulte a descrição do token do cliente em https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html . |
image | string | | ID ami a ser usado para a instância.Obrigatório quando estado = presente . |
instance_ids aliases: instance_id | list / elements=string | | lista de ids de instância, usados atualmente para os estados: ausente, em execução, interrompido |
instance_initiated_shutdown_behavior | string | Escolhas: - stop(default) - terminate | Defina se a AWS interromperá ou encerrará uma instância no desligamento. Este parâmetro é ignorado ao usar o armazenamento de instância. imagens (que requerem encerramento no desligamento). |
instance_profile_name | string | | Nome do perfil da instância IAM (ou seja, o que o console EC2 se refere como uma "Função IAM") a ser usado. A biblioteca Boto deve ser 2.5.0+. |
instance_tags | dictionary | | Um hash / dicionário de tags para adicionar à nova instância ou para instâncias para iniciar / parar por tag. Por exemplo {"key":"value"}ou {"key":"value","key2":"value2"}. |
instance_type aliases: type | string | | Tipo de instância a ser usado para a instância, consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html .Obrigatório ao criar uma nova instância. |
kernel | string | | Kernel eki a ser usado para a instância. |
key_name aliases: keypair | string | | Par de chaves a ser usado na instância.A chave SSH já deve existir na AWS para usar este argumento.As chaves podem ser criadas / excluídas usando o módulo amazon.aws.ec2_key . |
monitoring | boolean | Escolhas: - false(default) - true | Habilite o monitoramento detalhado (CloudWatch) para a instância. |
network_interfaces aliases: network_interface | list / elements=string | | Uma lista de interfaces de rede existentes para anexar à instância na inicialização. Ao especificar interfaces de rede existentes, nenhum dos parâmetros assign_public_ip , private_ip , vpc_subnet_id , group ou group_id podem ser usados. (Esses parâmetros são para criar uma nova interface de rede no lançamento.) |
placement_group | string | | Grupo de posicionamento para a instância ao usar EC2 Clustered Compute. |
private_ip | string | | O endereço IP privado para atribuir a instância (da sub-rede vpc). |
profile aliases: aws_profile | string | | Usa um perfil de boto. Funciona apenas com boto> = 2.24.0.O uso de profile sobrescreverá aws_access_key , aws_secret_key e security_token e o suporte para passá-los ao mesmo tempo que o profile foi descontinuado.aws_access_key , aws_secret_key e security_token serão mutuamente exclusivos com o perfil após 2022-06-01. |
ramdisk | string | | Ramdisk eri a ser usado para a instância. |
region aliases: aws_region, ec2_region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Consulte http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region |
security_token aliases: aws_security_token, access_token | string | | Token de segurança AWS STS. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN será usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções security_token e profile ao mesmo tempo se tornou obsoleto e as opções serão mutuamente exclusivas após 2022-06-01. |
source_dest_check | boolean | Escolhas: - false - true | Habilite ou desabilite as verificações de origem / destino (para instâncias NAT e roteadores virtuais). Ao criar inicialmente uma instância, o padrão da API do EC2 é True. |
spot_launch_group | string | | Grupo de lançamento para solicitações de spot, consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-spot-instances-work.html#spot-launch-group . |
spot_price | string | | Preço à vista máximo para licitar. Se não for definido, uma instância on-demand regular será solicitada.Uma solicitação de spot é feita com esse lance máximo. Quando é preenchido, a instância é iniciada. |
spot_type | string | Escolhas: - one-time(default) - persistent | O tipo de solicitação de spot.Após ser interrompido, uma persistentinstância spot será iniciada assim que houver capacidade para atender a solicitação novamente. |
spot_wait_timeout | integer | Default: - 600 | Quanto tempo esperar até que a solicitação de instância spot seja atendida. Afeta 'Solicitação válida até' para definir o tempo de vida da solicitação de spot. |
state | string | Escolhas: - present(default) - absent - restarted - running - stopped | Crie, encerre, inicie, pare ou reinicie instâncias.Quando state = ausente , instance_ids é obrigatório.Quando state = running , state = interrompido ou state = reiniciado , tanto instance_ids quanto instance_tags são necessários. |
tenancy | string | Escolhas: - default(default) - dedicated | Uma instância com locação dedicatedé executada em hardware de locatário único e só pode ser iniciada em um VPC.Observe que para usar a locação dedicada, você DEVE especificar um vpc_subnet_id também.A locação dedicada não está disponível para instâncias "micro" do EC2. |
termination_protection | boolean | Escolhas: - false - true | Habilite ou desabilite a proteção de rescisão.O padrão é false. |
user_data | string | | Blob opaco de dados que é disponibilizado para a instância EC2. |
validate_certs | boolean | Escolhas: - false - true(default) | Quando definido como "não", os certificados SSL não serão validados para versões boto> = 2.6.0. |
volumes | list / elements=dictionary | | Uma lista de hash / dicionários de volumes para adicionar à nova instância. |
vpc_subnet_id | string | | O ID da sub-rede na qual iniciar a instância (VPC). |
wait | boolean | Escolhas: - false(default) - true | Aguarde até que a instância alcance o estado desejado antes de retornar.Não espera por SSH, consulte o exemplo 'wait_for_connection' para obter detalhes. |
wait_timeout | integer | Default: - 300 | Quanto tempo antes de esperar desistir, em segundos. |
zone aliases: aws_zone, ec2_zone | string | | Zona de disponibilidade da AWS na qual iniciar a instância. |
Subcampos da opção volumes
Parâmetros | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
delete_on_termination | boolean | Escolhas: - false(default) - true | Se o volume deve ser excluído automaticamente quando a instância é encerrada. |
device_name - required | string | | Um nome para o dispositivo (por exemplo /dev/sda). |
encrypted | boolean | Escolhas: - false(default) - true | Se o volume deve ser criptografado usando o KMS CMK 'aws / ebs'. |
ephemeral | string | | Se o volume deve ser ephemeral.Os dados em volumes ephemeral são perdidos quando a instância é interrompida.Mutuamente exclusivo com o parâmetro instantâneo . |
iops | integer | | O número de IOPS por segundo para provisionar o volume.Obrigatório quando volume_type = io1 . |
snapshot | string | | A ID de um instantâneo EBS a ser copiado ao criar o volume.Mutuamente exclusivo com o parâmetro ephemeral . |
volume_size | integer | | O tamanho do volume (em GB). |
volume_type | string | | O tipo de volume a ser criado.Consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html para obter mais informações sobre os tipos de volume disponíveis. |
Notas
Observação
- Se os seguintes parâmetros não forem definidos no módulo, as seguintes variáveis de ambiente podem ser usadas:
- AWS_URL ou EC2_URL,
- AWS_PROFILE ou AWS_DEFAULT_PROFILE,
- AWS_ACCESS_KEY_ID ou AWS_ACCESS_KEY ou EC2_ACCESS_KEY
- AWS_SECRET_ACCESS_KEY ou AWS_SECRET_KEY ou EC2_SECRET_KEY
- AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN
- AWS_REGION ou EC2_REGION,AWS_CA_BUNDLE
- O Atmosphere usa o arquivo de configuração boto (normalmente ~/.boto) se nenhuma credencial for fornecida.
- Veja https://boto.readthedocs.io/en/latest/boto_config_tut.html
- AWS_REGION ou EC2_REGION pode ser normalmente usado para especificar a região AWS, quando necessário, mas isso também pode ser configurado no arquivo de configuração do boto
Exemplos
# Nota: Esses exemplos não definem detalhes de autenticação, consulte o Guia AWS para obter detalhes.
# Exemplo de provisionamento básico
- ec2:
key_name: mykey
instance_type: t2.micro
image: ami-123456
wait: yes
group: webserver
count: 3
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
# Exemplo avançado com tagging e CloudWatch
- ec2:
key_name: mykey
group: databases
instance_type: t2.micro
image: ami-123456
wait: yes
wait_timeout: 500
count: 5
instance_tags:
db: postgres
monitoring: yes
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
# Instância única com volume IOPS adicional de instantâneo e exclusão de volume no encerramento
- ec2:
key_name: mykey
group: webserver
instance_type: c3.medium
image: ami-123456
wait: yes
wait_timeout: 500
volumes:
- device_name: /dev/sdb
snapshot: snap-abcdef12
volume_type: io1
iops: 1000
volume_size: 100
delete_on_termination: true
monitoring: yes
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
# Instância única com volume raiz ssd gp2
- ec2:
key_name: mykey
group: webserver
instance_type: c3.medium
image: ami-123456
wait: yes
wait_timeout: 500
volumes:
- device_name: /dev/xvda
volume_type: gp2
volume_size: 8
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
count_tag:
Name: dbserver
exact_count: 1
# Exemplo de múltiplos grupos
- ec2:
key_name: mykey
group: ['databases', 'internal-services', 'sshable', 'and-so-forth']
instance_type: m1.large
image: ami-6e649707
wait: yes
wait_timeout: 500
count: 5
instance_tags:
db: postgres
monitoring: yes
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
# Várias instâncias com volume adicional de instantâneo
- ec2:
key_name: mykey
group: webserver
instance_type: m1.large
image: ami-6e649707
wait: yes
wait_timeout: 500
count: 5
volumes:
- device_name: /dev/sdb
snapshot: snap-abcdef12
volume_size: 10
monitoring: yes
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
# Exemplo de locação dedicada
- local_action:
module: ec2
assign_public_ip: yes
group_id: sg-1dc53f72
key_name: mykey
image: ami-6e649707
instance_type: m1.small
tenancy: dedicated
vpc_subnet_id: subnet-29e63245
wait: yes
# Exemplo de instância local
- ec2:
spot_price: 0.24
spot_wait_timeout: 600
keypair: mykey
group_id: sg-1dc53f72
instance_type: m1.small
image: ami-6e649707
wait: yes
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
spot_launch_group: report_generators
instance_initiated_shutdown_behavior: terminate
# Exemplos de uso de interfaces de rede pré-existentes
- ec2:
key_name: mykey
instance_type: t2.small
image: ami-f005ba11
network_interface: eni-deadbeef
- ec2:
key_name: mykey
instance_type: t2.small
image: ami-f005ba11
network_interfaces: ['eni-deadbeef', 'eni-5ca1ab1e']
# Lançar instâncias, executar algumas tarefas e, em seguida, encerrá-las
- name: Create a sandbox instance
hosts: localhost
gather_facts: False
vars:
keypair: my_keypair
instance_type: m1.small
security_group: my_securitygroup
image: my_ami_id
region: us-east-1
tasks:
- name: Launch instance
ec2:
key_name: "{{ keypair }}"
group: "{{ security_group }}"
instance_type: "{{ instance_type }}"
image: "{{ image }}"
wait: true
region: "{{ region }}"
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
register: ec2