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

Erstellen von Snapshots mit Packer

Erstellen von Snapshots mit Packer

Was ist Packer? Packer ist ein von HashiCorp entwickeltes Server-Imaging-Tool. Server-Imaging; oder alternativ unveränderliche Infrastruktur; ist eine beliebte Alternative

Erste Schritte mit SaltStack unter Ubuntu 17.04

Erste Schritte mit SaltStack unter Ubuntu 17.04

SaltStack ist ein Python-basiertes Konfigurationsverwaltungsprogramm, das für die Automatisierung von Konfigurationsdateien, Bereitstellungen und allem anderen optimiert ist

So installieren und konfigurieren Sie Concourse CI unter CentOS 7

So installieren und konfigurieren Sie Concourse CI unter CentOS 7

Verwenden Sie ein anderes System? Einführung Die kontinuierliche Integration ist eine DevOps-Softwareentwicklungspraxis, mit der die Entwickler diese häufig zusammenführen können

So installieren Sie SaltStack unter CentOS 7

So installieren Sie SaltStack unter CentOS 7

SaltStack oder Salt ist eine beliebte Open-Source-Konfigurationsverwaltungslösung, mit der Remote-Ausführung, Konfigurationsverwaltung und Cod implementiert werden können

So installieren Sie Drone CI unter Ubuntu 18.04

So installieren Sie Drone CI unter Ubuntu 18.04

Einführung Drone ist eine automatisierte, kontinuierliche Test- und Bereitstellungsplattform, die auf Ihrer eigenen Infrastruktur ausgeführt wird. Drohne unterstützt jede Sprache, Dienst o

Vultr Load Balancer

Vultr Load Balancer

Was ist ein Load Balancer? Load Balancer sitzen vor Ihrer Anwendung und verteilen den eingehenden Datenverkehr auf mehrere Instanzen Ihrer Anwendung. Fo

So installieren und konfigurieren Sie Ansible unter Debian 9 für die Verwendung mit Windows Server

So installieren und konfigurieren Sie Ansible unter Debian 9 für die Verwendung mit Windows Server

Verwenden Sie ein anderes System? Ansible ist ein Open Source-Tool zur Automatisierung von Aufgaben. Es verwaltet die Konfiguration Ihrer Linux- und Windows-Server. Es funktioniert

Verwenden von Chef-Solo zum Konfigurieren einer Django-App unter Ubuntu

Verwenden von Chef-Solo zum Konfigurieren einer Django-App unter Ubuntu

Es gibt viele Möglichkeiten, den Prozess des Einrichtens und Konfigurierens einer Box zu automatisieren. Aus welchem ​​Grund auch immer, wenn unser gesamtes System an dieser Stelle aus gerecht besteht

So installieren und konfigurieren Sie Ansible unter CentOS 7 für die Verwendung mit Windows Server

So installieren und konfigurieren Sie Ansible unter CentOS 7 für die Verwendung mit Windows Server

Verwenden Sie ein anderes System? Ansible ist ein Open Source-Tool zur Automatisierung von Aufgaben. Es verwaltet die Konfiguration Ihrer Linux- und Windows-Server. Es funktioniert

So installieren Sie Jenkins unter CentOS 7

So installieren Sie Jenkins unter CentOS 7

Jenkins ist ein beliebtes Open-Source-CI-Tool (Continuous Integration), das häufig für die Projektentwicklung, -bereitstellung und -automatisierung verwendet wird. Dieser Artikel wird

Verwenden von Chocolatey Package Manager unter Windows

Verwenden von Chocolatey Package Manager unter Windows

Einführung Chocolatey bietet eine Paketverwaltung, die die Verwaltung von Software und Abhängigkeiten unter Linux für Windows vereinfacht. Sie können schnell und einfach

So installieren Sie Foreman unter CentOS 7

So installieren Sie Foreman unter CentOS 7

Verwenden Sie ein anderes System? Foreman ist ein kostenloses Open Source-Tool, das Sie bei der Konfiguration und Verwaltung von physischen und virtuellen Servern unterstützt. Forema

So installieren und konfigurieren Sie Concourse CI unter Ubuntu 16.04

So installieren und konfigurieren Sie Concourse CI unter Ubuntu 16.04

Verwenden Sie ein anderes System? Einführung Die kontinuierliche Integration ist eine DevOps-Softwareentwicklungspraxis, mit der die Entwickler diese häufig zusammenführen können

So installieren Sie die Strider-CD unter Ubuntu 18.04

So installieren Sie die Strider-CD unter Ubuntu 18.04

Einführung Strider CD ist eine Open Source-Plattform für die kontinuierliche Bereitstellung. Die Anwendung ist in Node.js geschrieben und verwendet MongoDB als Speicher-Backend. Schreiten

So installieren und konfigurieren Sie GoCD unter CentOS 7

So installieren und konfigurieren Sie GoCD unter CentOS 7

Verwenden Sie ein anderes System? GoCD ist ein Open Source-System für die kontinuierliche Lieferung und Automatisierung. Sie können komplexe Workflows mithilfe ihrer parallelen Funktion modellieren

So installieren Sie Foreman unter Ubuntu 16.04 LTS

So installieren Sie Foreman unter Ubuntu 16.04 LTS

Verwenden Sie ein anderes System? Foreman ist ein kostenloses Open Source-Tool, das Sie bei der Konfiguration und Verwaltung von physischen und virtuellen Servern unterstützt. Forema

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.