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!


Hvordan installere Jenkins på CentOS 7

Hvordan installere Jenkins på CentOS 7

Jenkins er et populært åpen kildekode CI (Continuous Integration)-verktøy som er mye brukt for prosjektutvikling, distribusjon og automatisering. Denne artikkelen vil

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere og konfigurere GoCD på CentOS 7

Hvordan installere og konfigurere GoCD på CentOS 7

Bruker du et annet system? GoCD er et åpen kildekodesystem for kontinuerlig levering og automatisering. Den lar deg modellere komplekse arbeidsflyter ved å bruke dens parallelle an

Bruke SaltStack med søyler på Ubuntu 17.04

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

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere Drone CI på Ubuntu 18.04

Hvordan installere Drone CI på Ubuntu 18.04

Introduksjon Drone er en automatisert, kontinuerlig test- og leveringsplattform som kjører på din egen infrastruktur. Drone støtter alle språk, tjenester o

Vultr Load Balancers

Vultr Load Balancers

Hva er en Load Balancer Load Balancers sitter foran applikasjonen din og distribuerer innkommende trafikk over flere forekomster av applikasjonen. Fo

Hvordan installere Foreman på CentOS 7

Hvordan installere Foreman på CentOS 7

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Slik installerer du SaltStack på CentOS 7

Slik installerer du SaltStack på CentOS 7

SaltStack, eller Salt, er en populær åpen kildekode-konfigurasjonsadministrasjonsløsning som kan brukes til å implementere ekstern kjøring, konfigurasjonsadministrasjon, cod

Hvordan installere Strider CD på Ubuntu 18.04

Hvordan installere Strider CD på Ubuntu 18.04

Introduksjon Strider CD er en åpen kildekode-plattform for kontinuerlig distribusjon. Applikasjonen er skrevet i Node.js og bruker MongoDB som backend for lagring. Skritt

Bruke Chocolatey Package Manager på Windows

Bruke Chocolatey Package Manager på Windows

Introduksjon Chocolatey bringer pakkeadministrasjon som gjør det enkelt å administrere programvare og avhengigheter på Linux, til Windows. Du kan raskt og enkelt

Lage øyeblikksbilder med Packer

Lage øyeblikksbilder med Packer

Hva er Packer? Packer er et serverbildeverktøy utviklet av HashiCorp. Server bildebehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ

Hvordan installere og konfigurere Concourse CI på CentOS 7

Hvordan installere og konfigurere Concourse CI på CentOS 7

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Det er mange måter å automatisere prosessen med å sette opp og konfigurere en boks. Uansett grunn, hvis hele systemet vårt på dette tidspunktet består av bare

Hvordan installere Foreman på Ubuntu 16.04 LTS

Hvordan installere Foreman på Ubuntu 16.04 LTS

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Komme i gang med SaltStack på Ubuntu 17.04

Komme i gang med SaltStack på Ubuntu 17.04

SaltStack er et python-basert konfigurasjonsadministrasjonsprogram som er optimalisert for automatisering av konfigurasjonsfiler, distribusjoner og alt annet

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.

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.

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.

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