Tutorial do Chef - Transforme a infraestrutura em código



Chef Tutorial é o segundo blog da série de blogs do Chef. Este blog explica a arquitetura e os componentes do Chef, como livros de receitas, receitas, etc., com exemplos.

Tutorial do Chef

Chef Tutorial é o segundo blog da série de blogs do Chef. No meu blog anterior , Eu expliquei o que é Chef, Configuration Management e como Chef atinge o Configuration Management com a ajuda de um caso de uso de Gannett.

Neste tutorial do Chef os seguintes tópicos serão abordados:





Tenho certeza depois de ler meu blog anterior você deve estar curioso para saber exatamente como o Chef funciona. A primeira seção deste blog Tutorial do Chef explicará detalhadamente a arquitetura do Chef, o que esclarecerá todas as suas dúvidas.



Tutorial do Chef - Arquitetura do Chef

Conforme mostrado no diagrama abaixo, existem três componentes principais do Chef:

  • Posto de trabalho
  • Servidor
  • Nós

Arquitetura do Chef - Tutorial do Chef - Edureka

Tutorial do Chef - Estação de Trabalho



A estação de trabalho é o local de onde todas as configurações do Chef sãogerenciou. Esta máquina contém todos os dados de configuração que podem ser enviados posteriormente para o Chef Server central. Essas configurações são testadas na estação de trabalho antes de colocá-las no Chef Server. Uma estação de trabalho consiste em uma ferramenta de linha de comando chamada Faca, que é usado para interagir com o Chef Server. Pode haver várias estações de trabalho que, juntas, gerenciam o Chef Server central.

As estações de trabalho são responsáveis ​​por executar as funções abaixo:

  • Escrever livros de receitas e receitas que mais tarde serão enviados para o Chef Server central
  • Gerenciando nós no Chef Server central

Agora, vamos entender os pontos mencionados acima, um por um.

Escrever livros de receitas e receitas que mais tarde serão enviados para o Chef Server central

Receitas: Uma receita é uma coleção de recursos que descreve uma configuração ou política específica. Ele descreve tudo o que é necessário para configurar parte de um sistema. O usuário escreve receitas que descrevem como o Chef gerencia aplicativos e utilitários (como Apache HTTP Server, MySQL ou Hadoop) e como eles devem ser configurados.

Essas receitas descrevem uma série de recursos que devem estar em um determinado estado, ou seja, pacotes que devem ser instalados, serviços que devem estar em execução ou arquivos que devem ser gravados.

Mais tarde no blog , Vou mostrar a você como escrever uma receita para instalar o pacote Apache2 em Chef Nodes, escrevendo um código ruby ​​no Chef Workstation.

Livros de receitas: Várias receitas podem ser agrupadas para formar um livro de receitas. Um livro de receitas define um cenário e contém tudo o que é necessário para dar suporte a esse cenário:

  • Receitas, que especifica os recursos a serem usados ​​e a ordem em que devem ser aplicados
  • Valores de atributos
  • Distribuições de arquivos
  • Modelos
  • Extensões para Chef, como bibliotecas, definições e recursos personalizados

Gerenciando nós no Chef Server central

O sistema Workstation terá os utilitários de linha de comando necessários para controlar e gerenciar todos os aspectos do Chef Server central. Coisas como adicionar um novo Node ao Chef Server central, excluir um Node do Chef Server central, modificar as configurações de Node, etc., podem ser gerenciadas na própria Estação de Trabalho.

Agora vamos ver quais componentes do Workstation são necessários para executar as funções acima.

As estações de trabalho têm dois componentes principais:

Utilitário de faca: Esta ferramenta de linha de comando pode ser usada para se comunicar com o Chef Server central da estação de trabalho. Adicionando, removendo, alterando configurações de nós em um Chef Server central será realizado usando este utilitário Knife. Usando o utilitário Knife, os livros de receitas podem ser carregados para um Chef Server e funções centrais, os ambientes também podem ser gerenciados. Basicamente, todos os aspectos do Chef Server central podem ser controlados da estação de trabalho usando o utilitário Knife.

Um repositório local do Chef: Este é o local onde todos os componentes de configuração do Chef Server central são armazenados. Este repositório Chef pode ser sincronizado com o Chef Server central (novamente usando o próprio utilitário de faca).

Tutorial do Chef - Chef Server

O Chef Server atua como um hub para dados de configuração. O Chef Server armazena Cookbooks, as políticas que são aplicadas aos Nodes e metadados que descrevem cada Node registrado que está sendo gerenciado pelo Chef-Client.

