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
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
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 packagepackage_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
-
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 chamadoinstallpkge navegue até ele. -
Em
installpkg, crie um arquivo chamadometadata.rbque 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.rbpode 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.rbantes de inicializar o Test Kitchen; ele usa os dados para criar o arquivo de configuração padrão. -
Em
installpkg, executekitchen init, que inicializa o Test Kitchen e instala o driver do Vagrant padrão. -
O comando
kitchen initcria um arquivo de configuração YAML eminstallpkgchamado.kitchen.yml. Abra o arquivo no editor de texto favorito. O arquivo.kitchen.ymlinclui uma seçãoplatformsque 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
-pa 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.ymlpara remover a plataformacentos-6.4. Seu arquivo.kitchen.ymldeve 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[formato, ondecookbook_name::recipe_name]recipe_nameomite a.rbextensão. Inicialmente, a lista de execuções.kitchen.ymlconté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. -
Crie um subdiretório de
installpkgchamadorecipes.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
-
Crie um arquivo chamado
default.rbque contenha o código de exemplo de instalação do Git no início da seção o salve no subdiretóriorecipes. -
No diretório
installpkg, executekitchen 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. -
Para verificar se a receita foi bem-sucedida, execute
kitchen login, que abre uma conexão SSH para a instância. Em seguida, executegit --versionpara verificar se o Git foi instalado com êxito. Para retornar à estação de trabalho, executeexit. -
Quando terminar, execute
kitchen destroypara 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.