Kërkesat
Kryerja e konfigurimit
Formula
Shtylla
Duke vendosur
Duke konfirmuar
konkluzioni
Ndërsa SaltStack është një mjet i shkëlqyeshëm për ekzekutimin e operacioneve në shumë serverë njëkohësisht, ai gjithashtu mbështet paracaktimet e konfigurimit të përcaktuara për host të ruajtur në një skedar unik të quajtur më tej "shtylla". Në këtë udhëzues, ne do të shkruajmë një formulë të vogël SaltStack për instalimin e Nginx dhe automatizimin e vendosjes së hosteve virtualë duke përdorur shtylla.
Kërkesat
- Shembull Vultr që ekzekuton Ubuntu 17.04 (master)
- Dy raste të Vultr që ekzekutojnë Ubuntu 17.04 (minions)
Kryerja e konfigurimit
Nëse sapo po filloni dhe nuk e keni konfiguruar ende masterin tuaj të SaltStack, shikoni këtë artikull i cili shpjegon se si të filloni me SaltStack.
Ne fillojmë me krijimin e dosjes për formulën tonë e cila më tej mban skedarët e kërkuar për operacionet e SaltStack në minionët tanë.
mkdir -p /srv/salt/nginx
Pas krijimit të dosjes, ne mund të vazhdojmë me shkrimin e init.slsskedarit i cili është një pjesë thelbësore e çdo 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
Siç e keni vënë re ndoshta, SaltStack përdor motorin e modelimit Jinja për gjenerimin e skedarëve dinamikë të konfigurimit. Kjo ofron një gamë të gjerë mundësish brenda skedarëve tanë të modelit të konfigurimit, të tilla si qasja në kodin vendas të Python ose vendosja e variablave dhe të ngjashme. Hapi tjetër konsiston në krijimin e shabllonit për virtualhosts.confskedarin tonë , ndërsa ne fillimisht duhet të krijojmë dosjen:
mkdir -p /srv/salt/nginx/files
Pasi të krijohet dosja, ne mund të vazhdojmë me shkrimin e virtualhosts.jinjaskedarit:
{% 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 %}
Shtylla
Pas krijimit të formulës, ne mund të vazhdojmë dhe të vendosim bazën tonë të Shtyllës:
mkdir -p /srv/pillar/
Çdo referencë për hostet që përputhen me një skedar të caktuar shtyllësh shkruhen në top.slsskedar brenda drejtorisë që sapo krijuam. Në shembullin tonë, supozojmë se ekzistojnë dy minionë me emrin e hostit nginxwww1dhe nginxwww2do t'u caktojmë atyre të dy skedarët e shtyllave unike:
base:
'id:nginxwww1':
- match: grain
- nginxwww1
'id:nginxwww2':
- match: grain
- nginxwww2
Më pas, ne do të vazhdojmë me krijimin e një skedari shtyllë për nginxwww1ndërsa do të krijojmë një vhost që dëgjon në portin 81 për domenin example.com, ku rrënja e dokumentit është /var/www/example_com/dhe skedarët e indeksit janë index.shtml:
vhosts:
-
listenPort: '81'
serverName: 'example.com'
documentRoot: '/var/www/example_com'
indexFiles:
- index.shtml
Ne do të vazhdojmë me krijimin e një skedari shtyllë për nginxwww2ndërsa ne do të krijojmë një vhost që dëgjon në portin 82 për domenin example2.com, duke qenë rrënja e dokumentit /var/www/example2_com/dhe skedarët e indeksit janë index.jsdhe index.css:
vhosts:
-
listenPort: '82'
serverName: 'example2.com'
documentRoot: '/var/www/example2_com'
indexFiles:
- index.js
- index.css
Shënim: Skedarët e shtyllave ruhen brenda/srv/pillar/
Duke vendosur
Tani mund të përfundojmë provën tonë të parë me shtyllat duke i përditësuar ato në miqtë tanë:
salt '*' saltutil.refresh_pillar
Më pas, ne mund të ekzekutojmë formulën SaltStack:
salt '*' state.sls nginx
Duke konfirmuar
Pasi formula SaltStack të jetë ekzekutuar dhe përfunduar pa asnjë gabim, ne duhet të jemi në gjendje të shohim nginxdëgjimin në portin 81në nginxwww1dhe në portin 82ndezur nginxwww2si konfirmim.
konkluzioni
Kjo formulë mjaft e lehtë, por tashmë e fuqishme SaltStack mund të zgjerohet më tej për të shtuar mbështetje për HTTPS, ndoshta me një integrim të Let's Encrypt, mbështetje për CGI ose PHP backend dhe gjithçka që mund të bëni gjithashtu manualisht. Ky udhëzues duhet t'ju ketë dhënë një ide bazë të formulave dhe shtyllave të SaltStack të përdorura për vendosjen e skedarëve të konfigurimit. Gëzuar automatizimin!