Etapa 2.3: Implementar um livro de receitas personalizado - 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á.

Etapa 2.3: Implementar um livro de receitas personalizado

Importante

A ferramenta AWS OpsWorks Stacks o 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 o AWS Support Equipe em AWS Re:post ou através de AWS Premium Support.

Apesar de uma pilha ser basicamente um contêiner de instâncias, você não adiciona instâncias diretamente à pilha. Você pode adicionar uma ou mais camadas, cada uma representando um grupo de instâncias relacionadas, e então adicionar instâncias às camadas.

Uma camada é basicamente um modelo que AWS OpsWorks O Stacks é usado para criar um conjunto de EC2 instâncias da Amazon com a mesma configuração. Uma instância começa com uma versão base do sistema operacional, e a camada da instância executa uma variedade de tarefas na instância para implementar o esquema, que podem incluir:

  • Criação de diretórios e arquivos

  • Gerenciamento de usuários

  • Instalação e configuração de software

  • Iniciar ou interromper servidores

  • Implantação de código de aplicativo e arquivos relacionados.

Uma camada executa tarefas em instâncias ao executar receitas do Chef, receitas, para abreviar. Uma receita é um aplicativo Ruby que usa a linguagem específica de domínio do Chef (DSL) para descrever o estado final da instância. Com AWS OpsWorks Pilhas, cada receita geralmente é atribuída a um dos eventos do ciclo de vida da camada: instalação, configuração, implantação, desimplantação e desativação. Quando um evento de ciclo de vida ocorre em uma instância, AWS OpsWorks O Stacks executa as receitas do evento para realizar as tarefas apropriadas. Por exemplo, o evento de Instalação ocorre após o término da inicialização de uma instância. AWS OpsWorks O Stacks então executa Configurar receitas, que normalmente realiza tarefas como a instalação e a configuração de software de servidor e a inicialização de serviços relacionados.

AWS OpsWorks O Stacks fornece a cada camada um conjunto de receitas integradas que executam tarefas padrão. Você pode estender a funcionalidade de uma camada ao implementar receitas personalizadas para realizar tarefas adicionais e atribuí-las aos eventos de ciclo de vida da camada. As pilhas do Windows são compatíveis com camadas personalizadas, que têm um conjunto mínimo de receitas que executam apenas algumas tarefas básicas. Para adicionar funcionalidade às suas instâncias do Windows, você deve implementar as receitas personalizadas para instalar software, implantar aplicativos e assim por diante. Este tópico descreve como criar uma camada personalizada simples para dar suporte às IIS instâncias.

Uma rápida introdução aos livros de receitas e às receitas

Uma receita define um ou mais aspectos do estado esperado de uma instância: quais diretórios ela deve ter, quais pacotes de software devem estar instalados, quais aplicativos devem ser implantados e assim por diante. As receitas são empacotadas em um livro de receitas, que normalmente contém uma ou mais receitas relacionadas, além de arquivos associados, como modelos para a criação de arquivos de configuração.

Este tópico é uma introdução muito básica às receitas, apenas o suficiente para mostrar como implementar um livro de receitas para oferecer suporte a uma IIS camada personalizada simples. Para obter uma introdução mais geral aos livros de receitas, consulte Livros de receitas e receitas. Para um tutorial detalhado de introdução à implementação de livros de receitas, incluindo alguns tópicos específicos do Windows, consulte Introdução a livros de receitas.

As receitas do Chef são tecnicamente aplicativos Ruby, mas a maioria, se não todo, do código está no Chef. DSL O DSL consiste em grande parte em um conjunto de recursos, que você pode usar para especificar declarativamente um aspecto do estado da instância. Por exemplo, um directory recurso define um diretório a ser adicionado ao sistema. O exemplo a seguir define um diretório C:\data com direitos de controle total que pertence ao usuário especificado e não herda direitos do diretório pai.

directory 'C:\data' do rights :full_control, 'WORKGROUP\username' inherits false action :create end

Quando o Chef executa uma receita, ele executa cada recurso ao passar os dados para um provedor associado, um objeto Ruby que lida com os detalhes da modificação do estado da instância. Neste caso, o fornecedor cria um novo diretório com a configuração especificada.

O livro de receitas personalizado para a IIS camada personalizada deve realizar as seguintes tarefas:

  • Instale o IIS recurso e inicie o serviço.

    Você normalmente realiza essa tarefa durante a instalação, logo após o término da inicialização da instância.

  • Implante um aplicativo na instância, uma HTML página simples para este exemplo.

    Você normalmente realiza esta tarefa durante a instalação. No entanto, os aplicativos geralmente precisam ser atualizados regularmente e, portanto, você também precisa implantar as atualizações enquanto a instância está online.

Você poderia ter uma única receita para realizar todas essas tarefas. No entanto, a abordagem preferencial é ter receitas separadas para as tarefas de instalação e de implantação. Dessa maneira, você pode implantar as atualizações de aplicativo a qualquer momento, sem que seja necessário executar o código de instalação também. A seguir, descrevemos como configurar um livro de receitas para oferecer suporte a uma IIS camada personalizada. Os tópicos subsequentes mostrarão como implementar as receitas.

Para começar
  1. Crie um diretório chamado iis-cookbook em um local conveniente na sua estação de trabalho.

  2. Adicione um arquivo metadata.rb com o seguinte conteúdo a iis-cookbook.

    name "iis-cookbook" version "0.1.0"

    Este exemplo usa um metadata.rb mínimo. Para obter mais informações sobre como você pode usar este arquivo, consulte metadata.rb.

  3. Adicione um diretório recipes a iis-cookbook.

    Esse diretório, que deve ser nomeado como recipes, contém as receitas do livro de receitas.

Em geral, os livros de receitas podem conter uma variedade de outros diretórios. Por exemplo, se uma receita usar um modelo para criar um arquivo de configuração, o modelo geralmente ficará no diretório templates\default. O livro de receitas para este exemplo consiste inteiramente em receitas e, portanto, não precisará de outros diretórios. Além disso, este exemplo usa um único livro de receitas, mas você pode usar a quantidade necessária; com frequência, é preferível usar vários livros de receitas para projetos complexos. Por exemplo, você pode ter livros de receitas separados para as tarefas de instalação e de implementação. Para obter mais exemplos de livros de receitas, consulte Livros de receitas e receitas.

Implemente uma receita para instalar e iniciar IIS

IISé um recurso do Windows, um de um conjunto de componentes opcionais do sistema que você pode instalar no Windows Server. Você pode instalar uma receita IIS de uma das seguintes formas:

nota

O powershell_script está entre os recursos mais úteis para receitas do Windows. Você pode usá-lo para realizar várias tarefas em uma instância executando um PowerShell script ou cmdlet. Ele é especialmente útil para as tarefas que não são compatíveis com recursos do Chef.

Este exemplo executa um PowerShell script para instalar e iniciar o Web Server (IIS). O livro de receitas do windows será descrito mais tarde. Para obter um exemplo de como usar windows_feature para instalarIIS, consulteInstalando um recurso do Windows: IIS.

Adicione uma receita chamada install.rb com o conteúdo a seguir ao diretório recipes do livro de receitas.

powershell_script 'Install IIS' do code 'Install-WindowsFeature Web-Server' not_if "(Get-WindowsFeature -Name Web-Server).Installed" end service 'w3svc' do action [:start, :enable] end

A receita contém dois recursos.

powershell_script

powershell_scriptexecuta o PowerShell script ou cmdlet especificado. O exemplo tem as seguintes configurações de atributo:

  • code— Os PowerShell cmdlets a serem executados.

    Este exemplo executa um Install-WindowsFeature cmdlet, que instala o Web Server (). IIS Em geral, o atributo code pode ter qualquer número de linhas para que você possa executar quantos cmdlets precisar.

  • not-if— Um atributo de proteção que garante que a receita seja instalada IIS somente se ainda não tiver sido instalada.

    Você geralmente deseja que as receitas sejam idempotentes, de forma que elas não percam tempo realizando a mesma tarefa mais de uma vez.

Cada recurso tem uma ação, que especifica a ação que o provedor deve realizar. Não há nenhuma ação explícita neste exemplo, então o provedor executa a :run ação padrão, que executa o PowerShell script especificado. Para obter mais informações, consulte Executando um PowerShell script do Windows.

serviço

serviceA gerencia um serviço, o IIS serviço Web Server (W3SVC) nesse caso. O exemplo usa atributos padrão e especifica duas ações, :start e:enable, que iniciam e IIS ativam.

