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

Strider CDをUbuntu 18.04にインストールする方法

Strider CDをUbuntu 18.04にインストールする方法

はじめにStrider CDは、オープンソースの継続的展開プラットフォームです。アプリケーションはNode.jsで作成され、MongoDBをストレージバックエンドとして使用します。ストライド

Packerを使用したスナップショットの作成

Packerを使用したスナップショットの作成

パッカーとは何ですか?PackerはHashiCorpが開発したサーバーイメージングツールです。サーバーイメージング; または、不変のインフラストラクチャ。人気のオルタナティヴです

Vultrロードバランサー

Vultrロードバランサー

ロードバランサーとはロードバランサーはアプリケーションの前にあり、着信トラフィックをアプリケーションの複数のインスタンスに分散します。Fo

Ubuntu 17.04でのSaltStackの使用開始

Ubuntu 17.04でのSaltStackの使用開始

SaltStackはpythonベースの構成管理プログラムであり、構成ファイル、デプロイメントなどの自動化に最適化されています

Chef-soloを使用してUbuntuでDjangoアプリを構成する

Chef-soloを使用してUbuntuでDjangoアプリを構成する

ボックスの設定と構成のプロセスを自動化する方法はたくさんあります。理由が何であれ、この時点でのシステム全体が

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

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

Jenkinsは、プロジェクトの開発、デプロイメント、自動化に広く使用されている人気のあるオープンソースCI(継続的インテグレーション)ツールです。この記事は

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

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

SaltStack(Salt)は、リモート実行、構成管理、CODの実装に使用できる人気のあるオープンソースの構成管理ソリューションです。

WindowsでChocolatey Package Managerを使用する

WindowsでChocolatey Package Managerを使用する

はじめにChocolateyは、Linuxでのソフトウェアと依存関係の管理を容易にするパッケージ管理をWindowsにもたらします。すばやく簡単にできます

CentOS 7にGoCDをインストールして構成する方法

CentOS 7にGoCDをインストールして構成する方法

別のシステムを使用していますか?GoCDは、オープンソースの継続的デリバリーおよび自動化システムです。並列処理を使用して複雑なワークフローをモデル化できます

ドローンCIをUbuntu 18.04にインストールする方法

ドローンCIをUbuntu 18.04にインストールする方法

はじめにドローンは、自動化された継続的なテストおよび配信プラットフォームであり、独自のインフラストラクチャで実行されます。ドローン��あらゆる言語、サービスをサポートしますo

Windows Serverで使用するためにDebian 9にAnsibleをインストールして構成する方法

Windows Serverで使用するためにDebian 9にAnsibleをインストールして構成する方法

別のシステムを使用していますか?Ansibleは、タスクを自動化するためのオープンソースツールです。LinuxおよびWindowsサーバーの構成を管理します。効く

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

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

別のシステムを使用していますか?Foremanは無料のオープンソースツールであり、物理サーバーと仮想サーバーの構成と管理に役立ちます。フォレマ

ForemanをUbuntu 16.04 LTSにインストールする方法

ForemanをUbuntu 16.04 LTSにインストールする方法

別のシステムを使用していますか?Foremanは無料のオープンソースツールであり、物理サーバーと仮想サーバーの構成と管理に役立ちます。フォレマ

CentOS 7にConcourse CIをインストールして構成する方法

CentOS 7にConcourse CIをインストールして構成する方法

別のシステムを使用していますか?はじめに継続的インテグレーションは、開発者が頻繁にマージできるようにするDevOpsソフトウェア開発プラクティスです。

Ubuntu 16.04にConcourse CIをインストールして構成する方法

Ubuntu 16.04にConcourse CIをインストールして構成する方法

別のシステムを使用していますか?はじめに継続的インテグレーションは、開発者が頻繁にマージできるようにするDevOpsソフトウェア開発プラクティスです。

Windows Serverで使用するためにCentOS 7にAnsibleをインストールして構成する方法

Windows Serverで使用するためにCentOS 7にAnsibleをインストールして構成する方法

別のシステムを使用していますか?Ansibleは、タスクを自動化するためのオープンソースツールです。LinuxおよびWindowsサーバーの構成を管理します。効く

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の未来は、日々成長を続けています。