Instale Chef Server e estação de trabalho no Ubuntu 20.04
Bem-vindo ao guia de hoje sobre como instalar Chef Server e Workstation no Ubuntu 20.04 (Focal Fossa). 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 é implantada, configurada 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.
A empresa por trás do servidor de automação Chef trabalhou em outras ferramentas de automação que são:
- Chef – Para automação de infraestrutura
- Habitat – Automação de aplicativos
- INSPEC – Automação de conformidade
Siga as etapas nas próximas seções abaixo para instalar e configurar o Chef Server no servidor Ubuntu 20.04 Linux.
Etapa 1: atualize o sistema e defina o nome do host
Precisamos atualizar nosso sistema para garantir que todos os pacotes instalados sejam as versões mais recentes.
sudo apt update
sudo apt -y upgrade
Defina o nome do host do servidor que será o nome DNS do seu Chef Server implantado no Ubuntu 20.04.
sudo hostnamectl set-hostname chef-server.computingforgeeks.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 /ect/hosts
192.168.200.10 chef-server.example.com
Instale também alguns outros pacotes básicos em sua máquina Ubuntu.
sudo apt -y install curl wget bash-completion
Depois de instalar esses pacotes e atualizar sua máquina, recomendo que você reinicie.
sudo reboot
Etapa 2: 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:
- Configure o Postfix como um servidor SMTP somente envio no Ubuntu
Etapa 3: 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 o pacote chrony no Ubuntu 20.04.
sudo apt -y install chrony
Defina o fuso horário correto para que a data seja escolhida automaticamente.
sudo timedatectl set-timezone Africa/Nairobi
Você pode optar por restringir o acesso ao servidor NTP, por exemplo, dos nós do cliente Chef, definido como abaixo:
restrict 192.168.18.0 mask 255.255.255.0 nomodify notrap
Onde 192.168.18.0 é a sub-rede IP da sua rede local. Reinicie o serviço NTP após fazer a alteração:
sudo systemctl restart chrony
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 chronyc sources
Confirme a sincronização de horário:
$ timedatectl
Local time: Fri 2020-07-10 20:38:57 EAT
Universal time: Fri 2020-07-10 17:38:57 UTC
RTC time: Fri 2020-07-10 17:38:58
Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Em clientes Chef, instale o ntp e defina o servidor NTP para o endereço IP do servidor Chef
sudo apt install chrony
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 4: 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 14.11.21
. Este é o pacote que iremos baixar e instalar:
VERSION="14.11.21"
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/18.04/chef-server-core_${VERSION}-1_amd64.deb
Assim que o download for concluído, instale o pacote usando o comando dpkg
:
sudo apt install ./chef-server-core_${VERSION}-1_amd64.deb
Estado da amostra:
....
The following NEW packages will be installed:
chef-server-core
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/246 MB of archives.
After this operation, 956 MB of additional disk space will be used.
Get:1 /home/ubuntu/chef-server-core_14.11.21-1_amd64.deb chef-server-core amd64 14.11.21-1 [246 MB]
Selecting previously unselected package chef-server-core.
(Reading database ... 63527 files and directories currently installed.)
Preparing to unpack .../chef-server-core_14.11.21-1_amd64.deb ...
Unpacking chef-server-core (14.11.21-1) ...
Setting up chef-server-core (14.11.21-1) ...
Thank you for installing Chef Infra Server!
Run 'chef-server-ctl reconfigure' to configure your Chef Infra Server
For more information on getting started see https://docs.chef.io/server/
Aguarde a conclusão da instalação e configure o Chef Server:
sudo chef-server-ctl reconfigure
Antes de iniciar a configuração, você precisa aceitar o contrato de licença.
....
Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/
Licenses that need accepting:
* Chef Infra Server
* Chef Infra Client
* Chef InSpec
Do you accept the 3 product licenses (yes/no)?
> yes
Persisting 3 product licenses...
✔ 3 product licenses persisted.
+---------------------------------------------+
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:
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 -f ./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 5: 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:
- Como instalar o Chef Development Kit/Workstation no Ubuntu
Para usuários do Arch Linux, use:
- Como instalar o Chef Development Kit no Arch Linux
Etapa 6: 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