bbatsche.nginx
Ansible Nginx Passenger の役割
この役割は、Node、Python、またはRubyを提供するためのPhusion PassengerバインディングとともにNginxサーバーをインストールします。また、指定されたドメイン用のサイトをセットアップおよび構成することもできます。
要件
この役割は、LinuxファイルシステムのACLsを利用し、"web-admin"というグループを使用してアクセス構成ディレクトリを設定します。これらの手順を手動で構成するか、bbatsche.Base
役割をインストールすることができます。
役割変数
env_name
— このサーバーが "development"(開発)、"production"(本番)、またはその他のタイプの環境であるかどうか。デフォルトは "dev"http_root
— サイトのディレクトリを作成する場所。デフォルトは "/srv/http"public_directory
— サイト用の公開ディレクトリ、例:"public"または"htdocs"。デフォルトは "public"max_upload_size
— 最大アップロードサイズ(MB)。デフォルトは "10"domain
— 作成するサイトのドメイン名。デフォルトでは未定義。content_security_policy
— ドメインに追加するコンテンツセキュリティポリシー。辞書形式でリストまたはブール値を使用します。適切な値には自動的にシングルクオート('
)が適用されます。デフォルト: defaults/main.ymlを参照nginx_configs
— ドメインのserver
ブロックの最後に追加する追加の設定ファイル。これらのファイルは/etc/nginx/conf.d
にコピーする必要があります。特定のアプリケーションサーバータイプ用の設定をここに追加します。デフォルトは空の配列passenger_app
— 現在のドメインがPassengerアプリ(例:Node、Ruby、Python)かどうか。設定を更新した後にアプリを再起動する必要がある場合に便利です。デフォルトは「いいえ」copy_index
— サイトに index.html スタブをコピーします。デフォルトは「いいえ」。use_ssl
— コンテンツをSSL(実際にはTLS)経由で提供するかどうか。デフォルトは「いいえ」。use_letsencrypt
— サイト用の証明書を生成するためにLet's Encryptを使用するかどうか。それ以外の場合、サーバ全体の自己署名証明書が使用されます。デフォルトは「いいえ」。privatekey_bits
— 自己署名の秘密鍵を生成する際に使用するビット数。デフォルトは4096。dhparam_bits
— 静的DHパラメータ証明書を生成する際に使用するビット数。デフォルトは2048。非常に高く設定すると時間がかかる可能性があります。cert_valid_days
— 自己署名証明書が有効な日数。デフォルトは3650日(約1年)。email_address
— 自己署名証明書およびLet's Encrypt用に使用するメールアドレス。デフォルトでは未定義。country_name
— 自己署名証明書を生成する際に使用する国の2文字の略語。デフォルトでは未定義。state_name
— 自己署名証明書を生成する際に使用する州または県の名前。デフォルトでは未定義。locality_name
— 自己署名証明書を生成する際に使用する都市または地域の名前。デフォルトでは未定義。org_name
— 自己署名証明書を生成する際に使用する組織名。デフォルトでは未定義。h5bp_commit
— HTML5 Boilerplate Server Configsからファイルを引き出すためのGitハッシュまたはバージョン番号。デフォルトは "3.1.0"。setuptools_version
— Pipを介してインストールするsetuptools
のバージョン。デフォルトは40.6.2。
SSL と Let's Encrypt
Let's Encryptは、あなたのウェブサーバーが外部からアクセスできることを要求しますので、VagrantやDockerで開発サイトを生成する際には使用しないでください。さらに、証明書を作成する前にDNSが適切に構成されていることを確認する必要があります。これが完了すると、あなたのドメイン用の完全サポートと署名のある証明書が発行され、将来的に更新され続けるようにcronジョブも作成されます。サーバーと証明書は、可能な限り最高のセキュリティのために最適化されており、2017年10月時点でSSL Labsから"A+"評価を獲得しています。
サンプルプレイブック
- hosts: servers
roles:
- { role: bbatsche.Nginx, domain: my-test-domain.test }
ライセンス
MIT
テスト
この役割には、各タスクを個別にまたは全体としてテストするための一連の仕様が含まれています。テストを実行するには、最初にVirtualBoxとバグレポートをインストールする必要があります。仕様ファイルはServerspecを使用して書かれているため、RubyとBundlerも必要です。
全仕様を実行するには:
$ gem install bundler
$ bundle install
$ rake
仕様スイートは、Ubuntu Trusty Tahr (14.04)、Xenial Xerus (16.04)、Bionic Beaver (18.04)を対象とします。
使用可能なrakeタスク(および仕様)を確認するには:
$ rake -T
これらの仕様は、冪等性をテストすることを目的としていません。指定されたタスクが期待される手順を実行していることを確認するためのものです。冪等性は、統合テストを通じて独立してテストされます。
Install and configure Nginx and Phusion Passenger along with any number of server blocks (aka vhosts).
ansible-galaxy install bbatsche.nginx