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:
- Chef – Para automação de infraestrutura
- Habitat – Automação de aplicativos
- 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á ouser_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