Fase 2.3: implementare un libro di ricette personalizzato - AWS OpsWorks

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 AWS Supporto Premium.

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. Una ricetta è un'applicazione Ruby che utilizza il linguaggio specifico del dominio di Chef (DSL) per descrivere lo stato finale dell'istanza. Con AWS OpsWorks In genere, ogni ricetta viene assegnata a uno degli eventi del ciclo di vita del layer: Setup, Configuration, Deploy, Undeploy e Shutdown. Quando si verifica un evento del ciclo di vita su un'istanza, AWS OpsWorks Stacks esegue le ricette dell'evento per eseguire le attività appropriate. Ad esempio, l'evento installazione si verifica una volta terminato l'avvio dell'istanza. AWS OpsWorks Stacks esegue quindi le ricette di installazione, che in genere eseguono attività come l'installazione e la configurazione del software del server e l'avvio dei servizi correlati.

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.

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 risorsa definisce una directory per essere aggiunta al sistema. L'esempio seguente definisce una C:\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
  1. Crea una directory chiamata iis-cookbook nella posizione che ti è più comoda sulla workstation.

  2. Aggiungi un file metadata.rb con il contenuto seguente su iis-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.

  3. Aggiungi una directory recipes su iis-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:

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_scriptesegue 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'attributo code può avere un numero qualsiasi di linee, così da consentirti di eseguire tutti i cmdlet di cui hai bisogno.

  • not-if— Un attributo guard che 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':runazione predefinita, che esegue lo script specificato PowerShell . Per ulteriori informazioni, consulta Esecuzione di uno PowerShell script di Windows.

service

A servicegestisce 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
  1. Creare un archivio .zip della directory iis-cookbook.

    AWS OpsWorks Stacks supporta anche archivi .tgz (gzip compressi tar) per gli stack di Windows.

  2. 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.

    1. Accedi al AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

    2. Se non hai ancora un bucketus-west-1, scegli Create Bucket e crea un bucket nella regione Stati Uniti occidentali (California settentrionale).

    3. Nell'elenco dei bucket, scegli il nome del bucket sul quale desideri caricare il file, quindi fai clic su Upload (Carica).

    4. Seleziona Aggiungi file.

    5. Selezionare l'archivio di file da caricare, quindi scegliere Apri.

    6. Nella parte inferiore della finestra di dialogo Upload - Select Files and Folders (Carica - Seleziona file e cartelle), scegli Set Details (Imposta dettagli).

    7. Nella parte inferiore della finestra di dialogo Set Details (Imposta dettagli), scegli Set Permissions (Imposta autorizzazioni).

    8. Nella finestra di dialogo Set Permissions (Imposta autorizzazioni), scegli Make everything public (Rendi tutto pubblico).

    9. 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.

    10. 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
  1. Nel AWS OpsWorks Nella console Stacks, scegli Stack nel pannello di navigazione, quindi scegli Stack Settings in alto a destra.

  2. Sulla pagina Settings (Impostazioni), scegli Edit (Modifica) in alto a destra.

  3. 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.

  4. 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.