Använda SaltStack med pelare på Ubuntu 17.04

Även om SaltStack är ett utmärkt verktyg för att köra operationer på många servrar samtidigt, stöder det också per-värddefinierade konfigurationsförinställningar lagrade i en unik fil som vidare kallas "pelare". I den här guiden kommer vi att skriva en liten SaltStack-formel för att installera Nginx och automatisera distributionen av virtuella värdar med hjälp av pelare.

Krav

  • Vultr-instans som kör Ubuntu 17.04 (master)
  • Två Vultr-instanser som kör Ubuntu 17.04 (minions)

Ställer in master

Om du precis har börjat och inte har konfigurerat din SaltStack-master än, kolla in den här artikeln som förklarar hur du kommer igång med SaltStack.

Formel

Vi börjar med att skapa mappen för vår formel som ytterligare innehåller de filer som krävs för SaltStacks verksamhet på våra undersåtar.

mkdir -p /srv/salt/nginx

Efter att ha skapat mappen kan vi fortsätta med att skriva upp init.slsfilen som är en viktig del av varje formel:

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

Som du säkert har märkt använder SaltStack Jinja-mallmotorn för att generera dynamiska konfigurationsfiler. Detta ger ett brett utbud av möjligheter inom våra konfigurationsmallfiler, som att komma åt inbyggd Python-kod eller inställningsvariabler och liknande. Nästa steg består av att skapa mallen för vår virtualhosts.conffil, medan vi måste skapa mappen först:

mkdir -p /srv/salt/nginx/files

När mappen har skapats kan vi fortsätta med att skriva upp virtualhosts.jinjafilen:

{% 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 %}

Pelare

Efter att ha skapat formeln kan vi gå vidare och ställa in vår pelarbas:

mkdir -p /srv/pillar/

Alla referenser för värdar som matchar en viss pelarfil skrivs in i top.slsfilen i katalogen vi just skapade. I vårt exempel antar vi att två minions existerar med värdnamnet nginxwww1och nginxwww2medan vi kommer att tilldela dem båda unika pelarfiler:

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

Därefter fortsätter nginxwww1vi med att skapa en pelarfil för medan vi kommer att skapa en vhost-lyssning på port 81 för domänen example.com, där dokumentroten /var/www/example_com/och indexfilerna är index.shtml:

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

Vi kommer att fortsätta med att skapa en pelarfil för nginxwww2medan vi kommer att skapa en vhost-lyssning på port 82 för domänen example2.com, där dokumentroten /var/www/example2_com/och indexfilerna är index.jsoch index.css:

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

Obs: Pillar-filer lagras inom/srv/pillar/

Utplacering

Vi kan nu slutföra vårt första försök med pelare genom att uppdatera dem på våra undersåtar:

salt '*' saltutil.refresh_pillar

Efteråt kan vi köra SaltStack-formeln:

salt '*' state.sls nginx

Bekräftande

När SaltStack-formeln har körts och slutförts utan några fel bör vi kunna se att nginxlyssna på port 81nginxwww1och på port 82nginxwww2som bekräftelse.

Slutsats

Denna ganska lätta men redan kraftfulla SaltStack-formel kan utökas ytterligare för att lägga till stöd för HTTPS, eventuellt med en integration av Let's Encrypt, stöd för CGI- eller PHP-backends och allt du kan göra manuellt också. Den här guiden borde ha gett dig en grundläggande idé om SaltStack-formler och pelare som används för distribution av konfigurationsfiler. Lycka till med automatiseringen!

Lämna en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer