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

Come installare Drone CI su Ubuntu 18.04

Come installare Drone CI su Ubuntu 18.04

Introduzione Drone è una piattaforma di test e consegna automatizzata e continua che funziona sulla propria infrastruttura. Drone supporta qualsiasi lingua, servizio o

Come installare e configurare Concourse CI su Ubuntu 16.04

Come installare e configurare Concourse CI su Ubuntu 16.04

Usi un sistema diverso? Introduzione Lintegrazione continua è una pratica di sviluppo software DevOps che consente agli sviluppatori di unire frequentemente questo

Come installare e configurare Ansible su Debian 9 per luso con Windows Server

Come installare e configurare Ansible su Debian 9 per luso con Windows Server

Usi un sistema diverso? Ansible è uno strumento open source per lautomazione delle attività. Gestisce la configurazione dei server Linux e Windows. Funziona

Come installare e configurare GoCD su CentOS 7

Come installare e configurare GoCD su CentOS 7

Usi un sistema diverso? GoCD è un sistema di consegna e automazione continuo open source. Ti permette di modellare flussi di lavoro complessi usando il suo parallelo an

Creazione di istantanee con Packer

Creazione di istantanee con Packer

Che cosè Packer? Packer è uno strumento di imaging dei server sviluppato da HashiCorp. Imaging del server; o in alternativa, infrastruttura immutabile; è unalternativa popolare

Bilanciatori del carico Vultr

Bilanciatori del carico Vultr

Che cosè un servizio di bilanciamento del carico I servizi di bilanciamento del carico si trovano di fronte allapplicazione e distribuiscono il traffico in entrata su più istanze dellapplicazione. fo

Introduzione a SaltStack su Ubuntu 17.04

Introduzione a SaltStack su Ubuntu 17.04

SaltStack è un programma di gestione della configurazione basato su Python che è ottimizzato per lautomazione di file di configurazione, distribuzioni e qualsiasi altra cosa

Utilizzo di Chef-solo per configurare unapp Django su Ubuntu

Utilizzo di Chef-solo per configurare unapp Django su Ubuntu

Esistono molti modi per automatizzare il processo di installazione e configurazione di un box. Per qualunque motivo, se il nostro intero sistema a questo punto comprende solo

Come installare Jenkins su CentOS 7

Come installare Jenkins su CentOS 7

Jenkins è un popolare strumento di open source CI (integrazione continua) ampiamente utilizzato per lo sviluppo di progetti, la distribuzione e lautomazione. Questo articolo sarà

Come installare Strider CD su Ubuntu 18.04

Come installare Strider CD su Ubuntu 18.04

Introduzione Strider CD è una piattaforma di distribuzione continua open source. Lapplicazione è scritta in Node.js e utilizza MongoDB come back-end di archiviazione. Passo

Utilizzo di Chocolatey Package Manager su Windows

Utilizzo di Chocolatey Package Manager su Windows

Introduzione Chocolatey offre una gestione dei pacchetti che semplifica la gestione di software e dipendenze su Linux e Windows. Puoi farlo rapidamente e facilmente

Come installare Foreman su CentOS 7

Come installare Foreman su CentOS 7

Usi un sistema diverso? Foreman è uno strumento gratuito e open source che ti aiuta con la configurazione e la gestione di server fisici e virtuali. Forema

Come installare Foreman su Ubuntu 16.04 LTS

Come installare Foreman su Ubuntu 16.04 LTS

Usi un sistema diverso? Foreman è uno strumento gratuito e open source che ti aiuta con la configurazione e la gestione di server fisici e virtuali. Forema

Come installare e configurare Concourse CI su CentOS 7

Come installare e configurare Concourse CI su CentOS 7

Usi un sistema diverso? Introduzione Lintegrazione continua è una pratica di sviluppo software DevOps che consente agli sviluppatori di unire frequentemente questo

Come installare SaltStack su CentOS 7

Come installare SaltStack su CentOS 7

SaltStack, o Salt, è una popolare soluzione di gestione della configurazione open source che può essere utilizzata per implementare lesecuzione remota, la gestione della configurazione, cod

Come installare e configurare Ansible su CentOS 7 per luso con Windows Server

Come installare e configurare Ansible su CentOS 7 per luso con Windows Server

Usi un sistema diverso? Ansible è uno strumento open source per lautomazione delle attività. Gestisce la configurazione dei server Linux e Windows. Funziona

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.