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

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 risorse JDBC che le applicazioni utilizzano per comunicare con l'istanza MySQL, 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 un JSON personalizzato per 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 database MySQL, 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 il rapporto tra l'applicazione e la risorsa JDBC che verrà utilizzata dall'applicazione 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 Stacks installa con l'evento Configure. AWS OpsWorks Il servizio AWS OpsWorks Stacks aggiunge attributi all'oggetto nodo di ogni istanza che contengono le informazioni che le ricette in genere 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 l'API o generati dal servizio Stacks. AWS OpsWorks 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 illustrato in Creare uno stack ed eseguire un'applicazione imposta la radice del documento su "ROOT", pertanto il contesto è ROOT e il file di configurazione viene denominato ROOT.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 nodo ['datasources'] degli attributi di configurazione dello stack contiene uno o più attributi, ciascuno dei quali mappa un nome di contesto alla risorsa di dati JDBC che l'applicazione associata utilizzerà per comunicare con il database. Il nodo e i relativi contenuti vengono definiti con un JSON personalizzato al momento della creazione dello stack, come descritto di seguito in Creare uno stack ed eseguire un'applicazione. L'esempio dispone di un singolo attributo che associa il nome di contesto ROOT a una risorsa JDBC 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 attributi caratterizzano la configurazione del contesto: Resource

  • name: il nome della risorsa JDBC, 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

  • MaxActive, MaxIdle 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: nome utente e password root del database, ottenuti dagli attributi. deploy

  • driverClassName—Il nome della classe del driver JDBC, impostato sul driver MySQL.

  • url: l'URL di connessione.

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

  • factory: la DataSource fabbrica, necessaria per i database MySQL.

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