Exemplo 1: Instalação de pacotes - 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á.

Exemplo 1: Instalação de pacotes

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.

A instalação do pacote é um dos usos mais comuns de receitas e pode ser bem simples, dependendo do pacote. Por exemplo, a receita a seguir instala o Git em um sistema Linux.

package 'git' do action :install end

O recurso package processa a instalação do pacote. Neste exemplo, você não precisa especificar nenhum atributo. O nome do recurso é o valor padrão do atributo package_name, que identifica o pacote. A ação install leva o provedor a instalar o pacote. Você pode simplificar ainda mais o código ignorando install; trata-se da ação padrão do recurso package. Quando você executa a receita, o Chef usa o provedor apropriado para instalar o pacote. No sistema Ubuntu que você usará para o exemplo, o provedor instala o Git chamando apt-get.

nota

A instalação do software em um sistema Windows exige um procedimento um pouco diferente. Para obter mais informações, consulte Instalar o softwares do Windows.

Para usar o Test Kitchen a fim de executar essa receita no Vagrant, você primeiro precisa configurar um livro de receitas, além de inicializar e configurar o Test Kitchen. Este procedimento se destina um sistema Linux, mas é essencialmente igual para sistemas Windows e Macintosh. Comece abrindo uma janela Terminal; todos os exemplos deste capítulo usam ferramentas de linha de comando.

Para preparar o livro de receitas
  1. No diretório inicial, crie um subdiretório chamado opsworks_cookbooks, que conterá todos os livros de receitas deste capítulo. Em seguida, crie um subdiretório para este livro de receitas chamado installpkg e navegue até ele.

  2. Em installpkg, crie um arquivo chamado metadata.rb que contém o código a seguir.

    name "installpkg" version "0.1.0"

    Para simplificar, os exemplos deste capítulo apenas especificam o nome e a versão do livro de receitas, mas metadata.rb pode conter uma grande variedade de metadados sobre o livro de receitas. Para obter mais informações, consulte Sobre metadados do livro de receitas.

    nota

    Não se esqueça de criar metadata.rb antes de inicializar o Test Kitchen; ele usa os dados para criar o arquivo de configuração padrão.

  3. Em installpkg, execute kitchen init, que inicializa o Test Kitchen e instala o driver do Vagrant padrão.

  4. O kitchen init comando cria um arquivo YAML de configuração em installpkg named.kitchen.yml. Abra o arquivo no editor de texto favorito. O arquivo .kitchen.yml inclui uma seção platforms que especifica em quais sistemas as receitas devem ser executadas. O Test Kitchen cria uma instância e executa as receitas especificadas em cada plataforma.

    nota

    Por padrão, o Test Kitchen executa receitas uma plataforma por vez. Se você adicionar um argumento -p a qualquer comando que cria uma instância, o Test Kitchen executará as receitas em todas as plataformas, em paralelo.

    Como uma única plataforma é suficiente para esse exemplo, edite .kitchen.yml para remover a plataforma centos-6.4. Seu arquivo .kitchen.yml deve se parecer com o seguinte:

    --- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:

    O Test Kitchen só executa as receitas que estejam na lista de execuções .kitchen.yml. Você identifica receitas usando o [cookbook_name::recipe_name] formato, onde recipe_name omite a .rb extensão. Inicialmente, a lista de execuções .kitchen.yml contém a receita padrão do livro de receitas, installpkg::default. Como essa é a receita que implementará, você não precisa modificar a lista de execução.

  5. Crie um subdiretório de installpkg chamado recipes.

    Caso um livro de receitas contenha receitas (a maioria deles contém), elas devem estar no subdiretório recipes.

Você já pode adicionar a receita ao livro de receitas e usar o Test Kitchen para executá-la em uma instância.

Para executar a receita
  1. Crie um arquivo chamado default.rb que contenha o código de exemplo de instalação do Git no início da seção o salve no subdiretório recipes.

  2. No diretório installpkg, execute kitchen converge. Este comando inicia uma nova instância do Ubuntu no Vagrant, copia os livros de receitas para a instância e inicia uma execução do Chef para realizar as receitas na lista de execução .kitchen.yml.

  3. Para verificar se a receita foi bem-sucedida, executekitchen login, que abre uma SSH conexão com a instância. Em seguida, execute git --version para verificar se o Git foi instalado com êxito. Para retornar à estação de trabalho, execute exit.

  4. Quando terminar, execute kitchen destroy para desligar a instância. O exemplo a seguir usa um livro de receitas diferente.

Este exemplo foi uma boa maneira de começar, mas é especialmente simples. A instalação de outros pacotes pode ser mais complicada; talvez você possa precisar seguir uma ou todas as seguintes opções:

  • Crie e configure um usuário.

  • Crie um ou mais diretórios para dados, logs etc.

  • Instale um ou mais arquivos de configuração.

  • Especifique um nome de pacote ou valores de atributo diferentes para sistemas operacionais distintos.

  • Inicie um serviço e o reinicie, conforme necessário.

Os exemplos a seguir descrevem como resolver esses problemas, além de algumas outras operações úteis.