Existe uma maneira simples de contar o número de lacaios retornados por uma partida, por exemplo:
salt -C 'G@ec2_roles:test' match.count
Existe uma maneira simples de contar o número de lacaios retornados por uma partida, por exemplo:
salt -C 'G@ec2_roles:test' match.count
Estamos usando o Terraform para lançar ASGs para a maioria de nossas instâncias AWS EC2. O problema é que, de vez em quando, queremos fazer algum trabalho extra antes de encerrar uma instância; por exemplo: desativar um nó de um cluster antes que a instância do EC2 em que ele estava sendo executado seja encerrada. Se fôssemos apenas diminuir min
== max
(nosso padrão), uma instância seria encerrada e não poderíamos executar uma desativação normal.
Ao invés disso o que eu tentei é baixar min
para o novo valor desejado (exemplo: 6) e manter o max
valor antigo (exemplo: 10), o que acontece nesse caso é que o desired
valor fica em 10 (o max
) e encerrando o EC2 instância faz com que uma nova seja iniciada pelo ASG. NOTA: não estamos definindo a configuração do Terraform desired_capacity
.
Se eu definir desired_capacity
manualmente, corro o risco de o ASG encerrar um nó que não foi desativado normalmente, então não acho que seja uma opção para mim.
O que eu gostaria idealmente é que o ASG não fizesse nada quando a contagem atual de instâncias do EC2 para esse ASG estivesse entre min
e max
e me permitisse encerrar manualmente as instâncias. Obviamente, se a contagem cair min
, eu ainda gostaria que o ASG lançasse uma nova instância do EC2.
Existe alguma maneira de conseguir isso?
Eu li um monte de perguntas diferentes sobre qual configuração do Nginx é apropriada para SSE e cheguei a alguns resultados confusos sobre quais configurações usar:
Então, qual é a resposta certa?
Estou tentando definir programaticamente as rotas que uma VPN deve enviar aos clientes, sendo uma das principais a rede VPC. Existe uma maneira de obter o bloco VPC CIDR de dentro da minha instância vpn?
Tenho algumas solicitações pontuais do EC2 que iniciam instâncias do EC2 quando o preço é justo. Eu gostaria que as instâncias resultantes fossem marcadas com uma tag Name
e Role
para que minha ferramenta de gerenciamento de configuração soubesse que tipo de máquina é.
ATUALIZAÇÃO :
Segui o conselho do Hyper Anthony e o implementei - como a pesquisa seria propensa a erros e consumiria muitos recursos, adicionei um script de inicialização à minha AMI que atualiza as tags quando uma instância é iniciada. Estas são as etapas que executei:
pip install boto
A instância que você está iniciando deve ter alguma forma de acessar informações sobre a solicitação spot. Use uma função do IAM ou, como alternativa, disponibilize as chaves de acesso para sua instância. A política que anexei à função IAM que usei é:
{
"Statement": [
{
"Action": [
"ec2:CreateTags",
"ec2:DescribeTags",
"ec2:DescribeInstances"
],
"Effect": "Allow",
"Resource": [
"*"
],
"Sid": "Stmt1432737176000"
}
],
"Version": "2012-10-17"
}
def get_tags_from_spot_request():
instance_id = boto.utils.get_instance_identity()['document']['instanceId']
region = boto.utils.get_instance_identity()['document']['region']
conn = boto.ec2.connect_to_region(region)
inst = boto.ec2.instance.Instance(connection=conn)
inst.id = instance_id
inst.update()
spot_id = inst.spot_instance_request_id
tags = conn.get_all_tags(filters={'resource-type': 'spot-instances-request', 'resource-id': spot_id})
for tag in tags:
inst.add_tag(tag.name, tag.value)
Dada a seguinte função em um módulo SaltStack chamado salty
, como envio uma sequência para a event
função do tags
argumento, que tags
deve ser uma lista do Python:
def event(name, desc, tags=None):
assert type(tags) == list
Eu esperava que o seguinte funcionasse, mas não funciona:
salt-call salty.event myname mydesc tags=tag1,tag2,tag3
Gostaria de uma forma de fazer autenticação de chave SSH via LDAP.
Usamos LDAP (slapd) para serviços de diretório e recentemente passamos a usar nossa própria AMI para criar instâncias. A razão pela qual o bit AMI é importante é que, idealmente , gostaríamos de poder fazer login com SSH por meio de autenticação de chave assim que a instância estiver em execução e não ter que esperar que nossa ferramenta de gerenciamento de configuração um tanto lenta inicie um script para adicionar as chaves corretas para a instância.
O cenário ideal é que, ao adicionar um usuário ao LDAP, adicionemos também sua chave e eles possam fazer login imediatamente.
A autenticação de chave é obrigatória porque o login baseado em senha é menos seguro e incômodo.
Eu li esta pergunta que sugere que há um patch para OpenSSH chamado OpenSSH-lpk para fazer isso, mas isso não é mais necessário com o servidor OpenSSH >= 6.2
Adicionada uma opção sshd_config(5) AuthorizedKeysCommand para suportar a busca de author_keys de um comando além de (ou em vez de) do sistema de arquivos. O comando é executado em uma conta especificada por uma opção AuthorizedKeysCommandUser sshd_config(5)
Como posso configurar OpenSSH e LDAP para implementar isso?