Brug af SaltStack med søjler på Ubuntu 17.04

Mens SaltStack er et fantastisk værktøj til at køre operationer på mange servere samtidigt, understøtter det også per-host definerede konfigurationsforudindstillinger gemt i en unik fil, som videre kaldes "pillar". I denne guide vil vi skrive en lille SaltStack-formel til installation af Nginx og automatisering af udrulningen af ​​virtuelle værter ved hjælp af søjler.

Krav

  • Vultr-instans, der kører Ubuntu 17.04 (master)
  • To Vultr-forekomster, der kører Ubuntu 17.04 (minions)

Opsætning af master

Hvis du lige er begyndt og ikke har konfigureret din SaltStack-master endnu, så tjek denne artikel, som forklarer, hvordan du kommer i gang med SaltStack.

Formel

Vi starter med at oprette mappen til vores formel, som yderligere indeholder de filer, der kræves til SaltStacks operationer på vores håndlangere.

mkdir -p /srv/salt/nginx

Efter at have oprettet mappen, kan vi fortsætte med at skrive init.slsfilen op, som er en væsentlig del af 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 bemærket, bruger SaltStack Jinja-skabelonmotoren til at generere dynamiske konfigurationsfiler. Dette giver en bred vifte af muligheder inden for vores konfigurationsskabelonfiler, såsom adgang til indbygget Python-kode eller indstilling af variabler og lignende. Det næste trin består i at oprette skabelonen til vores virtualhosts.conffil, mens vi først skal oprette mappen:

mkdir -p /srv/salt/nginx/files

Når mappen er oprettet, kan vi fortsætte med at skrive virtualhosts.jinjafilen op:

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

Søjle

Efter at have oprettet formlen, kan vi gå videre og opsætte vores søjlebase:

mkdir -p /srv/pillar/

Eventuelle referencer for værter, der matcher en bestemt søjlefil, skrives ind i top.slsfilen i den mappe, vi lige har oprettet. I vores eksempel antager vi, at der eksisterer to håndlangere med værtsnavnet, nginxwww1og nginxwww2hvorimod vi vil tildele dem begge unikke søjlefiler:

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

Dernæst vil vi fortsætte med at oprette en søjlefil for, nginxwww1hvorimod vi vil oprette en vhost-lytning på port 81 for domænet example.com, hvor dokumentroden /var/www/example_com/og indeksfilerne er index.shtml:

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

Vi vil fortsætte med at oprette en søjlefil for, nginxwww2hvorimod vi vil oprette en vhost-lytning på port 82 for domænet example2.com, hvor dokumentroden /var/www/example2_com/og indeksfilerne er index.jsog index.css:

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

Bemærk: Søjlefiler gemmes indenfor/srv/pillar/

Udruller

Vi kan nu fuldføre vores første forsøg med søjler ved at opdatere dem på vores håndlangere:

salt '*' saltutil.refresh_pillar

Bagefter kan vi køre SaltStack-formlen:

salt '*' state.sls nginx

Bekræfter

Når SaltStack-formlen er kørt og fuldført uden nogen fejl, burde vi kunne se nginxlytning på port 81nginxwww1og på port 82nginxwww2som bekræftelse.

Konklusion

Denne ret lette, men allerede kraftfulde SaltStack-formel kan udvides yderligere for at tilføje understøttelse af HTTPS, muligvis med en integration af Let's Encrypt, understøttelse af CGI- eller PHP-backends og alt, hvad du også kan gøre manuelt. Denne guide skulle have givet dig en grundlæggende idé om SaltStack-formler og søjler, der bruges til udrulning af konfigurationsfiler. God automatisering!

Efterlad 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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere