Como instalar o Chef Server, Workstation e Chef Client no Ubuntu 18.04

Como instalar o Chef Server, Workstation e Chef Client no Ubuntu 18.04

Chef é uma ferramenta de gerenciamento de configuração baseada em rubi usada para definir a infraestrutura como código. Isso permite que os usuários automatizem o gerenciamento de muitos nós e mantenham consistência nesses nós. As receitas declaram o estado desejado para nós gerenciados e são criados na estação de trabalho de um usuário usando o pacote de estação de trabalho do chef. Suas receitas são distribuídas através dos nós por meio de um servidor de chef. Um cliente chef, instalado em cada nó, é responsável por aplicar a receita ao seu nó correspondente. Este guia mostrará como instalar e configurar um servidor de chef e estação de trabalho chef. Também iremos inicializar um nó para gerenciar com o chef.

Neste tutorial, você aprenderá:

  • Instale e configure o servidor Chef
  • Crie Usuário e Organização do Chef
  • Instale e configure a estação de trabalho do chef
  • Configurar faca e bootstrapping um nó cliente

Arquitetura do chef.

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Ubuntu Linux 18.04
Programas Chef Server Core, Chef Workstation, Chef Client, Chef Development Kit
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Instale e configure o servidor Chef

O servidor Chef é o centro de interação entre todas as estações de trabalho e nós do Chef Management. As alterações feitas no código de configuração nas estações de trabalho são empurradas para o servidor chef e depois puxadas pelo Chef-Client de um nó para aplicar as configurações.

Faça o download do mais recente servidor de chef através da execução do comando abaixo:

# wget https: // pacotes.chefe de cozinha.io/arquivos/estábulo/chef-server/12.18.14/Ubuntu/18.04/Chef-Server-core_12.18.14-1_AMD64.Deb 


Agora instale o pacote do servidor pelo seguinte comando:

# dpkg -i chef-server-core_*.Deb 

O servidor Chef inclui um utilitário de linha de comando chamado Chef-Server-CTL. Execute o chef-server-ctl para iniciar os serviços do servidor Chef.

# Chef-Server-CTL Reconfigure 

Após a configuração bem -sucedida do servidor Chef, você verá a mensagem abaixo e verifique o status de execução do servidor Chef também.

Chef Client terminado, 493/1100 Recursos atualizados em 12 minutos 02 segundos Chef Server reconfigurado! 
raiz@ubuntuBox1: ~# status de chef-server-ctl execução: estante: (pid 1435) 6644s; RUN: LOG: (PID 1440) 6644S RUN: NGINX: (PID 1235) 6653S; RUN: LOG: (PID 1744) 6631S RUN: OC_BIFROST: (PID 1196) 6657S; RUN: LOG: (PID 1203) 6657S RUN: OC_ID: (PID 1220) 6655S; Execução: LOG: (PID 1227) 6655S RUN: OPSCODE-ERCHEF: (PID 4376) 6432S; Execute: LOG: (PID 1508) 6644S RUN: OPSCODE-EXPAnder: (PID 1335) 6648S; Execução: LOG: (PID 1431) 6646S RUN: OPSCODE-SOLR4: (PID 1244) 6650S; RUN: LOG: (PID 1285) 6649S RUN: POSTGRESQL: (PID 1176) 6659S; RUN: LOG: (PID 1180) 6659S RUN: RABBITMQ: (PID 4188) 6443S; RUN: LOG: (PID 1748) 6631S RUN: REDIS_LB: (PID 27397) 6931S; Execute: LOG: (PID 1735) 6632S root@ubuntubox1: ~## 

Crie Usuário e Organização do Chef

Para vincular estações de trabalho e nós ao servidor Chef, crie um administrador e organização com chaves privadas RSA associadas.
No diretório doméstico, crie um .Diretório Chef para armazenar as chaves.

# mkdir .chefe de cozinha 

Use o chef-server-ctl para criar um usuário. Neste exemplo, altere o seguinte para atender às suas necessidades: user_name, primeiro_name, last_name, email e senha. Ajuste user_name.Pem, e deixe o .Extensão PEM.

