Verwenden von SaltStack mit Säulen unter Ubuntu 17.04

SaltStack ist ein großartiges Tool zum gleichzeitigen Ausführen von Vorgängen auf vielen Servern, unterstützt jedoch auch pro Host definierte Konfigurationsvoreinstellungen, die in einer eindeutigen Datei gespeichert sind, die auch als "Säule" bezeichnet wird. In diesem Handbuch schreiben wir eine kleine SaltStack-Formel für die Installation von Nginx und die Automatisierung der Bereitstellung virtueller Hosts mithilfe von Säulen.

Bedarf

  • Vultr-Instanz mit Ubuntu 17.04 (Master)
  • Zwei Vultr-Instanzen mit Ubuntu 17.04 (Minions)

Master einrichten

Wenn Sie gerade erst anfangen und Ihren SaltStack-Master noch nicht eingerichtet haben, lesen Sie diesen Artikel, in dem erläutert wird, wie Sie mit SaltStack beginnen.

Formel

Wir beginnen mit der Erstellung des Ordners für unsere Formel, der die Dateien enthält, die für die Operationen von SaltStack auf unseren Minions erforderlich sind.

mkdir -p /srv/salt/nginx

Nach dem Erstellen des Ordners können wir mit dem Schreiben der init.slsDatei fortfahren, die ein wesentlicher Bestandteil jeder Formel ist:

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

Wie Sie wahrscheinlich bemerkt haben, verwendet SaltStack die Jinja-Template-Engine zum Generieren dynamischer Konfigurationsdateien. Dies bietet eine breite Palette von Möglichkeiten in unseren Konfigurationsvorlagendateien, z. B. den Zugriff auf nativen Python-Code oder das Festlegen von Variablen und Ähnlichem. Der nächste Schritt besteht darin, die Vorlage für unsere virtualhosts.confDatei zu erstellen, während wir zuerst den Ordner erstellen müssen:

mkdir -p /srv/salt/nginx/files

Sobald der Ordner erstellt wurde, können wir mit dem Schreiben der virtualhosts.jinjaDatei fortfahren :

{% 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äule

Nachdem wir die Formel erstellt haben, können wir unsere Säulenbasis einrichten:

mkdir -p /srv/pillar/

Alle Referenzen für Hosts, die mit einer bestimmten Säulendatei übereinstimmen, werden in die top.slsDatei in dem gerade erstellten Verzeichnis geschrieben . In unserem Beispiel nehmen wir an, dass zwei Schergen mit dem Hostnamen existieren, nginxwww1und nginxwww2weisen ihnen beide eindeutige Säulendateien zu:

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

Als Nächstes werden wir mit der Erstellung einer nginxwww1Säulendatei fortfahren, während wir einen vhost erstellen example.com, der Port 81 für die Domäne überwacht , wobei das Dokumentstammverzeichnis /var/www/example_com/und die Indexdateien Folgendes sind index.shtml:

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

Wir werden mit dem Erstellen einer nginxwww2Säulendatei fortfahren, während wir einen vhost erstellen example2.com, der Port 82 für die Domäne überwacht , wobei das Dokumentstammverzeichnis /var/www/example2_com/und die Indexdateien index.jsund sind index.css:

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

Hinweis: Säulendateien werden in gespeichert/srv/pillar/

Bereitstellen

Wir können jetzt unseren ersten Versuch mit Säulen abschließen, indem wir sie auf unseren Schergen aktualisieren:

salt '*' saltutil.refresh_pillar

Anschließend können wir die SaltStack-Formel ausführen:

salt '*' state.sls nginx

Bestätigen

Sobald die SaltStack-Formel ohne Fehler ausgeführt und abgeschlossen wurde, sollten wir in der Lage sein, das nginxAbhören von Port 81an nginxwww1und Port 82an nginxwww2als Bestätigung zu sehen.

Fazit

Diese eher leichte, aber bereits leistungsstarke SaltStack-Formel kann um die Unterstützung von HTTPS erweitert werden, möglicherweise durch die Integration von Let's Encrypt, die Unterstützung von CGI- oder PHP-Backends und alles, was Sie auch manuell tun können. Dieses Handbuch sollte Ihnen eine grundlegende Vorstellung von SaltStack-Formeln und -Säulen geben, die für die Bereitstellung von Konfigurationsdateien verwendet werden. Viel Spaß beim Automatisieren!



Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.