Chef è una potente utility di gestione della configurazione che trasforma l'infrastruttura in codice. Con lo Chef gli utenti possono facilmente gestire, configurare e distribuire le risorse attraverso la rete dalla posizione centralizzata indipendentemente dall'ambiente (cloud, on-premise o ibrido). Questo post ti aiuterà a configurare uno chef 12 su CentOS 7 / RHEL 7
A partire dal rilascio del server Chef 11, il front-end del server Chef è scritto in Erlang e il client utilizza Ruby per gestire le modifiche alla configurazione.
Componenti di Chef:
Chef è composto da un server Chef, una o più workstation e un nodo in cui è installato il client chef. Il nome dei componenti si basa sui ruoli svolti da ciascuna macchina nell'ecosistema Chef.
Chef Server :Questo è il server hub centrale che memorizza i libri di cucina e le ricette caricati dalle workstation, a cui lo chef-client accede per l'implementazione della configurazione.
Postazioni di lavoro per chef :Qui vengono create o modificate ricette, libri di cucina e altri dettagli di configurazione dello chef. Tutti questi vengono quindi inviati al server Chef dalla workstation, dove saranno disponibili per la distribuzione su nodi chef-client.
Cliente chef :questo è il nodo di destinazione in cui vengono distribuite le configurazioni in cui è installato chef-client. Un nodo può essere qualsiasi macchina (fisica, virtuale, cloud, dispositivo di rete, ecc.)
Configura Chef 12 su CentOS 7:
Requisiti di sistema/ambiente:
Assicurati che il tuo sistema soddisfi i seguenti requisiti di risorse. Qui userò CentOS 7 come sistema operativo di base per l'installazione di Chef.
NOME HOST | INDIRIZZO IP | OS | CPU | MEMORIA | DISCO | SCOPO |
---|---|---|---|---|---|---|
chefserver.itzgeek.local | 192.168.12.11 | CentOS 7 | 4 | 4 GB | 40 GB | Chef Server |
chefdk.itzgeek.local | 192.168.12.12 | CentOS 7 | 1 | 512 MB | NA | Postazione di lavoro per chef (Kit di sviluppo per chef) |
chefclient.itzgeek.local | 192.168.12.20 | CentOS 7 | 1 | 512 MB | NA | Cliente Chef |
Prerequisiti:
L'host deve avere un nome di dominio completo.
Dovrebbe avere la voce DNS o Host attiva.
vi /etc/hosts 192.168.12.11 chefserver.itzgeek.local chefserver 192.168.12.12 chefdk.itzgeek.local chefdk 192.168.12.20 chefclient.itzgeek.local chefclient
Installa il pacchetto wget.
yum -y install wget
Chef Server:
Il server Chef funge da hub centrale per i dati di configurazione. Il server memorizza i libri di cucina, le politiche che vengono applicate ai nodi e i metadati relativi a un nodo registrato. Il nodo registrato utilizza lo chef-client per richiedere allo Chef Server i dettagli di configurazione, come ricette, modelli e distribuzione dei file.
Installa e configura Chef Server:
Scarica l'ultima versione del core del server Chef (12.10 al momento della scrittura).
wget https://packages.chef.io/stable/el/7/chef-server-core-12.10.0-1.el7.x86_64.rpm
Una volta completato il download, installa il core del server chef utilizzando il comando seguente.
rpm -ivh chef-server-core-*.rpm
Se il tuo sistema server chef non soddisfa i requisiti hardware consigliati, questo passaggio potrebbe non riuscire.
Una volta completata l'installazione, è necessario riconfigurare i componenti del server chef per fare in modo che il server funzioni insieme. La riconfigurazione potrebbe richiedere un po' più di tempo .
chef-server-ctl reconfigure
Verificare lo stato dei componenti di Chef Server utilizzando il comando seguente.
chef-server-ctl status
Risultato:
run: bookshelf: (pid 6084) 387s; run: log: (pid 6114) 385s run: nginx: (pid 5973) 417s; run: log: (pid 6276) 359s run: oc_bifrost: (pid 5816) 477s; run: log: (pid 5831) 476s run: oc_id: (pid 5961) 420s; run: log: (pid 5966) 419s run: opscode-erchef: (pid 6186) 379s; run: log: (pid 6176) 381s run: opscode-expander: (pid 6039) 388s; run: log: (pid 6071) 388s run: opscode-solr4: (pid 5992) 399s; run: log: (pid 5999) 398s run: postgresql: (pid 5805) 478s; run: log: (pid 5809) 477s run: rabbitmq: (pid 5767) 480s; run: log: (pid 5760) 481s run: redis_lb: (pid 5377) 595s; run: log: (pid 6272) 359s
Crea un utente amministratore e un'organizzazione:
Dobbiamo creare un utente amministratore. Questo utente avrà accesso per apportare modifiche ai componenti dell'infrastruttura nell'organizzazione che creeremo. Il comando seguente genererà automaticamente la chiave privata RSA e dovrebbe essere salvata in una posizione sicura.
I dettagli dell'utente sono di seguito.
Nome utente :amministratore
Nome :amministratore
Cognome :amministratore
E-mail :[email protected]
Password :password
Nome file :admin.pem
Percorso :/etc/chef
chef-server-ctl user-create admin admin admin [email protected] password -f /etc/chef/admin.pem
Comando originale:
chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' -f PATH_FILE_NAME
È giunto il momento per noi di creare un'organizzazione per tenere le configurazioni degli chef.
Nome breve :itzgeek (Nota:il nome deve iniziare con una lettera o una cifra minuscola, può contenere lettere minuscole, numeri, trattini e trattini bassi e deve essere compreso tra 1 e 255 caratteri )
Nome completo dell'organizzazione :ITzGeek Inc (Nota:deve iniziare con uno spazio non vuoto e deve essere compreso tra 1 e 1023 caratteri )
Utente dell'associazione :admin (Nota:questa opzione assocerà l'utente precedentemente creato (admin ) con gli amministratori gruppo di sicurezza sul server dello chef )
Nome file :itzgeek-validator.pem (Nota:il comando genererà automaticamente la chiave privata RSA e dovrebbe essere salvato in una posizione sicura )
Percorso :/etc/chef
chef-server-ctl org-create itzgeek "ITzGeek, Inc" --association_user admin -f /etc/chef/itzgeek-validator.pem
Comando originale:
chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem
A partire da ora, avrai due .pem chiavi in /etc/chef directory. Nel nostro caso, si chiameranno admin.pem e itzgeek-validator.pem . Presto collocheremo questi due file nella macchina della workstation Chef.
Firewall:
Il server Chef richiede che le seguenti porte siano aperte tramite il firewall. Ma abilitando solo 80 e 443 farebbe anche per noi.
Esegui il comando seguente per consentire 80 e 443 attraverso il firewall.
firewall-cmd --permanent --zone public --add-service http firewall-cmd --permanent --zone public --add-service https firewall-cmd --reloadPagine:1 2 3