Configuração de pilha e atributos de implantação - AWS OpsWorks

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á.

Configuração de pilha e atributos de implantação

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

Quando o AWS OpsWorks Stacks executa um comando em uma instância, por exemplo, um comando de implantação em resposta a um evento do ciclo de vida do Deploy, ele adiciona um conjunto de atributos ao objeto node da instância que descreve a configuração atual da pilha. Para os comandos Deploy events e Execute Recipes stack, o AWS OpsWorks Stacks instala atributos de implantação, que fornecem algumas informações adicionais de implantação. Para obter mais informações sobre o objeto de nó, consulte Sobrepor atributos. Para uma lista de configuração de pilhas e atributos de implantação mais comumente usados, incluindo nomes de nós completamente qualificados, consulte Atributos de implantação e configuração de pilha: Linux e Atributos de livros de receitas integrados.

nota

Em pilhas no Linux, a lista completa desses atributos, formatada como um objeto JSON, pode ser acessada usando o agente comando get_json da CLI.

As seções a seguir mostram os atributos associados a um evento Configurar e um evento Implantar para uma pilha simples, que contém o seguinte:

  • Uma camada PHP App Server com duas instâncias

  • Uma camada HAProxy com uma instância

Os exemplos são de uma das instâncias PHP App Server, php-app1. Por conveniência, os atributos são formatados como um objeto JSON. A estrutura do objeto é mapeada para os nomes totalmente qualificados dos atributos. Por exemplo, o atributo node[:opsworks][:ruby_version] aparece como se segue em uma representação JSON.

{ "opsworks": { ... "ruby_version": "1.8.7", ... } }

Configurar Atributos

O objeto JSON a seguir mostra os atributos para um evento Configurar, que ocorre em cada instância na pilha quando uma instância fica online ou off-line. Os atributos incluem os atributos de configuração da stack integrada e qualquer atributo personalizado de JSON que foram definidos para a pilha anterior ao evento (nenhuma neste exemplo). Foi editado por questão de tamanho. Para uma descrição mais detalhada dos vários atributos, consulte Atributos de implantação e configuração de pilha: Linux e Atributos de livros de receitas integrados.

{ "opsworks": { "layers": { "php-app": { "id": "4a2a56c8-f909-4b39-81f8-556536d20648", "instances": { "php-app2": { "elastic_ip": null, "region": "us-west-2", "booted_at": "2013-02-26T20:41:10+00:00", "ip": "192.0.2.0", "aws_instance_id": "i-34037f06", "availability_zone": "us-west-2a", "instance_type": "c1.medium", "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal", "private_ip": "10.252.0.203", "created_at": "2013-02-26T20:39:39+00:00", "status": "online", "backends": 8, "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "php-app1": { ... } }, "name": "PHP Application Server" }, "lb": { "id": "15c86142-d836-4191-860f-f4d310440f14", "instances": { "lb1": { ... } }, "name": "Load Balancer" } }, "agent_version": "104", "applications": [ ], "stack": { "name": "MyStack" }, "ruby_version": "1.8.7", "sent_at": 1361911623, "ruby_stack": "ruby_enterprise", "instance": { "layers": [ "php-app" ], "region": "us-west-2", "ip": "192.0.2.0", "id": "45ef378d-b87c-42be-a1b9-b67c48edafd4", "aws_instance_id": "i-32037f00", "availability_zone": "us-west-2a", "private_dns_name": "ip-10-252-84-253.us-west-2.compute.internal", "instance_type": "c1.medium", "hostname": "php-app1", "private_ip": "10.252.84.253", "backends": 8, "architecture": "i386", "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "activity": "configure", "rails_stack": { "name": null }, "deployment": null, "valid_client_activities": [ "reboot", "stop", "setup", "configure", "update_dependencies", "install_dependencies", "update_custom_cookbooks", "execute_recipes" ] }, "opsworks_custom_cookbooks": { "recipes": [ ], "enabled": false }, "recipes": [ "opsworks_custom_cookbooks::load", "opsworks_ganglia::configure-client", "ssh_users", "agent_version", "mod_php5_apache2::php", "php::configure", "opsworks_stack_state_sync", "opsworks_custom_cookbooks::execute", "test_suite", "opsworks_cleanup" ], "opsworks_rubygems": { "version": "1.8.24" }, "ssh_users": { }, "opsworks_bundler": { "manage_package": null, "version": "1.0.10" }, "deploy": { } }

A maioria das informações está sob o atributo opsworks, que normalmente é chamado de um namespace. A lista a seguir descreve os principais atributos:

  • layers atributos: um conjunto de atributos, cada descrevendo a configuração de uma das camadas da pilha.

    As camadas são identificados pelas abreviações, php-app e lb para este exemplo. Para obter mais informações sobre abreviações para outras camadas , consulte AWS OpsWorks Referência de camadas de pilhas.

  • instances atributos: cada camada tem um elemento instances, que inclui um atributo para cada uma das instâncias on-line das camadas, com o nome do nome abreviado da instância.

    A camada PHP App Server tem duas instâncias, php-app1 e php-app2. A camada HAProxy tem uma instância, lb1.

    nota

    O elemento instances contém somente as instâncias que estão no estado online quando os atributos de pilha e de implantação são criados.

  • Atributos da instância: cada atributo da instância contém um conjunto de atributos que caracterizam a instância, como o endereço IP privado da instância e nome de DNS privado. Em resumo, o exemplo mostra apenas o atributo php-app2 em detalhes, os outros contêm informações semelhantes.

  • applications: uma lista de aplicativos implantados, não usados neste exemplo.

  • stack: o nome da pilha. MyStack neste exemplo.

  • instance: a instância em que esses atributos são instalados. php-app1 neste exemplo. As receitas podem usar esse atributo para conseguir informações sobre a instância em que está sendo executada, como o endereço IP público da instância.

  • activity: a atividade geradora dos atributos. Um evento Configure, neste exemplo.

  • rails_stack: a pilha Rails para pilhas que incluem uma camada Rails App Server.

  • deployment: se esses atributos são associados a uma implantação. Ele é definido como null para este exemplo, pois eles são associados a um evento Configurar.

  • valid_client_activities: uma lista de atividades de cliente válido.

O atributo opsworks é seguido por vários outros atributos de nível superior, incluindo os seguintes:

  • opsworks_custom_cookbooks: se os livros de receitas personalizados estão habilitados. Se esse for o caso, o atributo inclui uma lista de receitas personalizadas.

  • recipes: as receitas que foram executadas por essa atividade.

  • opsworks_rubygems— A RubyGems versão da instância.

  • ssh_users: uma lista de usuários SSH. Nenhum neste exemplo.

  • opsworks_bundler: a versão do bundler e se ela está habilitada.

  • deploy: informações sobre atividades de implantação. Nenhuma neste exemplo.

Atributos de implantação

Os atributos para um evento Implantar ou comando de pilha para executar receitas consistem na configuração da pilha integrada e nos atributos de implantação, além de quaisquer outros atributos personalizados de pilha ou implantação (nenhum para este exemplo). O objeto JSON a seguir mostra os atributos de php-app1 que estão associados a um evento Implantar que implantou o aplicativo SimplePHP às instâncias PHP da pilha. Grande parte do objeto consiste nos atributos de configuração da pilha que são semelhantes aos atributos para o evento Configurar descrito na seção anterior, assim, o exemplo tem o foco principal nos atributos específicos da implantação. Para uma descrição mais detalhada dos vários atributos, consulte Atributos de implantação e configuração de pilha: Linux e Atributos de livros de receitas integrados.

{ ... "opsworks": { ... "activity": "deploy", "applications": [ { "slug_name": "simplephp", "name": "SimplePHP", "application_type": "php" } ], "deployment": "5e6242d7-8111-40ee-bddb-00de064ab18f", ... }, ... { "ssh_users": { }, "deploy": { "simplephpapp": { "application": "simplephpapp", "application_type": "php", "environment_variables": { "USER_ID": "168424", "USER_KEY": "somepassword" }, "auto_bundle_on_deploy": true, "deploy_to": "/srv/www/simplephpapp", "deploying_user": "arn:aws:iam::123456789012:user/guysm", "document_root": null, "domains": [ "simplephpapp" ], "migrate": false, "mounted_at": null, "rails_env": null, "restart_command": "echo 'restarting app'", "sleep_before_restart": 0, "ssl_support": false, "ssl_certificate": null, "ssl_certificate_key": null, "ssl_certificate_ca": null, "scm": { "scm_type": "git", "repository": "git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git", "revision": "version1", "ssh_key": null, "user": null, "password": null }, "symlink_before_migrate": { "config/opsworks.php": "opsworks.php" }, "symlinks": { }, "database": { }, "memcached": { "host": null, "port": 11211 }, "stack": { "needs_reload": false } } }, }

O atributo opsworks é idêntico ao exemplo na seção anterior. As seções a seguir são mais relevantes para a implantação:

  • activity: o evento associado a esses atributos. Neste exemplo, um evento Deploy.

  • applications: contém um conjunto de atributos para cada aplicativo que fornecem os nomes dos aplicativos, nomes slug e tipos.

    O nome do slug é o nome curto do aplicativo, que o AWS OpsWorks Stacks gera a partir do nome do aplicativo. O nome slug para SimplePHP é simplephp.

  • deployment: o ID de implantação, que identifica unicamente uma implantação.

O atributo deploy inclui informações sobre os aplicativos que estão sendo implantados. Por exemplo, as receitas integradas de implantação usam os dados no atributo deploy para instalar arquivos nos diretórios adequados e criar arquivos com conexão nos bancos de dados. O atributo deploy inclui um atributo para cada aplicativo implantado, com o nome abreviado do aplicativo. Cada atributo do aplicativo inclui os seguintes atributos:

  • environment_variables: contém qualquer variável ambiental definida para o aplicativo. Para ter mais informações, consulte Variáveis de ambiente.

  • domains: por padrão, o domínio é o nome abreviado do aplicativo, que é simplephpapp para este exemplo. Se você tiver atribuído domínios personalizados, eles também aparecerão aqui. Para ter mais informações, consulte Usando domínios predefinidos.

  • application: o nome abreviado do aplicativo.

  • scm: esse elemento contém as informações necessárias para fazer download dos arquivos do aplicativo do repositório. Neste exemplo, um repositório Git.

  • database: informações do banco de dados, caso a pilha inclua uma camada de banco de dados.

  • document_root: a raiz do documento, que é definida como null neste exemplo, indicando que a raiz é pública.

  • ssl_certificate_ca, ssl_support, ssl_certificate_key: indica se o aplicativo tem suporte para SSL. Se esse for o caso, os atributos ssl_certificate_key e ssl_certificate_ca são definidos para certificados correspondentes.

  • deploy_to: o diretório raiz do aplicativo.