SaltStack With Pillars gebruiken op Ubuntu 17.04

Hoewel SaltStack een geweldig hulpmiddel is om bewerkingen op veel servers tegelijkertijd uit te voeren, ondersteunt het ook door de host gedefinieerde configuratie-presets die zijn opgeslagen in een uniek bestand dat verder "pilaar" wordt genoemd. In deze gids zullen we een kleine SaltStack-formule schrijven voor het installeren van Nginx en het automatiseren van de implementatie van virtuele hosts met behulp van pijlers.

Vereisten

  • Vultr-instantie met Ubuntu 17.04 (master)
  • Twee Vultr-instanties met Ubuntu 17.04 (minions)

Master opzetten

Als je net begint en je SaltStack-master nog niet hebt ingesteld, lees dan dit artikel waarin wordt uitgelegd hoe je aan de slag kunt met SaltStack.

Formule

We beginnen met het maken van de map voor onze formule die verder de bestanden bevat die nodig zijn voor de bewerkingen van SaltStack op onze minions.

mkdir -p /srv/salt/nginx

Na het maken van de map kunnen we doorgaan met het schrijven van het init.slsbestand, wat een essentieel onderdeel is van elke 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

Zoals je waarschijnlijk hebt opgemerkt, gebruikt SaltStack de Jinja-templatie-engine voor het genereren van dynamische configuratiebestanden. Dit biedt een breed scala aan mogelijkheden binnen onze configuratiesjabloonbestanden, zoals toegang tot native Python-code of instellingsvariabelen en dergelijke. De volgende stap bestaat uit het maken van de sjabloon voor ons virtualhosts.confbestand, terwijl we eerst de map moeten maken:

mkdir -p /srv/salt/nginx/files

Zodra de map is gemaakt, kunnen we doorgaan met het schrijven van het virtualhosts.jinjabestand:

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

Pijler

Nadat we de formule hebben gemaakt, kunnen we doorgaan en onze pijlerbasis opzetten:

mkdir -p /srv/pillar/

Alle verwijzingen naar hosts die overeenkomen met een bepaald pijlerbestand worden in het top.slsbestand geschreven in de directory die we zojuist hebben gemaakt. In ons voorbeeld gaan we ervan uit dat er twee minions bestaan ​​met de hostnaam nginxwww1en nginxwww2terwijl we ze beide unieke pijlerbestanden zullen toewijzen:

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

Vervolgens gaan we door met het maken van een pijlerbestand voor, nginxwww1terwijl we een vhost maken die luistert op poort 81 voor het domein example.com, waarbij de documentroot /var/www/example_com/en de indexbestanden zijn index.shtml:

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

We zullen doorgaan met het maken van een pijlerbestand voor nginxwww2terwijl we een vhost zullen maken die luistert op poort 82 voor het domein example2.com, waarbij de documentroot /var/www/example2_com/en de indexbestanden zijn index.jsen index.css:

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

Opmerking: pijlerbestanden worden binnen opgeslagen/srv/pillar/

Implementeren

We kunnen nu onze eerste poging met pijlers voltooien door ze bij te werken op onze minions:

salt '*' saltutil.refresh_pillar

Daarna kunnen we de SaltStack-formule uitvoeren:

salt '*' state.sls nginx

Bevestigend

Zodra de SaltStack-formule zonder fouten is uitgevoerd en voltooid, zouden we het nginxluisteren op poort 81aan nginxwww1en poort 82op nginxwww2als bevestiging moeten kunnen zien .

Gevolgtrekking

Deze vrij lichte maar toch al krachtige SaltStack-formule kan verder worden uitgebreid om ondersteuning voor HTTPS toe te voegen, mogelijk met een integratie van Let's Encrypt, ondersteuning voor CGI- of PHP-backends en alles wat je ook handmatig kunt doen. Deze gids zou u een basisidee moeten hebben gegeven van SaltStack-formules en pijlers die worden gebruikt voor de implementatie van configuratiebestanden. Veel plezier met automatiseren!



Leave a Comment

Hoe Drone CI op Ubuntu 18.04 te installeren

Hoe Drone CI op Ubuntu 18.04 te installeren

Introductie Drone is een geautomatiseerd, continu test- en leveringsplatform dat draait op uw eigen infrastructuur. Drone ondersteunt elke taal, service o

Ansible installeren en configureren op Debian 9 voor gebruik met Windows Server

Ansible installeren en configureren op Debian 9 voor gebruik met Windows Server

Gebruikt u een ander systeem? Ansible is een open source-tool voor het automatiseren van taken. Het beheert de configuratie van uw Linux- en Windows-servers. Het werk

Snapshots maken met Packer

Snapshots maken met Packer

Wat is Packer? Packer is een server-imaging tool ontwikkeld door HashiCorp. Serverbeeldvorming; of anders onveranderlijke infrastructuur; is een populair alternatief

Vultr Load Balancers

Vultr Load Balancers

Wat is een Load Balancer? Load Balancers zitten voor uw applicatie en verdelen inkomend verkeer over meerdere instanties van uw applicatie. Fo

GoCD installeren en configureren op CentOS 7

GoCD installeren en configureren op CentOS 7

Gebruikt u een ander systeem? GoCD is een open source systeem voor continue levering en automatisering. Hiermee kunt u complexe workflows modelleren met behulp van de parallelle en

Aan de slag met SaltStack op Ubuntu 17.04

Aan de slag met SaltStack op Ubuntu 17.04

SaltStack is een op python gebaseerd configuratiebeheerprogramma dat is geoptimaliseerd voor de automatisering van configuratiebestanden, implementaties en al het andere

Chef-solo gebruiken om een ​​Django-app op Ubuntu te configureren

Chef-solo gebruiken om een ​​Django-app op Ubuntu te configureren

Er zijn veel manieren om het instellen en configureren van een box te automatiseren. Om wat voor reden dan ook, als ons hele systeem op dit punt bestaat uit rechtvaardig

Hoe Jenkins op CentOS 7 te installeren

Hoe Jenkins op CentOS 7 te installeren

Jenkins is een populaire open source CI-tool (Continuous Integration) die veel wordt gebruikt voor projectontwikkeling, implementatie en automatisering. Dit artikel zal

Hoe Strider CD op Ubuntu 18.04 te installeren

Hoe Strider CD op Ubuntu 18.04 te installeren

Inleiding Strider CD is een open source continu implementatieplatform. De applicatie is geschreven in Node.js en gebruikt MongoDB als opslagbackend. Pas op

Chocolatey Package Manager gebruiken op Windows

Chocolatey Package Manager gebruiken op Windows

Introductie Chocolatey brengt pakketbeheer dat het beheer van software en afhankelijkheden op Linux, eenvoudig maakt voor Windows. Dat kan snel en gemakkelijk

Foreman installeren op CentOS 7

Foreman installeren op CentOS 7

Gebruikt u een ander systeem? Foreman is een gratis en open source tool die je helpt bij het configureren en beheren van fysieke en virtuele servers. Forema

Hoe Foreman op Ubuntu 16.04 LTS te installeren

Hoe Foreman op Ubuntu 16.04 LTS te installeren

Gebruikt u een ander systeem? Foreman is een gratis en open source tool die je helpt bij het configureren en beheren van fysieke en virtuele servers. Forema

Concourse CI installeren en configureren op CentOS 7

Concourse CI installeren en configureren op CentOS 7

Gebruikt u een ander systeem? Introductie Continuous Integration is een DevOps-softwareontwikkelingspraktijk waarmee de ontwikkelaars deze vaak kunnen samenvoegen

Concourse CI installeren en configureren op Ubuntu 16.04

Concourse CI installeren en configureren op Ubuntu 16.04

Gebruikt u een ander systeem? Introductie Continuous Integration is een DevOps-softwareontwikkelingspraktijk waarmee de ontwikkelaars deze vaak kunnen samenvoegen

SaltStack installeren op CentOS 7

SaltStack installeren op CentOS 7

SaltStack, of Salt, is een populaire open source oplossing voor configuratiebeheer die kan worden gebruikt voor uitvoering op afstand, configuratiebeheer en codering

Ansible installeren en configureren op CentOS 7 voor gebruik met Windows Server

Ansible installeren en configureren op CentOS 7 voor gebruik met Windows Server

Gebruikt u een ander systeem? Ansible is een open source-tool voor het automatiseren van taken. Het beheert de configuratie van uw Linux- en Windows-servers. Het werk

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.