Chef-Server-CTL User-Create User_name First_Name Last_Name Email 'Senha'-Filenome ~/.chef/user_name.PEM
root@ubuntuBox1: ~# chef-server-ctl user-create chefadmin chef administrador chefadmin @@ ubuntuBox1.com '*******' -Filenome ~///.Chef/Chefadmin.PEM 

Para visualizar a lista de todos os usuários em seu servidor Chef, emitir o seguinte comando:

root@ubuntubox1: ~# chef-server-ctl-list chefadmin pivotal 

Crie uma organização e adicione o usuário criado na etapa anterior. Substitua org_name por um identificador curto para a organização, org_full_name com o nome completo das organizações, user_name com o nome de usuário criado na etapa acima e org_name.PEM com o curto identificador da organização, seguido de .PEM.

Chef-Server-Ctl Org-Create Org_name "org_full_name" --association_user user_name--filename ~/.chef/org_name.PEM
raiz@ubuntubox1: ~# chef-server-ctl org-create infraestrutura de chef de chef-on-ubuntu "no ubuntu 18.04 "--association_user Chefadmin -Filenome ~/.Chef/Chef-on-Ubuntu.PEM 


Para visualizar a lista de todas as organizações do seu servidor chef, use o seguinte comando:

root@ubuntubox1: ~# chef-server-ctl org-list chef-on-ubuntu 

Com o servidor Chef instalado e as chaves RSA geradas, começaremos a configurar a estação de trabalho do chef. A estação de trabalho é onde todas as principais configurações serão criadas para seus nós.

Instale e configure a estação de trabalho do chef

A estação de trabalho do chef é onde você cria e configura quaisquer receitas, livros de receitas, atributos e outras mudanças necessárias para gerenciar seus nós. Embora essa possa ser uma máquina local executando qualquer sistema operacional, há algum benefício em manter um servidor remoto como sua estação de trabalho para que você possa acessá -lo de qualquer lugar.

Nesta seção, você baixará e instalará o pacote de estação de trabalho do chef, que fornece todas as ferramentas também incluídas no chefdk, o kit de desenvolvimento do chef.

Baixe a última estação de trabalho do chef:

root@ubuntuBox2: ~# wget https: // pacotes.chefe de cozinha.io/arquivos/estábulo/chef-workstation/0.2.43/Ubuntu/18.04/Chef-Workstation_0.2.43-1_AMD64.Deb --2019-06-03 13: 35: 51-- https: // pacotes.chefe de cozinha.io/arquivos/estábulo/chef-workstation/0.2.43/Ubuntu/18.04/Chef-Workstation_0.2.43-1_AMD64.Pacotes de resolução de Deb.chefe de cozinha.IO (pacotes.chefe de cozinha.io)… 151.101.142.110 Conectando -se a pacotes.chefe de cozinha.IO (pacotes.chefe de cozinha.io) | 151.101.142.110 |: 443… conectado. Solicitação HTTP enviada, Aguardando Resposta… 200 OK Comprimento: 129713682 (124m) [Application/X-Debian-Package] Salvando para: 'Chef-Workstation_0.2.43-1_AMD64.Deb 'Chef-Workstation_0.2.43-1_AMD64.Deb 100%[================================================ =======================================>] 123.70m 1.51MB/S nos anos 80 2019-06-03 13:37:17 (1.55 MB/S) - 'Chef -WorkStation_0.2.43-1_AMD64.Deb 'salvou [129713682/129713682] 

Instale a estação de trabalho do chef:

root@ubuntubox2: ~# dpkg -i chef -workstation_*.Deb selecionando o pacote de pacote anteriormente não selecionado. (Lendo o banco de dados… 117468 arquivos e diretórios atualmente instalados.) Preparando-se para descompactar o chef-workstation_0.2.43-1_AMD64.Deb… descompactar o Chef-WorkStation (0.2.43-1)… Configuração do Chef-WorkStation (0.2.43-1)… Para executar o aplicativo experimental de estação de trabalho do chef, use o gerenciador de pacotes da sua plataforma para instalar estas dependências: libgconf-2.então.4 => Não encontrado, você pode iniciar o aplicativo executando 'Chef-WorkStation-App'. O aplicativo estará disponível na bandeja do sistema. Obrigado por instalar a estação de trabalho do chef! Você pode encontrar algumas dicas sobre como começar em https: // chef.sh/ sh/ 

Agora precisamos criar o repositório de chefs. O diretório chef-repo armazenará seus livros de receitas chefs e outros arquivos relacionados.

# Chef Gereate Repo Chef-Repo 

Criar uma .Subdiretório Chef. O .O subdiretório do chef armazenará o arquivo de configuração da faca e o .Arquivos PEM usados ​​para autenticação de pares de chave RSA com o servidor Chef. Vá para o diretório Chef-Repo:

raiz@ubuntuBox2: ~# mkdir ~/chef-repo/.Chef root@ubuntubox2: ~# CD Chef-repo root@ubuntubox2: ~/chef-repo# 


Autenticação entre o servidor chef e a estação de trabalho e/ou os nós é concluída com a criptografia de chave pública. Isso garante que o servidor chef se comunique apenas com máquinas confiáveis. Nesta seção, as chaves privadas da RSA, geradas ao configurar o servidor Chef, serão copiadas para a estação de trabalho para permitir a comunicação entre o servidor do chef e a estação de trabalho.

Vamos gerar um par de chaves RSA no servidor de estação de trabalho. Este par de teclas será usado para obter acesso ao servidor chef e depois transferir seus .Arquivos PEM:

raiz@ubuntuBox2: ~# ssh -keygen -b 4096 Gerando par public/privado rsa par. Digite o arquivo para salvar a chave (/root/.ssh/id_rsa): diretório criado '/root/.ssh '. Digite a senha (vazia sem senha): Digite a mesma senha novamente: Sua identificação foi salva em /raiz / /.ssh/id_rsa. Sua chave pública foi salva em /raiz /.ssh/id_rsa.bar. A principal impressão digital é: sha256: sr+nlOq6vsc7rx4zmminp3skdk4fyejh1iloknm1ymg [email protected] a imagem Randomart da chave é: + --- [RSA 4096] ---- + |… o. | |.E+ oo… | | * o.o… | | + o… o + | |… Oos = . | | +o = oo+ . | | Oo+oo. | | ooo.+. | | o = b =*. | + ---- [sha256] -----+ root@ubuntubox2: ~# 

Carregue a chave pública do nó da estação de trabalho para o nó do servidor Chef.

root@ubuntuBox2: ~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id: informações: fonte de chave (s) a ser instalada: "/root/.ssh/id_rsa.pub "/usr/bin/ssh-copy-id: informações: tentando fazer login com a nova (s) chave (s), para filtrar os que já estão instalados/usr/bin/ssh-copy-id: info: 1 chave (s) permanecem instalados - se você for solicitado agora, é para instalar o novo Keys [email protected] de com: Número de chaves adicionadas: 1 Agora tente fazer login na máquina, com: "ssh '[email protected] '"e verifique se apenas as chaves que você queria foram adicionadas. raiz@ubuntuBox2: ~# 

Copie o .Arquivos PEM do seu servidor chef para sua estação de trabalho usando o comando scp.

root@ubuntubox2: ~# scp [email protected]: ~///.chefe de cozinha/*.PEM ~/Chef-Repo/.Chef/ Chefadmin.PEM 100% 1674 27.9KB/S 00:00 Chef-on-Ubuntu.PEM 100% 1674 496.8kb/s 00:00 

Confirmar que os arquivos foram copiados com sucesso, listando o conteúdo do .diretório chef. O .Os arquivos PEM devem ser listados.

raiz@ubuntuBox2: ~# ls ~/chef-repo/.Chef Chefadmin.PEM Chef-on-Ubuntu.PEM 


Gerar um novo livro de receitas de chef:

root@ubuntubox2: ~# chef gerar livros de receita chef-primeiro-cookbook hífens são desencorajados em nomes de livros de receitas, pois podem causar problemas com recursos personalizados. Ver https: // docs.chefe de cozinha.io/ctl_chef.HTML#Chef-Generate-Cookbook para obter mais informações. Gerando o livro de receitas chef -primeiro -cookbook - garantindo conteúdo correto do arquivo de livro de receitas - garantindo a configuração da entrega - garantindo a entrega correta, criação de conteúdo do livro de receitas, seu livro de receitas está pronto. Digite 'CD Chef-primeiro-cookbook' para entrar. Existem vários comandos que você pode executar para começar a desenvolver e testar localmente seu livro de receitas. Digite 'Entrega local -Help' para ver uma lista completa. Por que não começar escrevendo um teste? Os testes para a receita padrão são armazenados em: test/integration/default/default_test.RB Se você preferir mergulhar bem, a receita padrão pode ser encontrada em: Receitas/Padrão.rb 

Gere o chef-repo e vá para o diretório recém-criado:

# Chef Gereate App Chef-Repo # CD Chef-Repo 

Configurar faca e bootstrapping um nó cliente

Crie um arquivo de configuração de facas navegando para ~/chef-repo/.diretório chef e criação de um arquivo chamado Config.RB usando seu editor de texto preferido.

Copie a seguinte configuração na configuração.Arquivo RB:

 current_dir = arquivo.Dirname (__ file__) log_level: info log_location stdout node_name 'node_name' client_key "Usuário.PEM "validation_client_name 'org_name-validator' validation_key" organizador organizador.PEM "CHEF_SERVER_URL 'HTTPS: // Ubuntubox1.com/organizações/org_name 'cache_type' BasicFile 'cache_options (: path => "#Env [' home ']/.Chef/Checksums ") Cookbook_Path ["#current_dir/…/books "] 
cópia de

O valor para Node_name deve ser o nome de usuário criado no servidor Chef.
Mudar usuário.PEM sob client_key para refletir o .Arquivo PEM para Usuário do Chef.
A validação_client_name deve ser o org_name da organização seguido de -validador.
Organização-Validador.PEM no caminho Validation_Key deve ser definido como Org_Name seguido de -Validator.PEM.
Finalmente, o chef_server_url deve ser o domínio do servidor de chef com /organizações /org_name anexado. Certifique -se de substituir org_name pelo nome da organização.

Vá para o diretório Chef-Repo e copie os certificados SSL necessários do servidor:

raiz@ubuntubox2: ~/chef-repo/.Chef# CD… root@ubuntubox2: ~/chef-repo# faca ssl busca aviso: certificados de ubuntubox1.com será buscado e colocado no seu diretório Trusted_Cert (/root/chef-repo/.Chef/Trusted_certs). A faca não tem meios para verificar esses são os certificados corretos. Você deve verificar a autenticidade desses certificados após o download. Adicionando certificado para ubuntubox1_com in/root/chef-repo/.Chef/Trusted_Certs/Ubuntubox1_com.Crt 


Confirme essa configuração.RB está configurado corretamente executando a lista de clientes. Este comando deve gerar o nome do validador.

root@ubuntubox2: ~/chef-repo# lista de clientes de faca chef-on-ubuntu-validador 

Bootstrapping Um nó instala o cliente Chef no nó e valida o nó. Isso permite que o nó leia no servidor Chef e puxe e aplique as atualizações de configuração necessárias detectadas pelo Chef-Client.
Da estação de trabalho, navegue para ~/chef-repo/.Diretório Chef:

# cd ~/chef-repo/.chefe de cozinha 

Bootstrap o nó do cliente usando o usuário root do nó do cliente ou um usuário com privilégios elevados:

raiz@ubuntubox2: ~/chef-repo/.Chef# bootstrap de faca ubuntubox3.com -x root -p *******-Nó-nó-Nome-Client-node Criando novo cliente para nó chef-client Criando um novo nó para nó chef-cliente conectando-se ao ubuntuBox3.com ubuntuBox3.com -----.com download https: // omnitruck-direct.chefe de cozinha.IO/chef/instalação.sh ubuntubox3.com arquivo /tmp /instalação.sh.2019/install.sh ubuntubox3.com Tentando wget… ubuntuBox3.com Ubuntu 18.04 x86_64 UbuntuBox3.com obter informações para o chef estável 14 para ubuntu… ubuntubox3.com download https: // omnitruck-direct.chefe de cozinha.io/estável/chef/metadata?v = 14 & p = Ubuntu & PV = 18.04 & m = x86_64 ubuntubox3.com arquivo /tmp /instalação.sh.2023/metadados.txt ubuntuBox3.com Tentando wget… ubuntuBox3.COM SHA1 ED9B1FCDAF947D9A3D60E6D196308183A082BCFF UBUNTUBOX3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708f ubuntuBox3.com url https: // pacotes.chefe de cozinha.io/arquivos/estábulo/chef/14.13.11/Ubuntu/18.04/Chef_14.13.11-1_AMD64.Deb ubuntuBox3.com versão 14.13.11 UbuntuBox3.com o arquivo de metadados baixados parece válido… ubuntubox3.com download https: // pacotes.chefe de cozinha.io/arquivos/estábulo/chef/14.13.11/Ubuntu/18.04/Chef_14.13.11-1_AMD64.Deb ubuntuBox3.com arquivo /tmp /instalação.sh.2023/chef_14.13.11-1_AMD64.Deb ubuntuBox3.com Tentando wget… ubuntuBox3.com comparação de soma de verificação com sha256sum… ubuntubox3.com instalação do chef 14 ubuntubox3.com instalação com dpkg… ubuntubox3.com selecionando chef de pacote anteriormente não selecionado. (Lendo o banco de dados… 117468 arquivos e diretórios atualmente instalados.) ubuntuBox3.com preparação para descompactar… /chef_14.13.11-1_AMD64.Deb… UbuntuBox3.com chef de desempacotar (14.13.11-1)… ubuntubox3.com configuração de chef (14.13.11-1)… ubuntubox3.com obrigado por instalar o Chef Infra Client! Para obter ajuda para começar a visitar https: // aprenda.chefe de cozinha.io ubuntubox3.com iniciar o primeiro cliente Chef Run… ubuntubox3.com o cliente do chef inicial, versão 14.13.11 UbuntuBox3.com resolução de livros de receitas para a lista de execução: [] ubuntubox3.com síncronização de livros de receitas: ubuntubox3.com instalação do livro de receitas gemas: ubuntubox3.com compilos de receitas… ubuntubox3.com [2019-06-03T14: 01: 44+04: 00] Warn: Node Chef-Client-Node tem uma lista de execução vazia. ubuntubox3.com convergindo 0 recursos ubuntuBox3.com ubuntuBox3.com manipuladores de corrida: ubuntubox3.com manipuladores de corrida completos ubuntubox3.com o cliente chef terminado, 0/0 recursos atualizados em 05 segundos confirmam que o nó foi inicializado listando os nós do cliente: root@ubuntuBox2: ~/chef-repo/.chefe de cozinha# 

Confirme que o nó foi inicializado com sucesso, listando os nós:

raiz@ubuntubox2: ~/chef-repo/.Chef# faca lista de nó Chef-Client-node Root@ubuntubox2: ~/chef-repo/.Chef# Faca Nó Mostrar Nó Chef-Client Nome: Chef-Client Node Ambiente: _Default Fqdn: UbuntaBox3.com IP: 192.168.1.107 Run List: Funções: Receitas: Plataforma: Ubuntu 18.04 Tags: 

Conclusão

Neste artigo detalhado, aprendemos sobre a ferramenta de gerenciamento de configuração do chef com seu entendimento básico e visão geral de seus componentes com instalação e configuração. Você pode aprender mais sobre o chef visitando o site do chef i.e. https: // www.chefe de cozinha.io/

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Mastering Bash Script Loops
  • Loops aninhados em scripts de basquete
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Coisas para instalar no Ubuntu 22.04
  • Com que frequência você tem que reiniciar seu servidor Linux?
  • Ubuntu 20.04 Guia