Os nós usam o Chef-Client para solicitar ao Chef Server detalhes de configuração, como receitas, modelos e distribuições de arquivos. O Chef-Client então faz o máximo de trabalho de configuração possível nos próprios nós (e não no Chef Server). Cada Nó tem um software Chef Client instalado, que irá puxar para baixo a configuração do Chef Server central que se aplica a esse Nó. Essa abordagem escalonável distribui o esforço de configuração por toda a organização.

Tutorial do Chef - Nós do Chef

Os nós podem ser um servidor virtual baseado em nuvem ou um servidor físico em seu próprio data center, que é gerenciado usando o Chef Server central. O principal componente que precisa estar presente no Node é um agente que estabelecerá comunicação com o Chef Server central. Isso é chamado de Chef Client.

O Chef Client executa as seguintes funções:

  • É responsável por interagir com o Chef Server central.
  • Ele gerencia o registro inicial do Nó no Chef Server central.
  • Ele puxa os livros de receitas e os aplica no Nó para configurá-lo.
  • Pesquisa periódica do Chef Server central para buscar novos itens de configuração, se houver.

Clique aqui para saber como instalar o Chef Server, Workstation e Node

Tutorial do Chef - Vantagens do Chef:

Este tutorial do Chef ficará incompleto se eu não incluir os principais benefícios do Chef:

  • Você pode automatizar uma infraestrutura inteira usando o Chef. Todas as tarefas que eram feitas manualmente, agora podem ser feitas através da ferramenta Chef.
  • Você pode configurar milhares de nós em minutos usando o Chef.
  • A automação do Chef funciona com a maioria das ofertas de nuvem pública, como .
  • O Chef não apenas automatiza as coisas, mas também mantém os sistemas sob verificação consistente e confirma se o sistema está de fato configurado da maneira que é necessário (Chef Agent / Client faz este trabalho). Se alguém cometer um erro ao modificar um arquivo, o Chef irá corrigi-lo.
  • Uma infraestrutura inteira pode ser registrada na forma de um repositório Chef, que pode ser usado como um blueprint para recriar a infraestrutura do zero.

Espero que você tenha gostado deste tutorial do Chef até agora, o suficiente com as postagens teóricas! vamos nos divertir com a prática.

Tutorial do Chef | Primeiros passos com o Chef | Edureka

Tutorial do Chef - Prático

Aqui, explicarei como criar uma receita, um livro de receitas e um modelo na estação de trabalho do Chef. Também explicarei como implantar um Cookbook da estação de trabalho para Chef-Client (Chef Node).

Estou usando duas imagens virtuais, uma para Chef Workstation e outra para Chef Node. Para o Chef Server, usarei a versão hospedada do Chef (na nuvem). Você também pode usar uma máquina física para o Chef Server.

Passo 1: Instale Chef DK (Development Kit) em sua Chef Workstation.

Chef DK é um pacote que contém todas as ferramentas de desenvolvimento de que você precisará ao codificar o Chef. Aqui está o link para download Chef DK .

Aqui, escolha o sistema operacional que você está usando. Estou usando CentOS 6.8. Então, clicarei em Red Hat Enterprise Linux .

Copie o link de acordo com a versão do CentOS que você está usando. Estou usando o CentOS 6, como você pode ver que destaquei na imagem acima.

Vá para o terminal da estação de trabalho e faça download do Chef DK usando o comando wget e cole o link.

Execute isto:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

O pacote foi baixado. É hora de instalar este pacote usando rpm.

Execute isto:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK agora está instalado em minha estação de trabalho.

Passo 2: Crie uma receita na estação de trabalho

Vamos começar criando uma receita na estação de trabalho e testá-la localmente para garantir que está funcionando.Crie uma pasta chamada chef-repo. Podemos criar nossas receitas dentro desta pasta.

Execute isto:

por que você deveria aprender python
mkdir chef-repo cd chef-repo

Neste diretório chef-repo, criarei uma receita chamada edureka.rb. .rb é a extensão usada para ruby. Vou usar o editor vim, você pode usar qualquer outro editor que quiser, como gedit, emac, vi etc.

Execute isto:

vim edureka.rb

Adicione aqui o seguinte:

arquivo '/ etc / motd' content 'Bem-vindo ao Chef' end

Este Recipe é dureka .rb cria um arquivo chamado / etc / motd com o conteúdo “Bem-vindo ao Chef”.

sobrecarregar e substituir métodos em java

Agora vou usar essa receita para verificar se está funcionando.

Executar isto:

chef-apply edureka.rb

Portanto, há um arquivo criado no chef-repo que tem conteúdo Bem-vindo ao Chef.

Etapa 3: Modificando arquivo de receita para instalar o pacote httpd

Vou modificar a receita para instalar o pacote httpd em minha estação de trabalho e copiar um arquivo index.html para a raiz do documento padrão para confirmar a instalação. A ação padrão para um recurso de pacote é a instalação, portanto, não preciso especificar essa ação separadamente.

Executar isto:

vim edureka.rb

Aqui, adicione o seguinte:

pacote 'httpd' serviço 'httpd' fazer ação [: ativar,: iniciar] finalizar arquivo '/var/www/html/index.html' do conteúdo 'Bem-vindo ao Apache no Chef' end

Agora vou aplicar essas configurações executando o comando abaixo:

Executar isto:

chef-apply edureka.rb

A execução do comando descreve claramente cada instância da Receita. Ele instala o pacote Apache, ativa e inicia o serviço httpd na estação de trabalho. E cria um arquivo index.html na raiz do documento padrão com o conteúdo “Bem-vindo ao Apache no Chef”.

Agora confirme a instalação do Apache2 abrindo seu navegador. Digite seu endereço IP público ou o nome do seu host. No meu caso, é localhost.

Passo 4: Agora vamos criar nosso primeiro livro de receitas.

Crie um diretório chamado Cookbook e execute o comando abaixo para gerar o Cookbook.

Executar isto:

mkdir cookbooks cd cookbooks chef generate cookbook httpd_deploy

httpd_deploy é o nome dado ao Cookbook. Você pode dar o nome que quiser.

Vamos passar para este novo diretório httpd_deploy.

Executar isto:

cd httpd_deploy

Agora vamos ver a estrutura do arquivo do Cookbook criado.

Executar isto:

árvore

Etapa 5: Ccriar um arquivo de modelo.

Anteriormente, criei um arquivo com alguns conteúdos, mas que não cabe nas minhas estruturas de Receitas e Livro de Receitas. Então, vamos ver como podemos criar um modelo para a página index.html.

Executar isto:

chef gerar modelo httpd_deploy index.html

Agora, se você vir a estrutura de arquivos do meu livro de receitas, há uma pasta criada com os modelos de nome do arquivo index.html.erb. Vou editar este arquivo de modelo index.html.erb e adicionar minha receita a ele. Consulte o exemplo abaixo:

Vá para o diretório padrão

Executar isto:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Aqui, edite o modelo index.html.erb usando qualquer editor com o qual você se sinta confortável. Vou usar o editor vim.

Executar isto:

vim index.html.erb

Agora adicione o seguinte:

Bem-vindo ao Chef Apache Deployment

Etapa 6: Criar uma receita com este modelo.

Vá para o diretório Receitas.

Execute t dele:

cd / root / chef-repo / cookbooks / httpd_deploy / recipes

Agora edite o arquivo default.rb usando qualquer editor que desejar. Vou usar o editor vim.

Executar isto:

vim default.rb

Aqui, adicione o seguinte:

pacote 'httpd' serviço 'httpd' fazer a ação [: ativar,: iniciar] fim modelo '/var/www/html/index.html' do fonte 'index.html.erb' end

Agora vou voltar para minha pasta chef-repo e executar / testar minha receita em minha estação de trabalho.

Executar isto:

cd / root / chef-repo chef-client --local-mode --runlist 'receita [httpd_deploy]'

De acordo com minha receita, o Apache está instalado em minha estação de trabalho, o serviço está sendo iniciado e habilitado na inicialização. Além disso, um arquivo de modelo foi criado na raiz do meu documento padrão.

Agora que testei minha estação de trabalho. É hora de configurar o Chef Server.

Etapa 7: Configurar Servidor Chef

Vou usar a versão hospedada do Chef Server na nuvem, mas você também pode usar uma máquina física. Este Chef-Server está presente em manage.chef.io

Aqui, crie uma conta, se ainda não tiver uma. Depois de criar uma conta, entre com suas credenciais de login.

É assim que o Chef Server se parece.

Se você estiver entrando pela primeira vez, a primeira coisa que fará é criar uma organização. Organização é basicamente um grupo de máquinas que você gerenciará com o Chef Server.

Primeiro, irei para a guia de administração. Lá, já criei uma organização chamada edu. Portanto, preciso baixar o kit inicial em minha estação de trabalho. Este kit inicial ajudará você a enviar arquivos da estação de trabalho para o Chef Server. Clique no ícone de configurações no lado direito e clique em Starter Kit.

Ao clicar ali, você terá a opção de baixar o Starter Kit. Basta clicar nele para baixar o arquivo zip do Starter Kit.

Mova este arquivo para o diretório raiz.Agora descompacte este arquivo zip usando o comando unzip em seu terminal. Você notará que ele inclui um diretório chamado chef-repo.

Executar isto:

descompacte chef-starter.zip

Agora mova este kit inicial para o diretório do livro de receitas no diretório chef-repo.

Executar isto:

mv starter / root / chef-repo / cookbook

Os livros de receitas do Chef estão disponíveis no Supermercado de livros de receitas, podemos ir ao Supermercado do Chef. Baixe os livros de receitas necessários em supermercado.chef.io . Estou baixando um dos Cookbook para instalar o Apache a partir daí.

Executar e t h é:

cd chef-repo faca livro de receitas site download learn_chef_httpd

O Tar ball foi baixado para o Apache Cookbook. Agora, precisamos extrair o conteúdo desse arquivo Tar baixado. Para isso, usarei o comando tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Todos os arquivos necessários são criados automaticamente neste livro de receitas. Não há necessidade de fazer modificações. Vamos verificar a descrição da receita dentro da minha pasta de receitas.

o que é serializar em java

Execute t h é :

cd / root / chef-repo / learn_chef_httpd / recipes cat default.rb

Agora, vou apenas fazer upload deste livro de receitas para o meu Chef Server, pois parece perfeito para mim.

Etapa 8: Faça upload do livro de receitas para o Chef Server.

Para fazer upload do Apache Cookbook que baixei, primeiro mova este arquivo learn_chef_httpd para a pasta Cookbooks no chef-repo. Em seguida, mude seu diretório para livros de receitas.

Execute t h é :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Agora vá para este diretório de livros de receitas.

Execute isto:

livros de receitas de cd

Agora neste diretório, execute o comando abaixo para fazer o upload do Apache Cookboopara:

Exec ute t h é:

faca livro de receitas upload learn_chef_httpd

Verifique o livro de receitas no console de gerenciamento do Chef Server. Na seção de política, você encontrará o livro de receitas que carregou. Consulte a captura de tela abaixo:

Agora, nossa etapa final é adicionar Chef Node. Eu configurei uma estação de trabalho, um Chef Server e agora preciso adicionar meus clientes ao Chef Server para automação.

Etapa 9: Adicionando Chef Node ao Chef Server.

Para fins de demonstração, usarei uma máquina CentOS como Chef Node. Pode haver centenas de nós conectados a um Chef Server. A cor do terminal da minha máquina Node é diferente da estação de trabalho, de modo que você poderá diferenciar entre as duas.

Eu só preciso do endereço IP do meu Node para que irei executar o comando abaixo em minha máquina de Nodeé.

Exec você t é t h é:

ifconfig

Adicionarei meu Chef Node ao servidor executando o comando Knife Bootstrap, no qual especificarei o endereço IP do Chef Node e seu nome. Execute o comando mostrado abaixodentro:

Exec ute t h é:

faca bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Este comando também irá inicializar a instalação do Chef-Client no Chef Node. Você pode verificar a partir do CLI na estação de trabalho usando o comando de faca, como mostrado abaixodentro:

Exec ute t h é:

Lista de nós de faca

Você também pode verificar no Chef Server. Vá para a guia de nós em seu console de gerenciamento de servidor, aqui você notará que o nó que você adicionou está presente. Consulte a imagem abaixo.

Etapa 10: Gerenciar lista de execução de nó

Vamos ver como podemos adicionar um livro de receitas ao nó e gerenciar sua lista de execução a partir do Chef Server. Como você pode ver na captura de tela abaixo, clique na guia Ações e selecione a opção Editar lista de execução para gerenciar a lista de execução.

Nas Receitas Disponíveis, você pode ver nossa Receita learn_chef_httpd, você pode arrastá-la dos pacotes disponíveis para a Lista de Corridas atual e salvar a Lista de Corridas.

Agora faça o login no seu Node e apenas execute chef-client para executar o Run List.

Exec ute t h é:

cliente principal

Espero que você tenha gostado deste tutorial do Chef e aprendido como o Chef pode ser usado para configurar centenas de nós. O Chef está desempenhando um papel vital em muitas organizações para alcançar o DevOps. Com o Chef, as organizações estão lançando aplicativos com mais frequência e confiambvidro.

Se você encontrou este blog em “ Tutorial do Chef ' relevante, Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka DevOps Certification Training ajuda os alunos a obter experiência em vários processos e ferramentas DevOps, como Puppet, Chef, Jenkins, Nagios e GIT para automatizar várias etapas no SDLC.