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
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
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
-
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 chamadoinstallpkg
e navegue até ele. -
Em
installpkg
, crie um arquivo chamadometadata.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. -
Em
installpkg
, executekitchen init
, que inicializa o Test Kitchen e instala o driver do Vagrant padrão. -
O
kitchen init
comando cria um arquivo YAML de configuração eminstallpkg
named.kitchen.yml
. Abra o arquivo no editor de texto favorito. O arquivo.kitchen.yml
inclui uma seçãoplatforms
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 plataformacentos-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[
formato, ondecookbook_name
::recipe_name
]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. -
Crie um subdiretório de
installpkg
chamadorecipes
.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.rb
que 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 SSH conexão com a instância. Em seguida, executegit --version
para verificar se o Git foi instalado com êxito. Para retornar à estação de trabalho, executeexit
. -
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.