Bruke SaltStack med søyler på Ubuntu 17.04

Mens SaltStack er et flott verktøy for å kjøre operasjoner på mange servere samtidig, støtter det også per-verts definerte konfigurasjonsforhåndsinnstillinger lagret i en unik fil som videre kalles "pilar". I denne guiden vil vi skrive en liten SaltStack-formel for å installere Nginx og automatisere distribusjonen av virtuelle verter ved hjelp av pilarer.

Krav

  • Vultr-forekomst som kjører Ubuntu 17.04 (master)
  • To Vultr-forekomster som kjører Ubuntu 17.04 (minions)

Sette opp master

Hvis du akkurat har begynt og ikke har satt opp SaltStack-masteren ennå, sjekk ut denne artikkelen som forklarer hvordan du kommer i gang med SaltStack.

Formel

Vi starter med å lage mappen for formelen vår som videre inneholder filene som kreves for SaltStacks operasjoner på våre undersåtter.

mkdir -p /srv/salt/nginx

Etter å ha opprettet mappen, kan vi fortsette med å skrive opp init.slsfilen som er en viktig del av hver 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 sikkert har lagt merke til, bruker SaltStack Jinja-malmotoren for å generere dynamiske konfigurasjonsfiler. Dette gir et bredt spekter av muligheter innenfor våre konfigurasjonsmalfiler, for eksempel tilgang til innebygd Python-kode eller innstillingsvariabler og lignende. Det neste trinnet består av å lage malen for virtualhosts.conffilen vår , mens vi først må lage mappen:

mkdir -p /srv/salt/nginx/files

Når mappen er opprettet, kan vi fortsette med å skrive opp 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 %}

Pilar

Etter å ha laget formelen, kan vi gå videre og sette opp vår søylebase:

mkdir -p /srv/pillar/

Eventuelle referanser for verter som samsvarer med en bestemt søylefil skrives inn i top.slsfilen i katalogen vi nettopp opprettet. I vårt eksempel antar vi at det eksisterer to undersåtter med vertsnavnet, nginxwww1og nginxwww2mens vi vil tilordne dem begge unike pilarfiler:

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

Deretter vil vi fortsette med å lage en pilar-fil for nginxwww1mens vi vil lage en vhost-lytting på port 81 for domenet example.com, hvor dokumentroten /var/www/example_com/og indeksfilene er index.shtml:

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

Vi vil fortsette med å lage en pilarfil for nginxwww2mens vi vil lage en vhost-lytting på port 82 for domenet example2.com, hvor dokumentroten /var/www/example2_com/og indeksfilene er index.jsog index.css:

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

Merk: Pilar-filer lagres innenfor/srv/pillar/

Utplassering

Vi kan nå fullføre vårt første forsøk med pilarer ved å oppdatere dem på våre undersåtter:

salt '*' saltutil.refresh_pillar

Etterpå kan vi kjøre SaltStack-formelen:

salt '*' state.sls nginx

Bekrefter

Når SaltStack-formelen er kjørt og fullført uten noen feil, bør vi kunne se nginxlytting på port 81nginxwww1og på port 82nginxwww2som bekreftelse.

Konklusjon

Denne ganske lette, men allerede kraftige SaltStack-formelen kan utvides ytterligere for å legge til støtte for HTTPS, muligens med en integrasjon av Let's Encrypt, støtte for CGI- eller PHP-backends og alt du kan gjøre manuelt også. Denne veiledningen skulle ha gitt deg en grunnleggende idé om SaltStack-formler og pilarer som brukes for distribusjon av konfigurasjonsfiler. Lykke til med automatisering!

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer