Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempio 1: installazione di pacchetti
Importante
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su AWS re:post
L'installazione di un pacchetto è uno dei casi d'uso più comuni per le ricette e può essere molto semplice, a seconda del pacchetto. Ad esempio, la seguente ricetta installa Git su un sistema Linux.
package 'git' do
action :install
end
La risorsa package
package_name
che identifica il pacchetto. L'operazione install
indica al provider di installare il pacchetto. È possibile rendere il codice ancora più semplice saltando install
; è l'operazione predefinita della risorsa package
. Quando esegui la ricetta, Chef usa il provider appropriato per installare il pacchetto. Nel sistema Ubuntu che utilizzerai per l'esempio, il provider installa Git chiamando apt-get
.
Nota
L'installazione di software su un sistema Windows richiede una procedura diversa. Per ulteriori informazioni, consulta Installazione di software Windows.
Per utilizzare Test Kitchen per eseguire questa ricetta in Vagrant, devi prima impostare un libro di ricette e inizializzare e configurare Test Kitchen. Quanto segue è relativo a un sistema Linux, ma la procedura è essenzialmente simile per i sistemi Windows e Macintosh. Inizia aprendo una finestra del terminale, perché tutti gli esempi in questo capitolo utilizzano strumenti a riga di comando.
Per preparare il libro di ricette
-
Nella directory principale, creare una sottodirectory denominata
opsworks_cookbooks
, che conterrà tutti i libri di ricette per questo capitolo. Creare quindi una sottodirectory per questo libro di ricette denominatainstallpkg
e accedervi. -
In
installpkg
, creare un file denominatometadata.rb
che contiene il codice seguente.name "installpkg" version "0.1.0"
Per semplicità, gli esempi in questo capitolo specificano solo il nome e la versione del libro di ricette, ma
metadata.rb
può contenere un'ampia gamma di metadati del libro di ricette. Per ulteriori informazioni, consulta l'articolo sulle informazioni sui metadati dei libri di ricette. Nota
Assicurati di creare
metadata.rb
prima di inizializzare Test Kitchen, perché utilizza i dati per creare il file di configurazione di default. -
In
installpkg
, eseguirekitchen init
, che inizializza Test Kitchen e installa il driver Vagrant di default. -
Il
kitchen init
comando crea un file di YAML configurazione ininstallpkg
named..kitchen.yml
Aprire il file nell'editor di testo preferito. Il file.kitchen.yml
include una sezioneplatforms
che specifica su quali sistemi eseguire le ricette. Test Kitchen crea un'istanza ed esegue le ricette specificate su ciascuna piattaforma.Nota
Per impostazione predefinita, Test Kitchen esegue le ricette una piattaforma alla volta. Aggiungendo un argomento
-p
a qualsiasi comando che crea un'istanza, Test Kitchen eseguirà le ricette su ogni piattaforma, in parallelo.Una singola piattaforma è sufficiente per questo esempio, quindi modificare
.kitchen.yml
per rimuovere la piattaformacentos-6.4
. Il file.kitchen.yml
dovrebbe ora apparire così:--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:
Test Kitchen esegue solo le ricette incluse nell'elenco di esecuzione
.kitchen.yml
. Le ricette vengono identificate utilizzando il[
formato, dovecookbook_name
::recipe_name
]recipe_name
omette l'.rb
estensione. Inizialmente, l'elenco di esecuzione.kitchen.yml
contiene la ricetta predefinita del libro di ricette,installpkg::default
. Questa è la ricetta da implementare, perciò non è necessario modificare l'elenco di esecuzione. -
Crea una sottodirectory di
installpkg
denominatarecipes
.Se un libro di cucina contiene ricette, la maggior parte di esse, devono trovarsi nella sottodirectory.
recipes
È ora possibile aggiungere la ricetta al libro di ricette e utilizzare Test Kitchen per eseguirla su un'istanza.
Per eseguire la ricetta
-
Creare un file denominato
default.rb
che contenga il codice di esempio dell'installazione Git tratto dall'inizio della sezione e salvarlo nella sottodirectoryrecipes
. -
Nella directory
installpkg
, eseguirekitchen converge
. Questo comando avvia una nuova istanza di Ubuntu in Vagrant, copia i tuoi libri di cucina nell'istanza e avvia un'esecuzione di Chef per eseguire le ricette nell'elenco di esecuzione..kitchen.yml
-
Per verificare che la ricetta abbia avuto successo, esegui
kitchen login
, che apre una SSH connessione all'istanza. Quindi eseguiregit --version
per verificare la corretta installazione di Git. Per tornare alla workstation, eseguireexit
. -
Al termine dell'operazione, eseguire
kitchen destroy
per chiudere l'istanza. L'esempio successivo utilizza un altro libro di ricette.
Questo esempio è un buon inizio, ma è molto semplice. L'installazione di altri pacchetti può risultare più complicata e richiedere l'esecuzione di una o più delle seguenti operazioni:
-
Creare e configurare un utente.
-
Creare una o più directory per dati, log e così via.
-
Installare uno o più file di configurazione.
-
Specificare nomi del pacchetto o valori degli attributi diversi per differenti sistemi operativi.
-
Avviare un servizio e quindi riavviarlo in base alle esigenze.
Gli esempi seguenti descrivono come agire in questi casi e alcune altre utili operazioni.