Sostituzione dei modelli integrati - 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à.

Sostituzione dei modelli integrati

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 AWS Support Team su AWS re:post o tramite Premium AWS Support.

Nota

Questo argomento si applica solo agli stack Linux. I modelli integrati sugli stack Windows non possono essere sostituiti.

Le ricette integrate di AWS OpsWorks Stacks utilizzano modelli per creare file su istanze, principalmente file di configurazione per server, come Apache. Ad esempio, le ricette apache2 utilizzano il modello apache2.conf.erb per creare il file di configurazione primario del server Apache, httpd.conf (Amazon Linux) o apache2.conf (Ubuntu).

La maggior parte delle impostazioni di configurazione in questi modelli è rappresentata da attributi, pertanto il modo migliore per personalizzare un file di configurazione consiste nel sostituire gli attributi integrati appropriati. Per vedere un esempio, consulta Sostituzione degli attributi integrati. Tuttavia, se le impostazioni che desideri personalizzare non sono rappresentate da attributi integrati o non sono presenti nel modello, devi sostituire il modello stesso. In questo argomento viene descritto come sostituire un modello integrato per specificare un'impostazione di configurazione Apache personalizzata.

Puoi fornire risposte di errore personalizzate ad Apache aggiungendo impostazioni ErrorDocument al file httpd.conf. apache2.conf.erb contiene solo alcuni esempi commentati, come illustrato di seguito:

... # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...

Poiché queste impostazioni sono commenti hardcoded, non puoi specificare valori personalizzati sostituendo attributi, ma devi sostituire il modello stesso. Tuttavia, diversamente da quanto avviene con gli attributi, non vi è alcun modo per sostituire parti specifiche di un file di modello. Devi creare un libro di ricette personalizzato con lo stesso nome della versione integrata, copiare il file di modello nella stessa sottodirectory e modificare il file in base alle esigenze. Questo argomento mostra come sostituire apache2.conf.erb per fornire una risposta personalizzata all'errore 500. Per una discussione generale sulla sostituzione dei modelli, consulta Utilizzo di modelli personalizzati .

Importante

Quando sostituisci un modello integrato, le ricette integrate utilizzano la tua versione personalizzata del modello anziché la versione integrata. Se AWS OpsWorks Stacks aggiorna il modello integrato, il modello personalizzato non è sincronizzato e potrebbe non funzionare correttamente. AWS OpsWorks Stacks non apporta tali modifiche spesso e, quando un modello cambia, AWS OpsWorks Stacks elenca le modifiche e ti offre la possibilità di eseguire l'aggiornamento a una nuova versione. Ti consigliamo di monitorare il repository AWS OpsWorks Stacks per scoprire le eventuali modifiche e aggiornare manualmente il modello personalizzato in base alle esigenze. Il repository include un ramo distinto per ciascuna versione Chef supportata, pertanto assicurati di essere nel ramo corretto.

Per iniziare, crea un libro di ricette personalizzato.

Per creare il libro di ricette
  1. Nella directory opsworks_cookbooks creare la directory del libro di ricette denominata apache2 e accedervi. Per ignorare i modelli integrati, il libro di ricette personalizzato deve avere lo stesso nome del libro di ricette integrato, apache2 in questo esempio.

    Nota

    Se hai già completato la procedura guidata Sostituzione degli attributi integrati, puoi utilizzare lo stesso libro di ricette apache2 per questo esempio e saltare il Passaggio 2.

  2. Creare un file metadata.rb con il seguente contenuto e salvarlo nella directory apache2.

    name "apache2" version "0.1.0"
  3. Nella directory apache2 creare una directory templates/default.

    Nota

    La templates/default directory funziona per le istanze Amazon Linux, che utilizzano il apache2.conf.erb modello predefinito. Le istanze Ubuntu 14.04 utilizzano un modello apache2.conf.erb specifico del sistema operativo, che si trova nella directory templates/ubuntu-14.04. Se si desidera che la personalizzazione venga applicata alle istanze Ubuntu 14.04, inoltre, è necessario sovrascrivere anche tale modello.

  4. Copiare il modello apache2.conf.erb integrato nella directory templates/default. Aprire il file modello, rimuovere i commenti della riga ErrorDocument 500 e fornire un messaggio di errore personalizzato, come segue:

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. Crea un .zip archivio di opsworks_cookbooks namedopsworks_cookbooks.zip, quindi carica il file in un bucket Amazon Simple Storage Service (Amazon S3). Per semplicità, rendere pubblico l'archivio. Registrare l'URL dell'archivio per utilizzarlo in seguito. Puoi anche archiviare i tuoi libri di cucina in un archivio privato di Amazon S3 o in altri tipi di repository. Per ulteriori informazioni, consulta Repository dei libri di ricette.

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

Nota

Per semplicità, questo esempio aggiunge un messaggio di errore hardcoded al modello. Per modificarlo, devi modificare il modello e reinstallare il libro di ricette. Per usufruire di una maggiore flessibilità, puoi definire un attributo personalizzato predefinito per la stringa di errore nel file degli attributi customize.rb del libro di ricette personalizzato e assegnare il valore di tale attributo a ErrorDocument 500. Ad esempio, se assegni un nome all'attributo [:apache][:custom][:error500], la riga corrispondente in apache2.conf.erb sarà simile alla seguente:

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

Quindi puoi modificare il messaggio di errore personalizzato in qualsiasi momento sostituendo [:apache][:custom][:error500]. Se utilizzi il JSON personalizzato per sostituire l'attributo, non devi neanche toccare il libro di ricette.

Per utilizzare il modello personalizzato, creare uno stack e installare il libro di ricette.

Per utilizzare il modello personalizzato
  1. Aprire la console AWS OpsWorks Stacks e scegliere Add Stack (Aggiungi stack).

  2. Specificare le seguenti impostazioni standard:

    • Nome: ApacheTemplate

    • Regione: Stati Uniti occidentali (Oregon)

    • Chiave SSH predefinita: una coppia di chiavi Amazon Elastic Compute Cloud (Amazon EC2)

      Se devi creare una coppia di chiavi Amazon EC2, consulta Amazon EC2 Key Pairs. La coppia di chiavi deve appartenere alla stessa regione AWS dell'istanza.

    Scegliere Advanced (Avanzate) >>, scegliere Use custom Chef cookbooks (Utilizza libri di ricette Chef personalizzati) per specificare le impostazioni seguenti:

    • Tipo di repository: Http Archive

    • URL del repository: l'URL dell'archivio del libro di cucina che hai registrato in precedenza

    Accettare i valori predefiniti di altre impostazioni e scegliere Add Stack (Aggiungi stack) per creare lo stack.

  3. Scegliete Aggiungi un layer, quindi aggiungete un layer Java App Server allo stack con le impostazioni predefinite.

  4. Aggiungere un'istanza 24/7 con impostazioni predefinite al livello, quindi avviare l'istanza.

    Un'istanza t2.micro è sufficiente per questo esempio.

  5. Una volta che l'istanza è online, connettersi a essa con SSH. Il file httpd.conf è nella directory /etc/httpd/conf. Il file deve contenere la tua impostazione ErrorDocument personalizzata, che avrà un aspetto simile al seguente:

    ... # Some examples: ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...