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à.
Fase 2.3: implementare un libro di ricette personalizzato
Importante
Il AWS OpsWorks Stacks il 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 AWS Support Squadra su AWS Re:post o tramite
Anche se uno stack è fondamentalmente un contenitore di istanze, non aggiungere istanze direttamente a uno stack. Puoi aggiungere uno o più livelli, ciascuno dei quali rappresenta un gruppo di istanze correlate, quindi aggiungi le istanze ai livelli.
Un livello è fondamentalmente un progetto che AWS OpsWorks Stacks lo utilizza per creare un set di EC2 istanze Amazon con la stessa configurazione. Un'istanza viene avviata con una versione base del sistema operativo, e il livello dell'istanza esegue un'ampia gamma di attività sull'istanza per implementare tale piano, il quale può includere:
-
Creazione di directory e file
-
Gestione degli utenti
-
Installazione e configurazione del software
-
Avvio o arresto di server
-
Distribuzione del codice applicazione e dei file correlati.
Un layer esegue attività sulle istanze eseguendo ricette Chef, in breve ricette
AWS OpsWorks Stacks fornisce a ogni livello una serie di ricette integrate che eseguono attività standard. È quindi possibile estendere una funzionalità del livello per l'implementazione di ricette personalizzate, per eseguire attività aggiuntive e per la loro assegnazione agli eventi del ciclo di vita del livello. Gli stack di Windows supportano livelli personalizzati, i quali dispongono di una serie di ricette che eseguono solo alcune attività di base. Per aggiungere funzionalità alle istanze di Windows, è necessario implementare ricette personalizzate per installare software, distribuire applicazioni e così via. Questo argomento descrive come creare un semplice livello personalizzato per supportare le IIS istanze.
Argomenti
Rapida introduzione ai libri di cucina e alle ricette
Una ricetta definisce uno o più aspetti dello stato previsto dell'istanza: di quali directory deve disporre, quali pacchetti software devono essere installati, quali applicazioni devono essere distribuite e così via. Le ricette sono contenute in un libro di ricette, che in genere contiene uno o più ricette correlate, oltre a file associati, ad esempio i modelli per la creazione di file di configurazione.
Questo argomento è un'introduzione molto semplice alle ricette, quanto basta per mostrarti come implementare un ricettario per supportare un semplice livello personalizzatoIIS. Per un'introduzione più generale dei libri di ricette, consulta Libri di ricette e ricette. Per un'introduzione tutorial dettagliata relativa all'implementazione di libri di ricette, tra cui alcuni argomenti specifici di Windows, consulta Introduzione ai libri di ricette.
Le ricette di Chef sono tecnicamente applicazioni Ruby, ma la maggior parte, se non tutto, del codice si trova in Chef. DSL DSLConsiste in gran parte in un insieme di risorse, che è possibile utilizzare per specificare in modo dichiarativo un aspetto dello stato delle istanze. Ad esempio, una directory
risorsaC:\data
directory con i diritti di controllo completi, la quale appartiene all'utente specificato e non eredita i diritti dalla directory padre.
directory 'C:\data' do rights :full_control, 'WORKGROUP\
username
' inherits false action :create end
Quando Chef esegue una ricetta, esegue ogni risorsa passando i dati a un fornitore associato, un oggetto di Ruby che gestisce i dettagli di modifica dello stato dell'istanza. In casi come questo, il fornitore crea una nuova directory con la configurazione specificata.
Il ricettario personalizzato per il IIS livello personalizzato deve eseguire le seguenti attività:
-
Installa la IIS funzionalità e avvia il servizio.
Generalmente si esegue questa operazione durante l'installazione, subito dopo il completamento dell'avvio da parte dell'istanza.
-
Distribuisci un'app sull'istanza, una semplice HTML pagina per questo esempio.
Generalmente si esegue questa operazione durante l'installazione. Tuttavia, di solito le applicazioni devono essere aggiornati regolarmente, perciò è necessario distribuire gli aggiornamenti quando l'istanza è online.
È possibile disporre di una sola ricetta per eseguire tutte queste attività. Tuttavia, l'approccio consigliato è disporre di ricette separate per l'installazione e le attività di distribuzione. In questo modo, puoi distribuire gli aggiornamenti delle app in qualsiasi momento, senza eseguire anche il codice d'installazione. Di seguito viene descritto come configurare un ricettario per supportare un livello personalizzatoIIS. Gli argomenti di seguito mostreranno come implementare le ricette.
Per iniziare
-
Crea una directory chiamata
iis-cookbook
nella posizione che ti è più comoda sulla workstation. -
Aggiungi un file
metadata.rb
con il contenuto seguente suiis-cookbook
.name "iis-cookbook" version "0.1.0"
In questo esempio viene utilizzato un
metadata.rb
minimo. Per ulteriori informazioni su come utilizzare questo file, consulta metadata.rb. -
Aggiungi una directory
recipes
suiis-cookbook
.Questa directory, che deve essere chiamata
recipes
, contiene le ricette del libro di ricette.
In generale, i libri di ricette possono contenere tante altre directory. Ad esempio, se una ricetta utilizza un modello per creare un file di configurazione, il modello di solito va nella directory templates\default
. Il libro di ricette di questo esempio, è costituito interamente da ricette, perciò non sono necessarie altre directory. Inoltre, questo esempio utilizza un singolo libro di ricette, ma puoi usarne quanti te ne servono; per progetti complessi sono preferibili più libri di cucina. Ad esempio, è possibile disporre di libri di ricette separati per l'installazione e le attività di distribuzione. Per ulteriori esempi di libri di ricette, consulta Libri di ricette e ricette.
Implementa una ricetta per l'installazione e l'avvio IIS
IISè una funzionalità di Windows, uno di un set di componenti di sistema opzionali che è possibile installare su Windows Server. È possibile installare una ricetta IIS in uno dei seguenti modi:
-
Utilizzando una risorsa
powershell_script
per eseguire il cmdlet Install-WindowsFeature
. -
Utilizzando la
windows_feature
risorsa Chef Windows Cookbook. Il
windows
ricettario contiene una serie di risorse i cui provider utilizzano Deployment Image Servicing and Management(DISM) per eseguire una serie di attività sulle istanze di Windows, inclusa l'installazione delle funzionalità.
Nota
powershell_script
è una delle risorse più utili delle ricette di Windows. È possibile utilizzarlo per eseguire diverse attività su un'istanza eseguendo uno PowerShell script o un cmdlet. È utile soprattutto per le attività che non sono supportate da una risorsa di Chef.
Questo esempio esegue uno PowerShell script per installare e avviare Web Server ()IIS. Il libro di ricette di windows
verrà descritto più avanti. Per un esempio di come utilizzare windows_feature
to installIIS, vedereInstallazione di una funzionalità di Windows: IIS.
Aggiungi una ricetta chiamata install.rb
sulla directory recipes
del libro di ricette, con il seguente contenuto.
powershell_script 'Install IIS' do code 'Install-WindowsFeature Web-Server' not_if "(Get-WindowsFeature -Name Web-Server).Installed" end service 'w3svc' do action [:start, :enable] end
La ricetta contiene due risorse.
- powershell_script
-
powershell_script
esegue lo PowerShell script o il cmdlet specificato. L'esempio dispone delle seguenti impostazioni dell'attributo:-
code
— I PowerShell cmdlet da eseguire.Questo esempio esegue un
Install-WindowsFeature
cmdlet che installa Web Server (). IIS In generale, l'attributocode
può avere un numero qualsiasi di linee, così da consentirti di eseguire tutti i cmdlet di cui hai bisogno. -
not-if
— Un attributo guardche assicura che la ricetta venga installata IIS solo se non è stata ancora installata. In genere è opportuno che le ricette siano idempotenti, in modo da non perdere tempo per eseguire la stessa attività più di una volta.
Ogni risorsa dispone di un'operazione che specifica l'operazione intrapresa dal fornitore. Non esiste alcuna azione esplicita per questo esempio, quindi il provider esegue l'
:run
azione predefinita, che esegue lo script specificato PowerShell . Per ulteriori informazioni, consulta Esecuzione di uno PowerShell script di Windows. -
- service
-
A
service
gestisce un servizio, in questo caso il IIS servizio Web Server (W3SVC). L'esempio utilizza attributi predefiniti e specifica due azioni, :start
e:enable
, che avviano e attivano. IIS
Nota
Se si desidera installare software che utilizza un programma di installazione di pacchetti, ad esempioMSI, è possibile utilizzare una windows_package
risorsa. Per ulteriori informazioni, consulta Installazione di un pacchetto.
Abilita il libro di ricette personalizzato
AWS OpsWorks Stacks esegue le ricette da una cache locale su ogni istanza. Per eseguire le tue ricette personalizzate, è necessario:
-
Archiviare il libro di ricette in un repository remoto.
AWS OpsWorks Stacks scarica i libri di cucina da questo repository nella cache locale di ogni istanza.
-
Modificare lo stack per abilitare i libri di ricette personalizzati.
I ricettari personalizzati sono disabilitati per impostazione predefinita, quindi è necessario abilitare i ricettari personalizzati per lo stack e fornire il repository e le informazioni correlate. URL
AWS OpsWorks Stacks supporta archivi S3 e repository Git per libri di cucina personalizzati; questo esempio utilizza un archivio S3. Per ulteriori informazioni, consulta Repository dei libri di ricette.
Per utilizzare un archivio S3
-
Creare un archivio
.zip
della directoryiis-cookbook
.AWS OpsWorks Stacks supporta anche archivi
.tgz
(gzip compressi tar) per gli stack di Windows. -
Carica l'archivio in un bucket S3 nella regione Stati Uniti occidentali (California settentrionale) e rendi il file pubblico. Puoi anche utilizzare un archivio S3 privato, ma un archivio pubblico è sufficiente in questo esempio, ed è anche molto più facile da utilizzare.
Accedi al AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
-
Se non hai ancora un bucket
us-west-1
, scegli Create Bucket e crea un bucket nella regione Stati Uniti occidentali (California settentrionale). -
Nell'elenco dei bucket, scegli il nome del bucket sul quale desideri caricare il file, quindi fai clic su Upload (Carica).
-
Seleziona Aggiungi file.
-
Selezionare l'archivio di file da caricare, quindi scegliere Apri.
-
Nella parte inferiore della finestra di dialogo Upload - Select Files and Folders (Carica - Seleziona file e cartelle), scegli Set Details (Imposta dettagli).
-
Nella parte inferiore della finestra di dialogo Set Details (Imposta dettagli), scegli Set Permissions (Imposta autorizzazioni).
-
Nella finestra di dialogo Set Permissions (Imposta autorizzazioni), scegli Make everything public (Rendi tutto pubblico).
-
Nella parte inferiore della finestra di dialogo Set Permissions (Imposta autorizzazioni), scegli Start Upload (Avvia caricamento). Al termine del caricamento, il file
iis-cookbook.zip
viene visualizzato nel bucket. -
Scegli il bucket e quindi scegli la scheda Proprietà per il bucket. Accanto a Link, registra i file di archivio per un uso successivo. URL
Per ulteriori informazioni sul caricamento di file in un bucket Amazon S3, consulta Come si caricano file e cartelle in un bucket S3? nella Guida per l'utente della console Amazon S3.
Importante
Fino a questo punto, la procedura dettagliata ti è costata solo poco tempo; il AWS OpsWorks Il servizio Stacks stesso è gratuito. Tuttavia, devi pagare per tutte AWS le risorse che utilizzi, come lo storage Amazon S3. Ti verranno addebitati costi solo al caricamento dell'archivio. Per ulteriori informazioni, consulta la pagina AWSPrezzi
Per abilitare libri di ricette personalizzati per lo stack
-
Nel AWS OpsWorks Nella console Stacks, scegli Stack nel pannello di navigazione, quindi scegli Stack Settings in alto a destra.
-
Sulla pagina Settings (Impostazioni), scegli Edit (Modifica) in alto a destra.
-
Sulla pagina Settings (Impostazioni), imposta Use custom Chef cookbooks (Utilizza libri di ricette personalizzati di Chef) su Yes (Sì), quindi inserisci le informazioni seguenti:
-
Tipo di repository: S3 Archive.
-
RepositoryURL: l'S3 del file di archivio URL del libro di cucina che hai registrato in precedenza.
-
-
Scegli Save (Salva) per aggiornare la configurazione dello stack.
AWS OpsWorks Stacks installa il tuo ricettario personalizzato su tutte le nuove istanze. Nota che AWS OpsWorks Stacks non installa o aggiorna automaticamente libri di cucina personalizzati su istanze online. Come descritto in seguito, puoi farlo manualmente.