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!


Sådan installeres Jenkins på CentOS 7

Sådan installeres Jenkins på CentOS 7

Jenkins er et populært open source CI (Continuous Integration) værktøj, som er meget brugt til projektudvikling, implementering og automatisering. Denne artikel vil

Sådan installeres og konfigureres Concourse CI på Ubuntu 16.04

Sådan installeres og konfigureres Concourse CI på Ubuntu 16.04

Bruger du et andet system? Introduktion Kontinuerlig integration er en DevOps-softwareudviklingspraksis, som gør det muligt for udviklerne ofte at fusionere

How to Install and Configure Ansible on Debian 9 for Use With Windows Server

How to Install and Configure Ansible on Debian 9 for Use With Windows Server

Using a Different System? Ansible is an open source tool for automating tasks. It manages the configuration of your Linux and Windows servers. It work

Sådan installeres og konfigureres GoCD på CentOS 7

Sådan installeres og konfigureres GoCD på CentOS 7

Bruger du et andet system? GoCD er et open source system til kontinuerlig levering og automatisering. Det giver dig mulighed for at modellere komplekse arbejdsgange ved hjælp af dens parallelle an

Brug af SaltStack med søjler på Ubuntu 17.04

Brug af SaltStack med søjler på Ubuntu 17.04

Selvom 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

Sådan installeres og konfigureres Ansible på CentOS 7 til brug med Windows Server

Sådan installeres og konfigureres Ansible på CentOS 7 til brug med Windows Server

Bruger du et andet system? Ansible er et open source-værktøj til automatisering af opgaver. Det styrer konfigurationen af ​​dine Linux- og Windows-servere. Det virker

Sådan installeres Drone CI på Ubuntu 18.04

Sådan installeres Drone CI på Ubuntu 18.04

Introduktion Drone er en automatiseret, kontinuerlig test- og leveringsplatform, som kører på din egen infrastruktur. Drone understøtter ethvert sprog, service o

Vultr Load Balancers

Vultr Load Balancers

Hvad er en Load Balancer Load Balancers sidder foran din applikation og fordeler indgående trafik på tværs af flere forekomster af din applikation. Fo

Sådan installeres Foreman på CentOS 7

Sådan installeres Foreman på CentOS 7

Bruger du et andet system? Foreman er et gratis og open source værktøj, som hjælper dig med konfiguration og administration af fysiske og virtuelle servere. Forema

Sådan installeres SaltStack på CentOS 7

Sådan installeres SaltStack på CentOS 7

SaltStack, eller Salt, er en populær open source-konfigurationsstyringsløsning, som kan bruges til at implementere fjernudførelse, konfigurationsstyring, torsk

Sådan installeres Strider CD på Ubuntu 18.04

Sådan installeres Strider CD på Ubuntu 18.04

Introduktion Strider CD er en open source platform til kontinuerlig implementering. Applikationen er skrevet i Node.js og bruger MongoDB som lagerbackend. Skridt

Brug af Chocolatey Package Manager på Windows

Brug af Chocolatey Package Manager på Windows

Introduktion Chocolatey bringer pakkehåndtering, der gør administration af software og afhængigheder let på Linux, til Windows. Du kan hurtigt og nemt

Oprettelse af snapshots med Packer

Oprettelse af snapshots med Packer

Hvad er Packer? Packer er et serverbilledværktøj udviklet af HashiCorp. Server billedbehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ

Sådan installeres og konfigureres Concourse CI på CentOS 7

Sådan installeres og konfigureres Concourse CI på CentOS 7

Bruger du et andet system? Introduktion Kontinuerlig integration er en DevOps-softwareudviklingspraksis, som gør det muligt for udviklerne ofte at fusionere

Brug af Chef-solo til at konfigurere en Django-app på Ubuntu

Brug af Chef-solo til at konfigurere en Django-app på Ubuntu

Der er mange måder at automatisere processen med at opsætte og konfigurere en boks. Uanset årsagen, hvis hele vores system på dette tidspunkt består af bare

Sådan installeres Foreman på Ubuntu 16.04 LTS

Sådan installeres Foreman på Ubuntu 16.04 LTS

Bruger du et andet system? Foreman er et gratis og open source værktøj, som hjælper dig med konfiguration og administration af fysiske og virtuelle servere. Forema

Kom godt i gang med SaltStack på Ubuntu 17.04

Kom godt i gang med SaltStack på Ubuntu 17.04

SaltStack er et python-baseret konfigurationsstyringsprogram, som er optimeret til automatisering af konfigurationsfiler, implementeringer og alt andet unde

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.

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.

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.

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