Pesquisa de site

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:

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

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

Artigos relacionados: