Ricette di configurazione - 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à.

Ricette di configurazione

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.

Le ricette di configurazione sono assegnate all'evento del ciclo di vita Configure del livello, che si verifica su tutte le istanze dello stack ogni volta che un'istanza entra o esce dallo stato online. Puoi utilizzare le ricette di configurazione per regolare la configurazione di un'istanza in modo da rispondere alla modifica in maniera appropriata. Quando implementi una ricetta Configure, tieni presente che la modifica della configurazione di uno stack potrebbe coinvolgere istanze che non hanno nulla a che fare con questo livello. La ricetta deve essere in grado di rispondere in modo appropriato, che in alcuni casi potrebbe significare non fare nulla.

tomcat::configure

La ricetta tomcat::configure è destinata a un evento del ciclo di vita Configure del livello.

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

La ricetta tomcat::configure è fondamentalmente un meta-ricetta che esegue due ricette dipendenti.

  1. La ricetta tomcat::context crea un file di configurazione del contesto dell'app Web.

    Questo file configura le JDBC risorse utilizzate dalle applicazioni per comunicare con l'SQListanza My, come illustrato nella sezione successiva. Eseguire questa ricetta in risposta a un evento di configurazione consente al livello di aggiornare il file di configurazione del contesto dell'app Web se il livello del database è stato modificato.

  2. La ricetta Setup tomcat::container_config viene eseguita nuovamente per acquisire eventuali modifiche apportate alla configurazione del container.

In questo esempio viene commentato include per tomcat::container_config. Se desideri utilizzare custom per JSON modificare le impostazioni di Tomcat, puoi rimuovere il commento. Un evento del ciclo di vita Configure esegue quindi tomcat::container_config, che aggiorna i file di configurazione correlati a Tomcat, come descritto in tomcat::container_config e riavvia il servizio Tomcat.

tomcat::context

Il ricettario Tomcat consente alle applicazioni di accedere a un server di SQL database My, che può essere eseguito su un'istanza separata, utilizzando un oggetto J2EE. DataSource Con Tomcat, puoi abilitare la connessione mediante la creazione e l'installazione di un file di configurazione del contesto dell'app Web per ogni applicazione. Questo file definisce la relazione tra l'applicazione e la JDBC risorsa che l'applicazione utilizzerà per comunicare con il database. Per maggiori informazioni, consulta The Context Container.

Lo scopo primario della ricetta tomcat::context è creare questo file di configurazione.

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

Oltre agli attributi del libro di cucina Tomcat, questa ricetta utilizza gli attributi di configurazione e distribuzione dello stack che AWS OpsWorks Stacks si installa con l'evento Configure. Il AWS OpsWorks Il servizio Stacks aggiunge attributi all'oggetto nodo di ogni istanza che contengono le informazioni che le ricette normalmente otterrebbero utilizzando i data bag o la ricerca e installa gli attributi su ogni istanza. Gli attributi contengono informazioni dettagliate sulla configurazione dello stack, sulle app distribuite e sui dati personalizzati che un utente desidera includere. Le ricette possono ottenere dati da attributi di configurazione e di distribuzione dello stack utilizzando una sintassi del nodo Chef standard. Per ulteriori informazioni, consulta Attributi di configurazione e distribuzione dello stack. Con gli stack Chef 11.10, puoi usare la ricerca Chef per ottenere i dati di configurazione e distribuzione dello stack. Per ulteriori informazioni, consulta Utilizzo della ricerca di Chef.

deployattributes si riferisce allo spazio dei [:deploy] nomi, che contiene gli attributi relativi alla distribuzione definiti tramite la console o generati dal API AWS OpsWorks Servizio Stacks. L'attributo deploy include un attributo per ogni app distribuita, denominata con il nome breve dell'app. Ogni attributo di app contiene un set di attributi che caratterizzano l'app, ad esempio la radice del documento ([:deploy][:appname][:document_root]).

La ricetta context innanzitutto assicura che il servizio viene definito per questa esecuzione Chef chiamando tomcat::service. Quindi definisce una variabile context_name che rappresenta il nome del file di configurazione, esclusa l'estensione .xml. Se utilizzi la radice del documento predefinita, context_name viene impostato sul nome breve dell'app. In alternativa, viene impostato sulla radice del documento specificato. L'esempio discusso in precedenza Creare uno stack ed eseguire un'applicazione imposta la radice del documento su"ROOT", quindi il contesto è ROOT e il file di configurazione è denominatoROOT.xml.

Il blocco principale della ricetta scorre l'elenco delle app distribuite e, per ogni app, usa il modello webapp_context.xml.erb per creare un file di configurazione del contesto. L'esempio distribuisce solo un'app, ma la definizione dell'attributo deploy richiede di trattarla come un elenco di applicazioni.

Il modello webapp_context.xml.erb non è specifico del sistema operativo, pertanto si trova nella sottodirectory templates della directory default.

La ricetta crea il file di configurazione come segue:

  • Grazie a valori di attributo predefiniti, il nome del file di configurazione viene impostato su context_name.xml e installato nella directory /etc/tomcat6/Catalina/localhost/.

    Il ['datasources'] nodo degli attributi di configurazione dello stack contiene uno o più attributi, ognuno dei quali associa un nome di contesto alla risorsa di JDBC dati che l'applicazione associata utilizzerà per comunicare con il database. Il nodo e il suo contenuto vengono definiti in modo personalizzato JSON quando si crea lo stack, come descritto più avanti. Creare uno stack ed eseguire un'applicazione L'esempio ha un singolo attributo che associa il nome del ROOT contesto a una JDBC risorsa denominata jdbc/mydb.

  • Mediante l'utilizzo di valori di attributo predefiniti, il gruppo e l'utente del file sono entrambi impostati sui valori definiti dal pacchetto Tomcat: tomcat (Amazon Linux) o tomcat6 (Ubuntu).

  • La risorsa template crea il file di configurazione solo se il nodo ['datasources'] esiste e include un attributo context_name.

  • La risorsa template definisce due variabili: resource_name e webapp_name.

    resource_name è impostato sul nome di risorsa associato a context_name mentre webapp_name è impostato sul nome breve dell'app.

  • La risorsa modello riavvia il servizio Tomcat per caricare e attivare le modifiche.

Il modello webapp_context.xml.erb è costituito da un elemento Context che contiene un elemento Resource con il relativo set di attributi.

Gli Resource attributi caratterizzano la configurazione del contesto:

  • name: il nome della JDBC risorsa, impostato sul resource_name valore definito in. tomcat::context

    Ad esempio, il nome della risorsa è impostato su jdbc/mydb.

  • auth e type: si tratta di impostazioni standard per le connessioni. JDBC DataSource

  • maxActivemaxIdle, e maxWait—Il numero massimo di connessioni attive e inattive e il tempo di attesa massimo per la restituzione di una connessione.

  • nome utente e password: il nome utente e la password root del database, ottenuti dagli attributi. deploy

  • driverClassName—Il nome della classe del JDBC driver, impostato su Il mio SQL driver.

  • url —La connessione. URL

    Il prefisso dipende dal database. Dovrebbe essere impostato su jdbc:mysql for MySQL, jdbc:postgresql for Postgres e jdbc:sqlserver for Server. SQL L'esempio imposta su, URL dove jdbc:mysql://host_IP_Address:3306:simplejsp simplejsp è il nome breve dell'app.

  • factory: la DataSource fabbrica, necessaria per My SQL database.

Per ulteriori informazioni su questo file di configurazione, consulta l'argomento Utilizzo DataSources del wiki di Tomcat.