nota

Se você quiser instalar um software que usa um instalador de pacotes, comoMSI, você pode usar um windows_package recurso. Para obter mais informações, consulte Instalar um pacote.

Ativar o livro de receitas personalizado

AWS OpsWorks O Stacks executa receitas de um cache local em cada instância. Para executar suas receitas personalizadas, você deve fazer o seguinte:

  • Armazene o livro de receitas em um repositório remoto.

    AWS OpsWorks O Stacks baixa os livros de receitas desse repositório para o cache local de cada instância.

  • Edite a pilha para ativar os livros de receitas personalizados.

    Os livros de receitas personalizados são desativados por padrão, então você deve habilitar livros de receitas personalizados para a pilha e fornecer o repositório URL e as informações relacionadas.

AWS OpsWorks O Stacks oferece suporte a arquivos S3 e repositórios Git para livros de receitas personalizados; este exemplo usa um arquivo S3. Para obter mais informações, consulte Repositórios de livro de receitas.

Para usar um arquivo do S3
  1. Crie um arquivo .zip do diretório iis-cookbook.

    AWS OpsWorks As pilhas também oferecem suporte a arquivos .tgz (tar compactado com gzip) para pilhas do Windows.

  2. Faça upload do arquivo para um bucket do S3 na região Oeste dos EUA (N. da Califórnia) e torne o arquivo público. Você também pode usar arquivos privados do S3, mas os arquivos públicos são suficientes para este exemplo e um pouco mais simples de trabalhar.

    1. Faça login no AWS Management Console e abra o console Amazon S3 em. https://console.aws.amazon.com/s3/

    2. Se você ainda não tiver um bucket na us-west-1, escolha Criar bucket e crie um bucket na região Oeste dos EUA (N. da Califórnia).

    3. Na lista de buckets, clique no nome do bucket para o qual você deseja fazer upload do arquivo e clique em Upload (Fazer upload).

    4. Escolha Adicionar arquivos.

    5. Selecione o arquivo para fazer upload e escolha Open (Abrir).

    6. Na parte inferior da caixa de diálogo Upload - Select Files and Folders (Fazer upload — Selecionar arquivos e pastas), escolha Set Details (Definir detalhes).

    7. Na parte inferior da caixa de diálogo Set Details, escolha Set Permissions.

    8. Na caia de diálogo Set Permissions, escolha Make everything public.

    9. Na parte inferior da caixa de diálogo Set Permissions (Definir permissões), escolha Start Upload (Iniciar upload). Quando o upload for concluído, o arquivo iis-cookbook.zip será exibido em seu bucket.

    10. Escolha o bucket e escolha a guia Properties (Propriedades) para o bucket. Ao lado de Link, grave o arquivo URL para uso posterior.

    Para obter mais informações sobre o upload de arquivos para um bucket do Amazon S3, consulte Como fazer upload de arquivos e pastas para um bucket do S3? no Guia do usuário do console do Amazon S3.

Importante

Até este ponto, o passo a passo custou apenas um pouco de tempo; o AWS OpsWorks O serviço Stacks em si é gratuito. No entanto, você deve pagar por todos AWS os recursos que usar, como o armazenamento do Amazon S3. Assim que você fizer o upload do arquivo, começará a ser cobrado. Para obter mais informações, consulte AWSPreços.

Para ativar os livros de receitas personalizados para a pilha
  1. No painel, AWS OpsWorks Console Stacks, escolha Stack no painel de navegação e, em seguida, escolha Stack Settings no canto superior direito.

  2. Na parte superior direita da página Settings, escolha Edit.

  3. Na página Settings, defina Use custom Chef cookbooks como Yes e insira as seguintes informações:

    • Tipo de repositório: Arquivamento do S3.

    • Repositório URL — O S3 URL do arquivo do livro de receitas que você gravou anteriormente.

  4. Escolha Save (Salvar) para atualizar a configuração da pilha.

AWS OpsWorks O Stacks instala seu livro de receitas personalizado em todas as novas instâncias. Observe que AWS OpsWorks O Stacks não instala nem atualiza automaticamente livros de receitas personalizados em instâncias on-line. Você pode fazer isso manualmente, conforme descrito posteriormente.