Questo è il comando chake che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
chake - configurazione serverless con chef
INTRODUZIONE
chake è uno strumento che ti aiuta a gestire più host con, senza la necessità di uno chef
server. La configurazione è gestita in una directory locale, che probabilmente dovrebbe essere sotto
controllo della versione con git(1) o qualsiasi altra cosa. La configurazione viene solitamente distribuita tramite rsync
su SSH e applicato invocando chef solista(1) su SSH su ciascun host.
CREARE LA REPOSITORY
$ chiama init
[crea] nodes.yaml
[ mkdir] nodi.d/
[crea] config.rb
[ mkdir] config/ruoli
[ mkdir] libri di cucina/basi/ricette/
[crea] libri di cucina/basi/ricette/default.rb
[crea] Rakefile
Una breve spiegazione dei file creati:
· nodes.yaml: dove elencherai gli host che gestirai e quali ricette
applicare a ciascuno di essi.
· nodes.d: una directory con più file nello stesso formato di nodes.yaml. Tutti i files
corrispondente a *.yaml in esso verrà aggiunto all'elenco dei nodi.
· config.rb: contiene la configurazione di chef-solo. Puoi modificarlo, ma di solito tu
non sarà necessario.
· config/roles: la directory è dove puoi mettere le tue definizioni di ruolo.
· libri di cucina: directory dove conserverai i tuoi libri di cucina. Un esempio di libro di cucina chiamato
"basic" viene creato, ma sentiti libero di rimuoverlo e aggiungere libri di cucina reali.
· Rakefile: contiene solo la riga "chake" richiesta. Puoi aumentarlo con altre attività
specifico per la vostra intrastruttura.
Dopo che il repository è stato creato, puoi chiamare chake o rake, poiché sono completamente
equivalente.
GESTIONE NODI
Subito dopo aver creato il tuo repository, il contenuto di nodes.yaml è il seguente:
host1.miaazienda.com:
lista_esegui:
- ricetta[basi]
Puoi elencare i tuoi host con nodi di rake:
$ nodi di rake
host1.miaazienda.com ssh
Per aggiungere più nodi, aggiungi semplicemente nodes.yaml:
host1.miaazienda.com:
lista_esegui:
- ricetta[basi]
host2.miaazienda.com:
lista_esegui:
- ricette[basi]
E chake ora sa del tuo nuovo nodo:
$ nodi di rake
host1.miaazienda.com ssh
host2.miaazienda.com ssh
PREPARAZIONI NODI A BE GESTITO
I nodi hanno pochissimi requisiti iniziali per essere gestiti con chake:
· Il nodo deve essere accessibile tramite SSH.
· L'utente che ti connetti al nodo deve essere root o avere il permesso di eseguire sudo (in
nel qual caso sudo deve essere installato).
A Nota on parola d'ordine richiede: ogni volta che chake chiama ssh su un nodo, potrebbe esserti richiesto di
digita la tua password; ogni volta che chake chiama sudo sul nodo, potrebbe essere necessario digitare
nella tua password. Per la gestione di uno o due nodi questo probabilmente va bene, ma per i più grandi
numero di nodi non è pratico. Per evitare richieste di password, puoi:
· Configurare l'autenticazione basata su chiave SSH. Questo è più sicuro rispetto all'utilizzo di password.
Già che ci sei, probabilmente vorrai anche disabilitare l'autenticazione della password
completamente e consenti solo l'autenticazione basata su chiave
· Configura l'accesso sudo senza password per l'utente che usi per connetterti ai tuoi nodi.
VERIFICA CONNETTIVITA ' E INIZIALE HOST IMPOSTARE
Per verificare se gli host sono configurati correttamente, puoi utilizzare l'attività di controllo:
$ assegno di rastrellamento
Questo eseguirà il comando sudo true su ciascun host. Se questo passa senza che tu debba
password, sei sicuro che
· hai accesso SSH a ciascun host; e
· l'utente a cui ti stai connettendo ha sudo senza password configurato correttamente.
$ assegno di rastrellamento
APPLICAZIONE LIBRI DI CUCINA
Per applicare la configurazione a tutti i nodi, eseguire
$ rastrello converge
Per applicare la configurazione a un singolo nodo, eseguire
$ rastrello converge:$NODO
Per applicare una singola ricetta su tutti i nodi, esegui
$ rake applicare[myrecipe]
Per applicare una singola ricetta su un nodo specifico, esegui
$ rake applica:$NODE[miaricetta]
Se non indichi una ricetta nella riga di comando, te ne verrà richiesta una.
Per eseguire un comando shell su tutti i nodi, esegui
$ rake run[comando]
Se il comando che vuoi eseguire contiene spazi o altri caratteri speciali fai
il guscio, devi citarli.
Per eseguire un comando shell su un nodo specifico, esegui
$ rake run:$NODE[comando]
Se non comunichi un comando nella riga di comando, te ne verrà richiesto uno.
Per controllare le attività esistenti, esegui
$ rastrello -T
SCRITTURA LIBRI DI CUCINA
Poiché chake è in realtà un wrapper per Chef Solo, dovresti leggere la [documentazione dello chef](
).
In particolare, guarda la [Documentazione Chef Solo](
chef_solo.html>).
LA NODE STIVALI PROCESSO
Quando chake agisce su un nodo per la prima volta, deve avviarlo. Il bootstrap
il processo include le seguenti operazioni:
· installazione di chef e rsync
· disabilitare il demone del client chef
· impostare il nome host
NODE URL
Le chiavi nell'hash rappresentato in nodes.yaml è un URL del nodo. Tutti i componenti di
l'URL ma il nome host sono facoltativi, quindi solo elencare i nomi host è la forma più semplice di
specificando i tuoi nodi. Ecco tutti i componenti degli URL del nodo:
[backend://][nomeutente@]nomehost[:porta][/percorso]
· backend: backend da utilizzare per connettersi all'host. ssh o locale (predefinito: ssh)
· username: nome utente con cui connettersi (predefinito: il nome utente sulla workstation locale)
· hostname: il nome host a cui connettersi (predefinito: nessuna)
· porta: numero di porta a cui connettersi (predefinito: 22)
· /path: dove memorizzare i libri di cucina nel nodo (default: /var/tmp/chef.$USERNAME)
EXTRA CARATTERISTICHE
# GANCI
È possibile definire attività di rake che verranno eseguite prima del bootstrap dei nodi, prima
caricare il contenuto della gestione della configurazione sui nodi e prima della convergenza. Per fare questo,
devi solo migliorare le attività corrispondenti:
· bootstrap_common: eseguito prima del bootstrap dei nodi (anche se i nodi sono già stati
bootstrap)
· upload_common: eseguito prima di caricare il contenuto sul nodo
· converge_common: eseguito prima della convergenza (es. chef in esecuzione)
Esempio:
compito: bootstrap_common fare
sh './scripts/pre-bootstrap-checks'
fine
# CRIPTATO FILE
Tutti i file che terminano con corrispondenza .gpg e .asc verranno decifrati con GnuPG prima di essere inviati a
il nodo. Puoi usarli per memorizzare password e altre informazioni sensibili (chiavi SSL,
ecc) nel repository insieme al resto della configurazione.
# DEPOSITO-LOCALE SSH CONFIGURAZIONE
Se hai bisogno di parametri di configurazione SSH speciali, puoi creare un file chiamato .ssh_config
(o qualunque sia il nome del file che hai nella variabile d'ambiente $CHAKE_SSH_CONFIG, vedi sotto
per i dettagli) nella radice del tuo repository e chake lo utilizzerà quando chiamerà ssh.
# REGISTRAZIONE IN A A HOST
Per accedere facilmente a uno dei tuoi host, esegui rake login:$HOSTNAME. Questo sarà
usa automaticamente la configurazione SSH locale del repository come sopra in modo da non doverlo fare
digita sempre -F .ssh_config.
# JOGGING vs RUNNING TUTTO SSH INVOCAZIONI CON ALCUNI PREFISSO COMANDO
A volte, vorrai o dovrai anche aggiungere un prefisso alle tue invocazioni SSH
comando per, ad esempio, eseguire il tunneling attraverso un nodo di uscita centrale. Puoi farlo da
impostando $CHAKE_SSH_PREFIX nel tuo ambiente. Esempio:
CHAKE_SSH_PREFIX=Il rastrello tsocks converge
Quanto sopra farà sì che tutte le chiamate SSH a tutti gli host vengano chiamate come tsocks ssh [...]
# CONVERGENTI LOCALE HOST
Se vuoi gestire la tua workstation locale con chake, puoi dichiarare un nodo locale come
questo in nodes.yaml:
local://fulmine:
lista_esegui:
- ruolo[stazione di lavoro]
Per applicare la configurazione all'host locale, puoi usare il rake convenzionale
converse:thunderbolt, o il rastrello di destinazione speciale locale.
Quando convergono tutti i nodi, chake salterà i nodi dichiarati con local://
backend e il cui nome host non corrisponde al nome host nella dichiarazione. Per esempio:
locale://desktop:
lista_esegui:
- ruolo[stazione di lavoro]
locale://computer portatile:
lista_esegui:
- ruolo[stazione di lavoro]
Quando esegui rake converge sul desktop, il laptop verrà saltato e viceversa.
AMBIENTE VARIABILI
· $CHAKE_SSH_CONFIG: file di configurazione SSH locale. Il valore predefinito è .ssh_config.
· $CHAKE_SSH_PREFIX: Comando per prefissare le chiamate SSH (e rsync su SSH).
· $CHAKE_RSYNC_OPTIONS: opzioni extra da passare a rsync. Utile ad esempio per escludere grandi
file da caricare su ciascun server.
· $CHAKE_NODES: File contenente l'elenco dei server da gestire. Predefinito: nodes.yaml.
· $CHAKE_NODES_D: Directory contenente i file server di definizione del nodo da gestire.
Predefinito: nodes.d.
· $CHAKE_TMPDIR: Directory utilizzata per memorizzare i file temporanei della cache. Predefinito: tmp/chake.
· $CHAKE_CHEF_CONFIG: File di configurazione Chef, relativo alla radice del repository.
Predefinito: config.rb.
Usa chake online utilizzando i servizi onworks.net