Utilizzo di SaltStack With Pillars su Ubuntu 17.04

Mentre SaltStack è un ottimo strumento per eseguire operazioni su molti server contemporaneamente, supporta anche predefiniti di configurazione definiti per host memorizzati in un file univoco che sono ulteriormente chiamati "pilastro". In questa guida, scriveremo una piccola formula SaltStack per l'installazione di Nginx e l'automazione della distribuzione di host virtuali tramite pilastri.

Requisiti

  • Istanza Vultr che esegue Ubuntu 17.04 (master)
  • Due istanze di Vultr che eseguono Ubuntu 17.04 (minion)

Impostazione del master

Se hai appena iniziato e non hai ancora configurato il tuo master SaltStack, consulta questo articolo che spiega come iniziare con SaltStack.

Formula

Iniziamo con la creazione della cartella per la nostra formula che contiene ulteriormente i file necessari per le operazioni di SaltStack sui nostri servitori.

mkdir -p /srv/salt/nginx

Dopo aver creato la cartella, possiamo continuare a scrivere il init.slsfile che è una parte essenziale di ogni formula:

nginx:
  pkg:
    - installed

/etc/nginx/sites-enabled/virtualhosts.conf:
    file.managed:
        - source: salt://nginx/files/virtualhosts.jinja
        - template: jinja
        - user: root
        - group: root
        - mode: 655

  cmd:
    - run
    - names:
        - service nginx restart

Come probabilmente avrai notato, SaltStack utilizza il motore di template Jinja per generare file di configurazione dinamici. Ciò offre una vasta gamma di possibilità all'interno dei nostri file modello di configurazione, come l'accesso al codice nativo Python o l'impostazione di variabili e simili. Il passaggio successivo consiste nella creazione del modello per il nostro virtualhosts.conffile, mentre prima dobbiamo creare la cartella:

mkdir -p /srv/salt/nginx/files

Una volta creata la cartella, possiamo continuare a scrivere il virtualhosts.jinjafile:

{% for vhost in pillar['vhosts'] %}
server {
    listen {{ vhost['listenPort'] }};
    server_name {{ vhost['serverName'] }};
    root {{ vhost['documentRoot'] }};
    index {%- for index in vhost['indexFiles'] -%}{{ index }}{%- endfor -%};
    location / {
        try_files $uri $uri/ =404;
    }
}
{% endfor %}

Pilastro

Dopo aver creato la formula, possiamo andare avanti e impostare la nostra base Pillar:

mkdir -p /srv/pillar/

Eventuali riferimenti per host corrispondenti a un determinato file pilastro vengono scritti nel top.slsfile all'interno della directory che abbiamo appena creato. Nel nostro esempio, supponiamo che esistano due servitori con il nome host nginxwww1e nginxwww2che assegneremo loro entrambi i file pilastri univoci:

base:
  'id:nginxwww1':
    - match: grain
    - nginxwww1
  'id:nginxwww2':
    - match: grain
    - nginxwww2

Successivamente, continueremo con la creazione di un file pilastro per nginxwww1mentre creeremo un vhost in ascolto sulla porta 81 per il dominio example.com, essendo la radice del documento /var/www/example_com/e i file di indice index.shtml:

vhosts:
    -
      listenPort: '81'
      serverName: 'example.com'
      documentRoot: '/var/www/example_com'
      indexFiles:
        - index.shtml

Continueremo con la creazione di un file pilastro per nginxwww2mentre creeremo un vhost in ascolto sulla porta 82 per il dominio example2.com, essendo la radice del documento /var/www/example2_com/e i file di indice index.jse index.css:

vhosts:
    -
      listenPort: '82'
      serverName: 'example2.com'
      documentRoot: '/var/www/example2_com'
      indexFiles:
        - index.js
        - index.css

Nota: i file pilastro sono memorizzati all'interno/srv/pillar/

Distribuzione

Ora possiamo completare il nostro primo tentativo con i pilastri aggiornandoli sui nostri seguaci:

salt '*' saltutil.refresh_pillar

Successivamente, possiamo eseguire la formula SaltStack:

salt '*' state.sls nginx

confermando

Una volta che la formula SaltStack è stato eseguito e completato senza errori, dovremmo essere in grado di vedere nginxin ascolto sulla porta 81su nginxwww1e sulla porta 82su nginxwww2come conferma.

Conclusione

Questa formula SaltStack piuttosto leggera ma già potente può essere estesa ulteriormente per aggiungere supporto per HTTPS, possibilmente con un'integrazione di Let's Encrypt, supporto per backend CGI o PHP e tutto ciò che puoi fare manualmente. Questa guida avrebbe dovuto darti un'idea di base delle formule e dei pilastri SaltStack utilizzati per la distribuzione dei file di configurazione. Buona automazione!



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.