Pesquisa de site

Instale o Chef Automation Server no Ubuntu 18.04 LTS


Neste guia, abordaremos a instalação e configuração do servidor Chef Automation no Ubuntu 18.04 Bionic Beaver. Chef é a solução líder de automação de código aberto, completa e contínua para infraestrutura e aplicativos que leva você desde o desenvolvimento até a produção. A empresa Chef é a fundadora do movimento DevOps e fez um grande trabalho para produzir os seguintes mecanismos de automação:

  1. Chef – Para automação de infraestrutura
  2. Habitat – Automação de aplicativos
  3. INSPEC – Automação de conformidade

Chef é uma solução de automação poderosa projetada para ajudá-lo a transformar sua infraestrutura em um código. A infraestrutura pode ser local, na nuvem ou em um ambiente híbrido. Com o Chef, você automatiza a forma como a infraestrutura é configurada, implantada e gerenciada.

O servidor Chef atua como um repositório central para seus livros de receitas, bem como para informações sobre cada nó que ele gerencia. Siga nossos passos abaixo para ter um Chef Server funcionando em seu servidor Ubuntu 18.04.

Etapa 1: atualize o sistema e defina o nome do host

Certifique-se de que todos os pacotes do sistema estejam atualizados

sudo apt update
sudo apt install curl wget

Definir nome de host do servidor

sudo hostnamectl set-hostname chef-server.example.com

Se você tiver um servidor DNS ativo, defina o registro A adequadamente. Para instalações sem servidor DNS, defina o registro no arquivo /etc/hosts 

$ sudo vim /etc/hosts
192.168.18.39 chef-server.example.com

Etapa 2: definir o AppArmor para modo de reclamação ou desativado

No Ubuntu 18.04. O AppArmor está habilitado no modo de aplicação por padrão. O Chef não tem um perfil para executar o AppArmor, então você deve configurá-lo para o modo Reclamação ou desativado.

Verifique se o AppArmor está ativado:

$ sudo apparmor_status
apparmor module is loaded.
16 profiles are loaded.
16 profiles are in enforce mode.
   /sbin/dhclient
   /usr/bin/lxc-start
   /usr/bin/man
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/lib/snapd/snap-confine
   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/sbin/haveged
   /usr/sbin/tcpdump
   lxc-container-default
   lxc-container-default-cgns
   lxc-container-default-with-mounting
   lxc-container-default-with-nesting
   man_filter
   man_groff
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /usr/sbin/haveged (802) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Se a resposta não for “0 processos estão em modo de aplicação” ou “0 perfis estão em modo de aplicação. ”, defina-o como Reclamação ou modo desativado

Para definir o AppArmor para o modo de reclamação, execute:

sudo aa-complain /etc/apparmor.d/*

Para desativar totalmente o AppArmor, execute:

sudo invoke-rc.d apparmor kill
sudo update-rc.d -f apparmor remove

Verifique novamente o status:

sudo apparmor_status

Etapa 3: configurar a retransmissão de correio local

O servidor Chef usa email para enviar notificações para vários eventos:

  • Redefinições de senha
  • Convites de usuários
  • Notificações de failover
  • Notificações de trabalho com falha

Configure um agente de transferência de correio local no servidor Chef usando o guia:

  • Instale e configure o Postfix como um servidor SMTP somente envio no Ubuntu

Etapa 4: configurar a sincronização de horário NTP

O servidor Chef é particularmente sensível ao desvio do relógio e requer que os sistemas nos quais está sendo executado estejam conectados ao Network Time Protocol (NTP).

Instale ntp no Ubuntu

sudo apt install ntp

Opcionalmente, você pode editar /etc/ntp.conf para adicionar servidores NTP próximos a você. Para restringir o acesso ao servidor NTP, por exemplo, dos nós do cliente Chef, defina como abaixo

restrict 192.168.18.0 mask 255.255.255.0 nomodify notrap

Reinicie o serviço NTP após fazer a alteração

sudo systemctl restart ntp

Se você tiver o firewall UFW ativado, não se esqueça de permitir a porta NTP

sudo ufw allow ntp

Mostrar status do NTP

sudo ntpq -p

Em clientes Chef, instale o ntp e defina o servidor NTP para o endereço IP do servidor Chef

$ sudo apt install ntp
$ sudo vim /etc/ntp.conf

Remova o comentário das linhas do servidor do pool NTP e especifique o endereço IP do servidor Chef

#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

server  192.168.18.39

Etapa 5: Baixe e instale o pacote do servidor Chef

Primeiro, verifique a versão mais recente do servidor Chef na página de downloads do Chef.

No momento em que este livro foi escrito, o lançamento recente era a versão 21.12.720. Este é o pacote que iremos baixar e instalar

VERSION="21.12.720"
wget https://packages.chef.io/files/stable/chef-workstation/$VERSION/ubuntu/18.04/chef-workstation_$VERSION-1_amd64.deb

Assim que o download for concluído, instale o pacote usando o comando apt :

sudo apt install -f ./chef-workstation_$VERSION-1_amd64.deb

Status da amostra

$ sudo dpkg -i chef-server-core_${VERSION}-1_amd64.deb
Selecting previously unselected package chef-server-core.
(Reading database ... 105387 files and directories currently installed.)
Preparing to unpack chef-server-core_20.7.96-1_amd64.deb ...
Unpacking chef-server-core (20.7.96-1) ...
Setting up chef-server-core (20.7.96-1) ...

Aguarde a conclusão da instalação e configure o Chef Server

sudo chef-server-ctl reconfigure

Esta etapa pode levar alguns minutos para ser concluída, pois muitos serviços estão configurados.

Crie uma conta de administrador

O formato é:

sudo chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename FILE_NAME
  • Uma chave privada RSA é gerada automaticamente.
  • Esta é a chave privada do usuário e deve ser salva em um local seguro.
  • A opção--filename salvará a chave privada RSA no caminho absoluto especificado.

Exemplo :

sudo chef-server-ctl user-create chefadmin Chef Admin \
  [email  'StrongPassword' \
  --filename /home/chefadmin.pem

Além disso, crie uma organização. A sintaxe é:

sudo chef-server-ctl org-create short_name 'full_organization_name' \
  --association_user user_name \
  --filename ORGANIZATION-validator.pem
  • O nome deve começar com uma letra minúscula ou dígito,
  • O nome completo deve começar com um caractere que não seja um espaço em branco
  • A opção --association_user associará o user_name ao grupo de segurança admins no servidor Chef.
  • Uma chave privada RSA é gerada automaticamente. Esta é a chave do validador do chef e deve ser salva em um local seguro.
  • A opção --filename salvará a chave privada RSA no caminho absoluto especificado.

Veja exemplo abaixo

sudo chef-server-ctl org-create mycompany 'Company X, Inc.' \
  --association_user chefadmin \
  --filename /home/mycompany-validator.pem

As chaves geradas devem estar disponíveis no diretório /home 

# ls /home/
chefadmin.pem  mycompany-validator.pem

Instalar Chef Gerenciar

Chef Manage é um complemento premium que fornece uma interface gráfica de usuário para gerenciar tarefas comuns do servidor Chef. É gratuito para até 25 nós.

Vamos instalar o console de gerenciamento

sudo chef-server-ctl install chef-manage 
sudo chef-server-ctl reconfigure 
sudo chef-manage-ctl reconfigure

Você também pode instalar o Chef Manage a partir de um pacote .deb 

VER="3.2.20"
wget https://packages.chef.io/files/stable/chef-manage/$VER/ubuntu/18.04/chef-manage_$VER-1_amd64.deb
sudo apt install ./chef-manage_${VER}-1_amd64.deb
sudo chef-manage-ctl reconfigure

Todos os serviços do Chef Server serão executados sob o nome de usuário/grupo opscode. O nome de usuário do PostgreSQL é opscode-pgsql. Pacotes adicionais podem ser instalados em https://packages.chef.io/

Se você deseja usar ou já usa o firewall UFW, abra as portas 80 e 443 executando os comandos abaixo

sudo ufw allow proto tcp from any to any port 80,443

Você deve conseguir acessar o painel de administração da web do Chef em https://serverip/login

Faça login com o nome de usuário adicionado anteriormente. Um novo painel do Chef deve ser semelhante ao abaixo

Etapa 6: Instale o Chef Development Kit em sua máquina Workstation

Chef Workstation é onde você tem o Chef Development Kit instalado. Ele contém todas as ferramentas que você precisa para desenvolver e testar sua infraestrutura, construídas pela incrível comunidade Chef. Instale o Chef Development Kit/Workstation usando os guias abaixo:

  • Instale o Chef Development Kit/estação de trabalho no Ubuntu

Para usuários do Arch Linux, use:

  • Como instalar o Chef Development Kit no Arch Linux

Etapa 7: configurar a faca na estação de trabalho do Chef

Knife é a ferramenta de linha de comando que fornece uma interface entre sua estação de trabalho e o servidor Chef. Próxima leitura:

  • Configure o Chef Knife, carregue livros de receitas e execute uma receita em Chef Client Nodes

Artigos relacionados: