Utilizarea SaltStack cu stâlpii de pe Ubuntu 17.04

În timp ce SaltStack este un instrument excelent pentru a rula operațiuni pe mai multe servere simultan, acesta acceptă și presetări de configurare definite per gazdă, stocate într-un fișier unic, care mai sunt numite „pilon”. În acest ghid, vom scrie o mică formulă SaltStack pentru instalarea Nginx și automatizarea implementării gazdelor virtuale folosind stâlpi.

cerinţe

  • Instanță Vultr care rulează Ubuntu 17.04 (master)
  • Două instanțe Vultr care rulează Ubuntu 17.04 (minions)

Configurarea maestrului

Dacă tocmai începeți și nu ați configurat încă maestrul SaltStack, consultați acest articol care explică cum să începeți cu SaltStack.

Formulă

Începem cu crearea dosarului pentru formula noastră, care deține în continuare fișierele necesare pentru operațiunile SaltStack pe minionișii noștri.

mkdir -p /srv/salt/nginx

După crearea dosarului, putem continua cu scrierea init.slsfișierului care este o parte esențială a fiecărei formule:

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

După cum probabil ați observat, SaltStack utilizează motorul de plantare Jinja pentru a genera fișiere de configurare dinamice. Aceasta oferă o gamă largă de posibilități în fișierele de șabloane de configurare, cum ar fi accesarea codului Python nativ sau la variabile de setare și similare. Următorul pas constă în crearea șablonului pentru virtualhosts.conffișierul nostru , în timp ce mai întâi trebuie să creăm folderul:

mkdir -p /srv/salt/nginx/files

Odată ce folderul este creat, putem continua cu scrierea virtualhosts.jinjafișierului:

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

Stâlp

După crearea formulei, putem merge înainte și configura baza pilonului nostru:

mkdir -p /srv/pillar/

Orice referințe pentru gazde care se potrivesc cu un anumit fișier pilon sunt scrise în top.slsfișier în directorul pe care tocmai l-am creat. În exemplul nostru, presupunem că două minioni există cu numele de gazdă nginxwww1și în nginxwww2timp ce le vom atribui ambelor fișiere de pilon unice:

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

În continuare, vom continua cu crearea unui fișier pilon pentru nginxwww1că vom crea o audiere vhost pe portul 81 pentru domeniu example.com, rădăcina documentului fiind /var/www/example_com/și fișierele index fiind index.shtml:

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

Vom continua cu crearea unui fișier pilon pentru nginxwww2că vom crea o ascultare vhost pe portul 82 pentru domeniu example2.com, rădăcina documentului fiind /var/www/example2_com/și fișierele index fiind index.jsși index.css:

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

Notă: Fișierele pilon sunt stocate în interior/srv/pillar/

Implementarea

Acum putem completa prima încercare cu piloni, actualizându-i pe minionii noștri:

salt '*' saltutil.refresh_pillar

După aceea, putem rula formula SaltStack:

salt '*' state.sls nginx

Confirmarea

Odată cu formula SaltStack a fost rulat și completat fără erori, ar trebui să putem vedea de nginxascultare pe portul de 81pe nginxwww1și pe portul 82la nginxwww2confirmarea.

Concluzie

Această formulă destul de ușoară, dar deja puternică, SaltStack, poate fi extinsă suplimentar pentru a adăuga suport pentru HTTPS, eventual cu o integrare a Let's Encrypt, asistență pentru back-up-uri CGI sau PHP și tot ceea ce puteți face manual. Acest ghid ar fi trebuit să vă ofere o idee de bază a formulelor SaltStack și a pilonilor utilizați pentru implementarea fișierelor de configurare. Automatizări fericite!



Noțiuni introductive cu SaltStack pe Ubuntu 17.04

Noțiuni introductive cu SaltStack pe Ubuntu 17.04

SaltStack este un program de gestionare a configurațiilor bazat pe python, care este optimizat pentru automatizarea fișierelor de configurare, implementări și orice altceva unde

Cum se instalează și se configurează GoCD pe CentOS 7

Cum se instalează și se configurează GoCD pe CentOS 7

Folosind un sistem diferit? GoCD este un sistem de livrare și automatizare continuă a surselor deschise. Vă permite să modelați fluxuri de lucru complexe folosind paralelul său

