As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar o agente do CodeDeploy para validar um pacote de implantação em uma máquina local
Ao usar o agente do CodeDeploy, você pode implantar conteúdo na instância em que está conectado. Dessa forma, é possível testar a integridade de um arquivo de especificação de aplicativo (AppSpec) que você pretende usar em uma implantação e do conteúdo que pretende implantar.
Você não precisa criar um grupo de aplicativo e implantação. Se quiser implantar o conteúdo armazenado na instância local, você não precisará sequer de uma conta da AWS. Para testes mais simples, você pode executar o comando codedeploy-local, sem especificar nenhuma opção, em um diretório que contenha o AppSpec e o conteúdo a ser implantado. Existem opções para outros casos de teste na ferramenta.
Ao validar um pacote de implantação em uma máquina local, é possível:
-
Testar a integridade de uma revisão de aplicativo.
-
Testar o conteúdo de um arquivo AppSpec.
-
Testar o CodeDeploy pela primeira vez com seu código de aplicativo existente.
-
Implantar o conteúdo rapidamente quando você já estiver conectado a uma instância.
Você pode implantar o conteúdo armazenado na instância local ou em um tipo de repositório remoto compatível (buckets do Amazon S3 ou repositórios públicos do GitHub).
Pré-requisitos
Antes de iniciar uma implantação local, siga estas etapas:
-
Crie ou use um tipo de instância compatível com o agente do CodeDeploy. Para mais informações, consulte Sistemas operacionais suportados pelo CodeDeploy agente.
-
Instale a versão 1.0.1.1352 ou posterior do agente do CodeDeploy. Para mais informações, consulte Instalar o agente do CodeDeploy.
-
Se você estiver implantando seu conteúdo a partir de um bucket do Amazon S3 ou de repositório do GitHub, forneça um usuário do IAM para uso com o CodeDeploy. Para mais informações, consulte Etapa 1: configuração.
-
Se você estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3, crie um bucket do Amazon S3 na região em que você está trabalhando e aplique uma política de bucket do Amazon S3 ao bucket. Essa política concede às suas instâncias as permissões necessárias para baixar a revisão de aplicativo.
Por exemplo, a seguinte política de bucket do Amazon S3 permite que qualquer instância do Amazon EC2 com um perfil de instância anexado do IAM contendo o ARN
arn:aws:iam::444455556666:role/CodeDeployDemopara fazer o download de qualquer lugar no bucket do Amazon S3 chamado deamzn-s3-demo-bucket.{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }A seguinte política do bucket Amazon S3 permite que qualquer instância On-Premises com um usuário do IAM associado, contendo o ARN do
arn:aws:iam::444455556666:user/CodeDeployUserpara que seja feito o download de qualquer lugar no bucket do Amazon S3 chamado deamzn-s3-demo-bucket.{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }Para obter informações sobre como gerar e anexar uma política de bucket do Amazon S3, consulte Exemplos de políticas de bucket.
-
Se você estiver implantando sua revisão de aplicativo a partir de um bucket do Amazon S3 ou de repositório do GitHub, configure um perfil de instância do IAM e o anexe à instância. Para obter informações, consulte Etapa 4: Crie um perfil de instância do IAM para suas EC2 instâncias da Amazon, Criar uma instância do Amazon EC2 para o CodeDeploy (AWS CLI ou console do Amazon EC2) e Criar uma instância do Amazon EC2 para o CodeDeploy (modelo do CloudFormation).
-
Se você estiver implantando seu conteúdo a partir do GitHub, crie uma conta do GitHub e um repositório público. Para criar uma conta do GitHub, consulte Participar do GitHub
. Para criar um repositório GitHub, consulte Criar um repositório . nota
Atualmente, não há suporte para repositórios privados. Se o conteúdo estiver armazenado em um repositório privado do GitHub, você poderá fazer download dele para a instância e usar a opção
--bundle-locationpara especificar seu caminho local. -
Prepare o conteúdo (incluindo um arquivo AppSpec) que você quer implantar na instância e coloque-o na instância local, no seu bucket do Amazon S3 ou no seu repositório do GitHub. Para mais informações, consulte Trabalhando com revisões de aplicativos para CodeDeploy.
-
Se você quiser usar valores diferentes dos padrões para outras opções de configuração, crie o arquivo de configuração e coloque-o na instância (
/etc/codedeploy-agent/conf/codedeployagent.ymlpara instâncias do Amazon Linux, RHEL, ou Ubuntu Server ouC:\ProgramData\Amazon\CodeDeploy\conf.ymlpara instâncias do Windows Server). Para mais informações, consulte Referência de configuração do agente do CodeDeploy.nota
Ao usar um arquivo de configuração nas instâncias do Amazon Linux, RHEL ou Ubuntu Server, você precisa realizar uma das seguintes ações:
-
Usar as variáveis
:root_dir:e:log_dir:para especificar locais diferentes dos padrões para as pastas do diretório raiz e de log da implantação. -
Use
sudopara executar os comandos do agente do CodeDeploy.
-
Criar uma implantação local
Na instância em que você quer criar a implantação local, abra uma sessão de terminal (instâncias do Amazon Linux, RHEL ou Ubuntu Server) ou um prompt de comando (Windows Server) para executar os comandos da ferramenta.
nota
O comando codedeploy-local é instalado nos seguintes locais:
-
No Amazon Linux, RHEL ou Ubuntu Server:
/opt/codedeploy-agent/bin. -
No Windows Server:
C:\ProgramData\Amazon\CodeDeploy\bin.
Sintaxe básica de comando
codedeploy-local [options]
Resumo
codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]
Opções
-l, --bundle-location
O local do pacote de revisão do aplicativo. Se você não especificar um local, por padrão, a ferramenta usará o diretório no qual você está trabalhando no momento. Se você especificar um valor para --bundle-location, também deverá especificar um valor para --type.
Exemplos de formato de local do pacote:
-
Amazon Linux, RHEL ou Ubuntu Server local instância:
/path/to/local/bundle.tgz -
Instância local do Windows Server:
C:/path/to/local/bundle -
Bucket do Amazon S3:
s3://amzn-s3-demo-bucket/bundle.tar -
Repositório do GitHub:
https://github.com/account-name/repository-name/
-t, --type
O formato do pacote de revisão do aplicativo. Os tipos compatíveis incluem tgz, tar, zip e directory. Se você não especificar um tipo, a ferramenta usará directory por padrão. Se você especificar um valor para --type, também deverá especificar um valor para --bundle-location.
-b, --file-exists-behavior
Indica como são processados os arquivos que já existem em um local de destino de implantação, mas não faziam parte de uma implantação anterior bem-sucedida. As opções incluem DISALLOW, OVERWRITE e RETAIN. Para obter mais informações, consulte fileExistsBehavior em AWS CodeDeploy Referência de API.
-g, --deployment-group
O caminho para a pasta que é o local de destino do conteúdo a ser implantado. Se você não especificar uma pasta, a ferramenta criará uma com o nome default-local-deployment-group no diretório raiz da sua implantação. Para cada implantação local que você cria, a ferramenta gera um subdiretório dentro desta pasta com nomes como d-98761234-local.
-e, --events
Um conjunto de hooks de evento de ciclo da vida para substituição que você deseja executar, em ordem, no lugar dos eventos que listou no arquivo AppSpec. É possível especificar vários ganchos, separando-os por vírgulas. Você pode usar essa opção se:
-
Quiser executar um conjunto diferente de eventos sem ter que atualizar o arquivo AppSpec.
-
Quiser executar um único hook de evento como uma exceção ao que está no arquivo AppSpec, como
ApplicationStop.
Se você não especificar os eventos DownloadBundle e Install na lista de substituição, eles serão executados antes de todos os ganchos de eventos que você especificar. Se você incluir DownloadBundle e Install na lista de opções de --events, eles deverão ser precedidos apenas por eventos normalmente executados antes deles nas implantações do CodeDeploy. Para mais informações, consulte AppSpec seção 'ganchos'.
-c, --agent-configuration-file
O local de um arquivo de configuração a ser usado para a implantação, se você o armazenar em um local diferente do padrão. Um arquivo de configuração especifica alternativas para outros valores e comportamentos padrão de uma implantação.
Por padrão, os arquivos de configuração são armazenados em /etc/codedeploy-agent/conf/codedeployagent.yml (instâncias do Amazon Linux, RHEL ou Ubuntu Server) ou C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). Para obter mais informações, consulte Referência de configuração do agente do CodeDeploy.
-A, --appspec-nome do arquivo
O nome do arquivo AppSpec. Para implantações locais, os valores aceitos são appspec.yml e appspec.yaml. Por padrão, o arquivo AppSpec é chamado appspec.yml.
-h, --help
Exibe um resumo do conteúdo de ajuda.
-v, --version
Exibe o número de versão da ferramenta.
Exemplos
Veja a seguir exemplos de formatos de comando válidos.
codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group
Implantar um empacotamento a partir do Amazon S3:
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group
Implantar um pacote a partir de um repositório público do GitHub:
codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip
Implantar um pacote especificando vários eventos de ciclo de vida:
codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck
Interromper um aplicativo implantado anteriormente usando o evento de ciclo de vida ApplicationStop:
codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop
Implantar usando um ID de grupo específico para implantação:
codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca