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à.
Creazione di pacchetti di dipendenze di libri di ricette a livello locale
Importante
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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
Puoi utilizzare Berkshelf per impacchettare le dipendenze dei tuoi libri di cucina localmente, caricare il pacchetto su Amazon S3 e modificare lo stack per utilizzare il pacchetto su Amazon S3 come fonte per libri di cucina. I contenuti distribuiti ai bucket Amazon S3 potrebbero contenere informazioni dei clienti. Per ulteriori informazioni sulla rimozione di dati sensibili, vedi Come svuotare un bucket S3? o Come eliminare un bucket S3?.
Le seguenti procedure dettagliate descrivono come preconfezionare i tuoi libri di cucina e le relative dipendenze in un file.zip, quindi utilizzare il file.zip come fonte di libri di cucina per le istanze Linux in Stacks. AWS OpsWorks La prima procedura guidata descrive come creare un pacchetto di un libro di ricette. La seconda procedura guidata descrive invece come creare un pacchetto di più libri di ricette.
Prima di iniziare, installa il kit di sviluppo Chefchef
.
Creazione di pacchetti di dipendenze a livello locale in Chef 12
In Chef 12 Linux, Berkshelf non è più installato per impostazione predefinita nelle istanze dello stack. Consigliamo di installare e usare Berkshelf su un computer di sviluppo locale per creare localmente il pacchetto delle dipendenze del libro di ricette. Carica il tuo pacchetto, con le dipendenze incluse, su Amazon S3. Modifica infine lo stack di Chef 12 Linux per utilizzare il pacchetto caricato come origine del libro di ricette. Tieni presente le seguenti differenze quando crei pacchetti di libri di ricette in Chef 12.
-
Nel computer locale, creare un libro di ricette eseguendo lo strumento a riga di comando
chef
.chef generate cookbook "server-app"
Questo comando crea un libro di ricette, un Berksfile, un file
metadata.rb
e una directory di ricette e li posiziona in una cartella con lo stesso nome del libro di ricette. L'esempio seguente mostra la struttura degli elementi creati.server-app <-- the cookbook you've just created └── Berksfile ├── metadata.rb └── recipes
-
In un editor di testo, modificare il Berksfile in modo che punti ai libri di ricette da cui dipenderà il libro di ricette
server-app
. In questo esempio, si desidera cheserver-app
dipenda dal libro di ricettejava
disponibile nel supermercato Chef. In questo caso viene specificata la versione 1.50.0 o una versione anteriore più aggiornata, ma è possibile immettere qualsiasi versione pubblicata tra virgolette singole. Salvare le modifiche e chiudere il file. source 'https://supermarket.chef.io' cookbook 'java', '~> 1.50.0'
-
Modificare il file
metadata.rb
e aggiungere le dipendenze. Salvare le modifiche e chiudere il file.depends 'java' , '~> 1.50.0'
-
Passare alla directory
server-app
del libro di ricette creata automaticamente da Chef, quindi eseguire il comandopackage
per creare un filetar
del libro di ricette. Se si sta creato un pacchetto di più libri di ricette, eseguire questo comando nella directory principale in cui vengono archiviati tutti i libri di ricette. Per creare un pacchetto di un singolo libro di ricette, eseguire il comando nella directory del libro di ricette desiderato. In questo esempio, il comando viene eseguito nella directoryserver-app
.berks package cookbooks.tar.gz
L'output è simile a quello riportato di seguito. Il file
tar.gz
viene creato nella directory locale.Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
-
Nel AWS CLI, carica il pacchetto appena creato su Amazon S3. Annotare il nuovo URL del pacchetto del libro di ricette dopo averlo caricato in S3. Questo URL sarà necessario per le impostazioni dello stack.
aws s3 cp cookbooks.tar.gz s3://
bucket-name
/L'output è simile a quello riportato di seguito.
upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
-
In AWS OpsWorks Stacks, modifica lo stack per utilizzare il pacchetto che hai caricato come fonte del libro di cucina.
-
Impostare l'opzione Use custom Chef Cookbooks (Utilizza i libri di ricette di Chef personalizzati) su Yes (Sì).
-
Impostare Repository type (Tipo di repository) su S3 Archive (Archivio S3).
-
In Repository URL (URL repository), incollare l'URL del pacchetto del libro di ricette caricato nella fase 5.
Salva le modifiche apportate allo stack.
-
Creazione di pacchetti di dipendenze a livello locale per un libro di ricette
-
Nel computer locale, creare un libro di ricette utilizzando lo strumento a riga di comando chef:
chef generate cookbook "server-app"
Questo comando crea un libro di ricette e un Berksfile e li posiziona in una cartella con lo stesso nome del libro di ricette.
-
Passare alla directory del libro di ricette creata automaticamente da Chef, quindi creare un pacchetto di tutti gli elementi eseguendo il seguente comando:
berks package cookbooks.tar.gz
L'output sarà il seguente:
Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
-
Nel AWS CLI, carica il pacchetto appena creato su Amazon S3:
aws s3 cp cookbooks.tar.gz s3://bucket-name/
L'output sarà il seguente:
upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
-
In AWS OpsWorks Stacks, modifica lo stack per utilizzare il pacchetto che hai caricato come fonte del libro di cucina.
Creazione di pacchetti di dipendenze a livello locale per più libri di ricette
Questo esempio crea due libri di ricette e crea un pacchetto delle relative dipendenze.
-
Nel computer locale, eseguire i seguenti comandi
chef
per generare due libri di ricette:chef generate cookbook "server-app" chef generate cookbook "server-utils"
In questo esempio, il libro di ricette server-app esegue le configurazioni Java. Pertanto è necessario aggiungere una dipendenza da Java.
-
Modificare
server-app/metadata.rb
aggiungendo una dipendenza al libro di ricette Java della community:maintainer "The Authors" maintainer_email "you@example.com" license "all_rights" description "Installs/Configures server-app" long_description "Installs/Configures server-app" version "0.1.0" depends "java"
-
Indicare al Berkshelf gli elementi da inserire nei pacchetti modificando il file Berksfile nella directory principale del libro di ricette come segue:
source "https://supermarket.chef.io" cookbook "server-app", path: "./server-app" cookbook "server-utils", path: "./server-utils"
La struttura di file ora appare nel seguente modo:
.. └── Berksfile ├── server-app └── server-utils
-
Infine, crea un pacchetto zip, caricalo su Amazon S3 e modifica lo stack AWS OpsWorks Stacks per utilizzare la nuova fonte per i libri di cucina. A tale scopo, eseguire le fasi da 2 a 4 descritte nell'argomento Creazione di pacchetti di dipendenze a livello locale per un libro di ricette.
Risorse aggiuntive
Per ulteriori informazioni sulla creazione di pacchetti di dipendenze dei libri di ricette, consulta le seguenti sezioni.
-
Come impacchettare localmente le dipendenze dei Cookbook con Berkshelf sul
blog di AWS DevOps -
Linux Chef 12 con
Berkshelf sui forum AWS OpsWorks -
Berkshelf in Chef 12 sui forum
AWS OpsWorks -
Installazione di libri di ricette personalizzati in questa guida
-
Archivi di libri di ricette in questa guida