Usar o comando register (ARN de usuário do IAM) para registrar uma instância on-premises
Importante
O registro de uma instância usando um usuário do IAM não é recomendado porque usa credenciais estáticas (permanentes) para autenticação. Para melhorar a segurança, recomendamos registrar uma instância usando credenciais temporárias para autenticação. Para obter mais informações, consulte Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância on-premises.
Importante
Certifique-se de ter um plano para alternar as chaves de acesso do usuário do IAM (credenciais permanentes). Para obter mais informações, consulte Alternando as chaves de acesso.
Esta seção descreve como configurar uma instância on-premises e registrá-la e marcá-la com o CodeDeploy com o mínimo de esforço. O comando register é mais útil quando você está trabalhando com frotas únicas ou pequenas de instâncias locais. Você pode usar o comando register somente quando está usando um ARN de usuário do IAM para autenticar uma instância. Você não pode usar o comando register com um ARN de sessão do IAM para autenticação.
Quando você usa o comando register, pode deixar o CodeDeploy fazer o seguinte:
-
Criar um usuário do IAM no AWS Identity and Access Management para a instância on-premises se você não especificar um com o comando.
-
Salvar as credenciais do usuário do IAM em um arquivo de configuração da instância on-premises.
-
Registrar uma instância on-premises no CodeDeploy.
-
Adicione tags à instância local se você as especificar como parte do comando.
nota
O comando register-on-premises-instance é uma alternativa ao comando register. Você usa o comando register-on-premises-instance para configurar uma instância on-premises e registrá-la e marcá-la no CodeDeploy principalmente por conta própria. O comando register-on-premises-instance também fornece a opção de usar um ARN de sessão do IAM para registrar instâncias em vez de um ARN de usuário do IAM. Essa abordagem proporciona uma grande vantagem quando você tem grandes frotas de instâncias locais. Especificamente, é possível usar um único ARN de sessão do IAM para autenticar várias instâncias em vez de ter que criar um usuário do IAM para cada instância on-premises, uma a uma. Para obter mais informações, consulte Usar o comando register-on-premises-instance (ARN de usuário do IAM) para registrar uma instância on-premises e Usar o comando register-on-premises-instance (ARN de sessão do IAM) para registrar uma instância on-premises.
Tópicos
Etapa 1: instalar e configurar a AWS CLI na instância on-premises
-
Instale a AWS CLI na instância local. Siga as instruções em Conceitos básicos do AWS CLI no Guia do usuário do AWS Command Line Interface.
nota
Os comandos do CodeDeploy para trabalhar com instâncias on-premises estão disponíveis no AWS CLI versão 1.7.19 e posteriores. Se a AWS CLI já estiver instalada, chame aws --version para verificar sua versão.
-
Configure a AWS CLI na instância local. Siga as instruções em Configuração do AWS CLI no Guia do usuário do AWS Command Line Interface.
Importante
Ao configurar a AWS CLI (por exemplo, chamando o comando aws configure), certifique-se de especificar o ID da chave secreta e a chave de acesso secreta de um usuário do IAM que tenha pelo menos as seguintes permissões de acesso da AWS, além das permissões especificadas em Pré-requisitos para configurar uma instância on-premises. Isso permite baixar e instalar o agente do CodeDeploy na instância on-premises. As permissões de acesso podem parecer semelhantes a estas:
nota
Se você ver erros de acesso negado ao tentar acessar um dos buckets do Amazon S3 mostrados anteriormente, tente omitir a parte
/*do ARN do recurso do bucket, por exemplo,arn:aws:s3:::aws-codedeploy-sa-east-1.
Etapa 2: chamar o comando register
Para esta etapa, estamos supondo que você esteja registrando a instância local a partir dela mesma. Você também pode registrar uma instância local a partir de um dispositivo ou instância à parte que tenha a AWS CLI instalada e configurada conforme descrito na etapa anterior.
Use a AWS CLI para chamar o comando register, especificando:
-
Um nome que identifica de forma exclusiva a instância on-premises no CodeDeploy (com a opção
--instance-name).Importante
Para ajudar a identificar a instância local, especialmente para fins de depuração, recomendamos que você use um nome que seja mapeado para algumas características exclusivas da instância local (por exemplo, o número de série ou algum identificador de ativo interno exclusivo, se aplicável). Se você especificar um endereço MAC para um nome, lembre-se de que endereços MAC contêm caracteres não permitidos pelo CodeDeploy, como o sinal de dois pontos (
:). Para obter uma lista de caracteres permitidos, consulte Cotas do CodeDeploy. -
Opcionalmente, o ARN de um usuário do IAM existente que você deseja associar a essa instância on-premises (com a opção
--iam-user-arn). Para acessar o ARN de um usuário do IAM, chame o comando get-user ou escolha o nome do usuário do IAM na seção Usuários do console do IAM e localize o valor de ARN do usuário na seção Resumo. Se essa opção não for especificada, o CodeDeploy criará um usuário do IAM em seu nome em sua conta da AWS e o associará à instância on-premises.Importante
Se você especificar a opção
--iam-user-arn, também deverá criar manualmente o arquivo de configuração da instância local, conforme descrito em Etapa 4: adicionar um arquivo de configuração à instância on-premises.É possível associar apenas um usuário do IAM a apenas uma instância on-premises. Tentar associar um único usuário do IAM a várias instâncias on-premises pode resultar em erros, implantações com falhas nessas instâncias on-premises ou implantações em instâncias on-premises que estão presas em um estado pendente perpétuo.
-
Opcionalmente, um conjunto de tags de instância on-premises (com a opção
--tags) que o CodeDeploy usará para identificar o conjunto de instâncias do Amazon EC2 para implantar. Especifique cada tag comKey=(por exemplo,tag-key,Value=tag-valueKey=Name,Value=Beta Key=Name,Value=WestRegion). Se essa opção não for especificada, nenhuma tag será registrada. Para registrar tags mais tarde, chame o comando add-tags-to-on-premises-instances. -
Opcionalmente, a região da AWS na qual a instância on-premises será registrada no CodeDeploy (com a opção
--region). Essa deve ser uma das regiões compatíveis listadas em Região e endpoints na Referência geral da AWS (por exemplo,us-west-2). Se essa opção não for especificada, a região da AWS padrão associada ao usuário do IAM responsável pela chamada será usada.
Por exemplo:
aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2
O comando register faz o seguinte:
-
Se nenhum usuário existente do IAM for especificado, cria um usuário do IAM, anexa as permissões necessárias a ele e gera uma chave secreta e uma chave de acesso secreta correspondentes. A instância on-premises usará esse usuário do IAM e suas permissões e credenciais para autenticar-se e interagir com o CodeDeploy.
-
Registrar uma instância on-premises no CodeDeploy.
-
Se especificado, associa no CodeDeploy as tags que são especificadas com a opção
--tagscom o nome da instância on-premises registrada. -
Se um usuário do IAM tiver sido criado, também criará o arquivo de configuração necessário no mesmo diretório do qual o comando register foi chamado.
Se esse comando encontrar erros, será exibida uma mensagem de erro descrevendo como você pode concluir manualmente as etapas restantes. Caso contrário, será exibida uma mensagem de sucesso, descrevendo como chamar o comando install, conforme listado na próxima etapa.
Etapa 3: chamar o comando install
Na instância on-premises, use a AWS CLI para chamar o comando install, especificando:
-
O caminho para o arquivo de configuração (com a opção
--config-file). -
Opcionalmente, seja para substituir o arquivo de configuração já existente na instância local (com a opção
--override-config). Se não for especificado, o arquivo de configuração existente não será substituído. -
Opcionalmente, a região da AWS na qual a instância on-premises será registrada no CodeDeploy (com a opção
--region). Essa deve ser uma das regiões compatíveis listadas em Região e endpoints na Referência geral da AWS (por exemplo,us-west-2). Se essa opção não for especificada, a região da AWS padrão associada ao usuário do IAM responsável pela chamada será usada. -
Opcionalmente, uma localização personalizada da qual será instalado o agente do CodeDeploy (com a opção
--agent-installer). Essa opção é útil para instalar uma versão personalizada do agente do CodeDeploy para a qual o CodeDeploy não oferece suporte oficialmente (como uma versão personalizada com base no repositório do Agente do CodeDeployno GitHub). O valor deve ser o caminho para um bucket do Amazon S3 que contém: -
Um script de instalação do agente do CodeDeploy (para sistemas operacionais baseados em Linux ou Unix, semelhante ao arquivo de instalação no repositório do Agente do CodeDeploy
no GitHub). -
Um arquivo de pacote de instalador (.msi) do agente do CodeDeploy (para sistemas operacionais baseados no Windows).
Se essa opção não for especificada, o CodeDeploy fará sua melhor tentativa de instalar a partir de seu próprio local uma versão com suporte oficial do agente do CodeDeploy que seja compatível com o sistema operacional na instância on-premises.
-
Por exemplo:
aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi
O comando install faz o seguinte:
-
Verifica se a instância on-premises é uma instância do Amazon EC2. Se for, uma mensagem de erro será exibida.
-
Copia o arquivo de configuração de instâncias on-premises do local especificado na instância para o local no qual o agente do CodeDeploy espera encontrá-lo, desde que o arquivo ainda não esteja nesse local.
Para Ubuntu Server e Red Hat Enterprise Linux (RHEL)), isso é
/etc/codedeploy-agent/conf/codedeploy.onpremises.yml.Para o Windows Server, isso é
C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.Se a opção
--override-configtiver sido especificada, criará ou substituirá o arquivo. -
Instala o agente do CodeDeploy na instância on-premises e depois o inicia.
Etapa 4: implantar revisões de aplicações na instância on-premises
Agora, você está pronto para implantar revisões de aplicativo na instância on-premises registrada e marcada.
Você implementa revisões de aplicativos em instâncias on-premises de uma maneira semelhante à implantação de revisões de aplicativos em instâncias do Amazon EC2. Para instruções, consulte Crie uma implantação com o CodeDeploy. Essas instruções contêm um link para pré-requisitos, que incluem: criar um aplicativo, criar um grupo de implantação e preparar uma revisão de aplicativo. Se você precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descrito em Etapa 2: criar uma revisão de aplicativo de amostra, no Tutorial: implantar um aplicativo em uma instância on-premises com o CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux).
Importante
Se você reutilizar um perfil de serviço existente do CodeDeploy como parte da criação de um grupo de implantação direcionado a instâncias on-premises, deverá incluir Tag:get* na parte Action da instrução da política desse perfil de serviço. Para obter mais informações, consulte Etapa 2: Criar um perfil de serviço para CodeDeploy.
Etapa 5: acompanhar implantações na instância on-premises
Depois de implantar uma revisão de aplicativo em instâncias on-premises registradas e marcadas, você poderá controlar o progresso da implantação.
Você controla as implantações em instâncias on-premises de uma maneira semelhante ao controle de implantações em instâncias do Amazon EC2. Para instruções, consulte Veja os detalhes da implantação do CodeDeploy .
Para obter mais opções, consulte Gerenciando operações de instâncias on-premises no CodeDeploy.