Cum se instalează Jenkins pe CentOS 7

Cum se instalează Jenkins pe CentOS 7

Jenkins este un instrument popular de sursă deschisă (integrare continuă), care este utilizat pe scară largă pentru dezvoltarea proiectului, implementare și automatizare. Acest articol wil

Cum se instalează Drone CI pe Ubuntu 18.04

Cum se instalează Drone CI pe Ubuntu 18.04

Introducere Drone este o platformă automatizată, continuă de testare și livrare, care rulează pe propria infrastructură. Drone acceptă orice limbă, serviciu

Folosirea Chef-solo pentru a configura o aplicație Django pe Ubuntu

Folosirea Chef-solo pentru a configura o aplicație Django pe Ubuntu

Există multe modalități de a automatiza procesul de configurare și configurare a unei casete. Pentru orice motiv, dacă întregul nostru sistem în acest moment cuprinde doar

Echipamente de încărcare Vultr

Echipamente de încărcare Vultr

Ce este un echilibru de încărcare Balanții de încărcare stau în fața aplicației și distribuie traficul primit pe mai multe instanțe ale aplicației. Fo

Cum se instalează și se configura Ansible pe CentOS 7 pentru utilizare cu Windows Server

Cum se instalează și se configura Ansible pe CentOS 7 pentru utilizare cu Windows Server

Folosind un sistem diferit? Ansible este un instrument open source pentru automatizarea sarcinilor. Gestionează configurația serverelor Linux și Windows. Functioneaza

Cum se instalează CD-ul Strider pe Ubuntu 18.04

Cum se instalează CD-ul Strider pe Ubuntu 18.04

Introducere Strider CD este o platformă de implementare continuă a surselor deschise. Aplicația este scrisă în Node.js și folosește MongoDB ca backend de stocare. Pas

Cum se instalează SaltStack pe CentOS 7

Cum se instalează SaltStack pe CentOS 7

SaltStack, sau Salt, este o soluție populară de gestionare a configurației open source, care poate fi folosită pentru a implementa execuția de la distanță, gestionarea configurației, codul

Cum se instalează și se configura Ansible pe Debian 9 pentru utilizare cu Windows Server

Cum se instalează și se configura Ansible pe Debian 9 pentru utilizare cu Windows Server

Folosind un sistem diferit? Ansible este un instrument open source pentru automatizarea sarcinilor. Gestionează configurația serverelor Linux și Windows. Functioneaza

Crearea instantaneelor ​​cu Packer

Crearea instantaneelor ​​cu Packer

Ce este Packer? Packer este un instrument de imagini pe server dezvoltat de HashiCorp. Imagistica server; sau, alternativ, infrastructură imuabilă; este un alternativ popular

Utilizarea Managerului de pachete Chocolatey pe Windows

Utilizarea Managerului de pachete Chocolatey pe Windows

Introducere Chocolatey aduce managementul pachetelor care facilitează administrarea software-ului și a dependențelor pe Linux, la Windows. Puteți rapid și ușura

Cum se instalează Foreman pe CentOS 7

Cum se instalează Foreman pe CentOS 7

Folosind un sistem diferit? Foreman este un instrument gratuit și open source care vă ajută la configurarea și gestionarea serverelor fizice și virtuale. Forema

Cum se instalează Foreman pe Ubuntu 16.04 LTS

Cum se instalează Foreman pe Ubuntu 16.04 LTS

Folosind un sistem diferit? Foreman este un instrument gratuit și open source care vă ajută la configurarea și gestionarea serverelor fizice și virtuale. Forema

Cum se instalează și se configurează CI-ul Concourse pe CentOS 7

Cum se instalează și se configurează CI-ul Concourse pe CentOS 7

Folosind un sistem diferit? Introducere Integrarea continuă este o practică de dezvoltare a software-ului DevOps care permite dezvoltatorilor să se unească frecvent cu cel de-al treilea

Cum se instalează și se configurează Concourse CI pe Ubuntu 16.04

Cum se instalează și se configurează Concourse CI pe Ubuntu 16.04

Folosind un sistem diferit? Introducere Integrarea continuă este o practică de dezvoltare a software-ului DevOps care permite dezvoltatorilor să se unească frecvent cu cel de-al treilea

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe