Ubuntu 17.04のPillarsでSaltStackを使用する

SaltStackは多くのサーバーで操作を同時に実行するための優れたツールですが、「ピラー」と呼ばれる一意のファイルに保存されたホストごとに定義された構成プリセットもサポートします。このガイドでは、Nginxをインストールし、ピラーを使用して仮想ホストのデプロイメントを自動化するための簡単なSaltStack式を記述します。

必要条件

  • Ubuntu 17.04を実行しているVultrインスタンス(マスター)
  • Ubuntu 17.04を実行する2つのVultrインスタンス(ミニオン)

マスターのセットアップ

始めたばかりで、SaltStackマスターをまだセットアップしていない場合は、SaltStackの開始方法を説明しているこの記事を確認してください

ミニオンでのSaltStackの操作に必要なファイルをさらに保持する式のフォルダーを作成することから始めます。

mkdir -p /srv/salt/nginx

フォルダーを作成したら、init.slsすべての数式の重要な部分であるファイルの書き込みを続行できます。

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

おそらくお気づきのように、SaltStackは動的設定ファイルを生成するためにJinjaテンプレートエンジンを使用します。これにより、ネイティブPythonコードへのアクセスや変数の設定など、構成テンプレートファイル内で幅広い可能性が提供されます。次のステップは、virtualhosts.confファイルのテンプレートを作成することですが、最初にフォルダーを作成する必要があります。

mkdir -p /srv/salt/nginx/files

フォルダーが作成されたら、virtualhosts.jinjaファイルの書き込みを続行できます。

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

式を作成したら、先に進んでPillarベースをセットアップできます。

mkdir -p /srv/pillar/

特定のピラーファイルに一致するホストの参照top.slsは、先ほど作成したディレクトリ内のファイルに書き込まれます。この例では、2つの手先がホスト名で存在していると仮定nginxwww1してnginxwww2、我々は彼らに、両方のユニークな柱ファイルを割り当てます一方。

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

次に、のピラーファイルの作成を続行しますnginxwww1が、ドメインのポート81でリッスンするvhostを作成しexample.com、ドキュメントルート/var/www/example_com/とインデックスファイルを次のように作成しますindex.shtml

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

我々はのための柱ファイルの作成を続行しますnginxwww2私たちは、ドメインのポート82上のバーチャルホストのリスニングを作成する一方のexample2.comドキュメントルートがあること、/var/www/example2_com/およびインデックスファイルがあることindex.jsindex.css

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

注:ピラーファイルは、/srv/pillar/

配備

これで、ミニオンでピラーを更新することにより、ピラーで最初の試行を完了することができます。

salt '*' saltutil.refresh_pillar

その後、SaltStack式を実行できます。

salt '*' state.sls nginx

確認しています

SaltStackフォーミュラが実行されてエラーなしで完了すると、確認のためにポート上のnginxリスニングとポート81上のリスニングを確認できるはずです。nginxwww182nginxwww2

結論

このかなり軽量だがすでに強力なSaltStack式は、さらに拡張してHTTPSのサポートを追加できます。これには、Let's Encryptの統合、CGIまたはPHPバックエンドのサポート、および手動で実行できるすべてのサポートが含まれます。このガイドは、設定ファイルの配備に使用されるSaltStackの公式と柱の基本的な考え方を示しているはずです。幸せな自動化!



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。