Como configurar o Chef Infra Server no CentOS 8/RHEL 8
Este artigo discutirá a instalação do Chef Server no CentOS 8/RHEL 8. Chef Infra é uma estrutura de automação de infraestrutura de código aberto que lhe dá poderes para definir o estado de seus sistemas e mantê-los dessa forma automaticamente.
Para Puppet: Instale o Puppet 6.x Master/Server no CentOS 8 | RHEL 8
O Chef Server é responsável por armazenar sua política de configuração, definida nos livros de receitas do Chef, bem como metadados pesquisáveis para cada nó gerenciado. Os nós gerenciados pelo Chef fazem check-in regularmente com o servidor Chef para garantir que suas configurações locais estejam sempre atualizadas.
Chef normalmente é composto de três partes:
- Estação de Trabalho: Este é o computador a partir do qual você escreve livros de receitas do Chef e administra toda a sua rede.
- Chef server: atua como um repositório central para seus livros de receitas de autoria, bem como para informações sobre cada nó que ele gerencia.
- Nós: Este é um computador que possui o cliente Chef instalado e é gerenciado por um servidor Chef. Um nó pode ser qualquer máquina física ou virtual da sua rede.
A estrutura é ilustrada no diagrama abaixo.
Visão geral detalhada:
Em nosso guia anterior, abordamos a instalação do Chef Server no Ubuntu 18.04 LTS. O artigo de hoje será focado na instalação do Chef Server no sistema CentOS 8/RHEL 8 Linux.
Pré-requisitos
- Um servidor CentOS/RHEL 8 com 8GB Ram alocado
- Atribua um nome de host ao servidor Chef que deve estar em seu nome de domínio.
Meu servidor tem 8GB de RAM e 4vcpus.
$ free -h
total used free shared buff/cache available
Mem: 7.6Gi 162Mi 7.2Gi 16Mi 257Mi 7.2Gi
Swap: 4.0Gi 0B 4.0Gi
$ $ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 94
Model name: Intel Core Processor (Skylake, IBRS)
Stepping: 3
CPU MHz: 3599.986
BogoMIPS: 7199.97
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
L3 cache: 16384K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear
Etapa 1: atualizar o sistema
Defina o nome de host adequado para a máquina do servidor Chef antes de atualizar.
sudo hostnamectl set-hostname chefserver.computingforgeeks.com --static
Se você não tiver um servidor DNS válido em sua rede, adicione um registro A ao arquivo /etc/hosts.
$ sudo vi /etc/hosts
10.10.1.162 chefserver.computingforgeeks.com chefserver
Em seguida, instale os pacotes padrão básicos e atualize o servidor:
sudo dnf -y install git vim wget curl bash-completion
sudo dnf -y update
sudo reboot
Etapa 2: configurar o 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).
Consulte nosso guia anterior:
Como configurar o servidor NTP usando Chrony no RHEL 8/CentOS 8
Etapa 3: Instale o Chef Server no CentOS 8/RHEL 8
Visite a página de downloads do Chef Infra Server e escolha a versão atual ou estável para baixar.
wget https://packages.chef.io/files/stable/chef-server/13.2.0/el/8/chef-server-core-13.2.0-1.el7.x86_64.rpm
Depois de baixar o pacote, instale-o com o gerenciador de pacotes de distribuição.
sudo dnf localinstall chef-server-core-13.2.0-1.el7.x86_64.rpm
Aceite a instalação pressionando a tecla y quando solicitado.
Dependencies resolved.
===================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================
Installing:
chef-server-core x86_64 13.2.0-1.el7 @commandline 328 M
Transaction Summary
===================================================================================================================================================
Install 1 Package
Total size: 328 M
Installed size: 1.0 G
Is this ok [y/N]: y
Assim que a instalação for concluída, precisamos reconfigurar os componentes do chef server para que todos os serviços do Chef Server sejam configurados corretamente e iniciados.
sudo chef-server-ctl reconfigure
Seja paciente, pois isso pode levar algum tempo para ser concluído.
.....................................................
Recipe: private-chef::partybus
* execute[set initial migration level] action run
- execute cd /opt/opscode/embedded/service/partybus && ./bin/partybus init
* ruby_block[migration-level file sanity check] action run (skipped due to not_if)
Recipe: private-chef::rabbitmq
* script[hard_kill_rabbitmq] action run
- execute "bash" "/tmp/chef-script20190920-14976-1jvsbez"
Running handlers:
Running handlers complete
Chef Infra Client finished, 482/1032 resources updated in 02 minutes 26 seconds
Chef Server Reconfigured!
O status dos componentes do Chef Server pode ser verificado executando o comando:
$ sudo chef-server-ctl status
run: bookshelf: (pid 14851) 90s; run: log: (pid 9251) 174s
run: nginx: (pid 14681) 92s; run: log: (pid 9869) 130s
run: oc_bifrost: (pid 14586) 93s; run: log: (pid 8936) 194s
run: oc_id: (pid 14678) 92s; run: log: (pid 8961) 190s
run: opscode-erchef: (pid 14882) 90s; run: log: (pid 9395) 168s
run: opscode-expander: (pid 14742) 90s; run: log: (pid 9115) 180s
run: opscode-solr4: (pid 14714) 91s; run: log: (pid 9039) 184s
run: postgresql: (pid 14576) 93s; run: log: (pid 8432) 206s
run: rabbitmq: (pid 15362) 85s; run: log: (pid 10142) 124s
run: redis_lb: (pid 9480) 164s; run: log: (pid 9479) 164s
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
.
Se você estiver usando firewalld, abra as portas http e https.
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload
Etapa 4: criar usuário administrador e organização
A conta de usuário administrador não é criada automaticamente durante a instalação. Precisamos criar um.
A sintaxe para criação de usuário é:
chef-server-ctl user create USERNAME FIRST_NAME [MIDDLE_NAME] LAST_NAME EMAIL PASSWORD
Salve as variáveis necessárias e execute comandos de criação de usuário.
# Set values
USERNAME="chefadmin"
FIRST_NAME="Chef"
LAST_NAME="Administrator"
EMAIL="[email "
KEY_PATH="/root/chefadmin.pem"
# Create user
sudo chef-server-ctl user-create ${USERNAME} ${FIRST_NAME} ${LAST_NAME} ${EMAIL} -f ${KEY_PATH} --prompt-for-password
Opções usadas:
- –prompt-for-password : Solicita a senha do usuário
- -f: Grava a chave privada no arquivo especificado em vez de STDOUT
Para visualizar a lista de usuários, execute:
$ sudo chef-server-ctl user-list
chefadmin
pivotal
Criar organização do Chef
O próximo passo é criar uma organização. Uma organização é a entidade de nível superior para controle de acesso baseado em funções no Chef Infra Server. O Chef Infra Server oferece suporte a várias organizações.
O subcomando org-create
é usado para criar uma organização. A sintaxe completa do comando é:
$ chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" \
--association_user USERNAME --filename ORGANIZATION-validator.pem (options)
Notas:
- 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
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.
Exemplo :
sudo chef-server-ctl org-create computingforgeeks 'ComputingForGeeks, Inc.' \
--association_user chefadmin \
--filename /root/computingforgeeks-validator.pem
Verifique a criação da organização:
$ sudo chef-server-ctl org-list
computingforgeeks
Você deve ter chaves privadas RSA em /root – para usuário e organização.
$ sudo find /root -name "*.pem"
/root/chefadmin.pem
/root/computingforgeeks-validator.pem
Etapa 5: instalar Chef Manage (opcional)
Chef Manage é um complemento premium que fornece um usuário gráfico
Vamos instalar o console de gerenciamento
sudo chef-server-ctl install chef-manage
sudo chef-server-ctl reconfigure
sudo chef-manage-ctl reconfigure
Você deve conseguir acessar o painel de administração web do Chef em https://serverip/login. Faça login com usuário administrador e senha criados.
Painel de gerenciamento do Chef:
Instale pacotes adicionais em https://packages.chef.io/
Curso de aprendizagem:
Etapa 6: instalar a estação de trabalho Chef
Nosso próximo artigo abordará a instalação do Chef Client & Workstation no RHEL/CentOS 8.
Como instalar a estação de trabalho Chef no CentOS 8/RHEL 8
Verifique também os guias relacionados:
Como configurar o Chef Knife, fazer upload de livros de receitas e executar uma receita em Chef Client Nodes
Como instalar o Chef Development Kit/Workstation no Ubuntu 18.04
Como instalar o Chef Development Kit no Arch Linux