silverlogic.rabbitmq

お知らせ

久しぶりのアップデートです。このプレイブックに再び取り組んでいます。マスターに修正(URLやキーチェックなど)を統合し、動作するタグ付きバージョンをリリースする予定です。

その後、バージョン2.0の次のブランチを作成することに集中します。バージョン2では、インストール手順を純粋な設定から分離することを計画しています。一つのプレイブックで無数のOSをサポートしたくありません。そのため、あなた自身で ansible-playbook-rabbitmq-install-my-little-snowflak-os を作成できるようになります :)

皆さんの参加に感謝いたします!

RabbitMQ プレイブック

RabbitMQをインストールおよび構成するためのプレイブックです。後ほど、さまざまな設定調整が行われます。

変更について話し合いたい場合や、他のプラットフォームをサポートする手助けをしたい場合は、イシューをオープンしてください。

インストール

Ansible Galaxyを使ってこのプレイブックをインストールします:

$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0

現在、master ブランチは不安定と見なされるべきです。テスト目的以外での使用は避けてください :)

サポートされているシステム

現在、サポートされているのはDebian JessieとWheezyのamd64のみです。他のディストリビューションやOSをサポートするためのパッチは歓迎します。

セマンティックバージョニング 2.0.0

コミット 67c608826a140868a71854ce3129b5f3d67ddcce から、このプレイブックはセマンティックバージョニングを使用します。仕様に従って、プレイブックが生産環境で使用されているため、互換性を壊すことを避けたいので、最初のバージョン番号は1.0.0です。

セマンティックバージョニングで定義される公開APIは、ユーザーが利用できる設定に対応しています。この文脈においてAPIを破壊する(X.Y.Zから(X+1).Y.Zへ増加する)ことは、ユーザーがプレイブックを実行するために変数名を変更する必要があることを意味します。

新しい機能を追加する場合(X.Y.ZからX.(Y+1).Zに移行する)は、デフォルトでユーザーの操作を必要としない動作するデフォルト値を持たなければなりません。機能の追加がユーザーの操作を必要とする場合、それはマイナーアップグレードではなく、メジャーアップグレードとなります。

役割変数

インストール

名前 タイプ 説明 デフォルト
rabbitmq_os_package Bool 真の場合、OSまたはディストリビューションが提案するデフォルトパッケージを使用します。 false

環境

名前 タイプ 説明 デフォルト
rabbitmq_conf_env Hash 環境変数を設定します。 undef

例:

rabbitmq_conf_env:
  RABBITMQ_ROCKS: correct

生成される内容:

RABBITMQ_ROCKS="correct"

証明書

名前 タイプ 説明 デフォルト
rabbitmq_cacert String CA証明書ファイルのパス。 files/rabbitmq_cacert.pem
rabbitmq_server_key String SSLキーファイルのパス。 files/rabbitmq_server_key.pem
rabbitmq_server_cert String SSL証明書ファイルのパス。 files/rabbitmq_server_cert.pem
rabbitmq_ssl Boolean SSLを使用するかどうかを定義します。 true

デフォルト設定ファイル

名前 タイプ 説明 デフォルト
rabbitmq_conf_tcp_listeners_address String TCPインターフェースのリスニングアドレス ''
rabbitmq_conf_tcp_listeners_port Integer TCPインターフェースのリスニングポート 5672
rabbitmq_conf_ssl_listeners_address String SSLインターフェースのリスニングアドレス '0.0.0.0'
rabbitmq_conf_ssl_listeners_port Integer SSLインターフェースのリスニングポート 5671
rabbitmq_conf_ssl_options_cacertfile String CA証明書のパス "/etc/rabbitmq/ssl/cacert.pem"
rabbitmq_conf_ssl_options_certfile String サーバー証明書のパス "/etc/rabbitmq/ssl/server_cert.pem"
rabbitmq_conf_ssl_options_keyfile String 秘密鍵ファイルのパス "/etc/rabbitmq/ssl/server_key.pem"
rabbitmq_conf_ssl_options_fail_if_no_peer_cert Boolean fail_if_no_peer_cert SSLオプションの値 "true"

プラグイン

名前 タイプ 説明 デフォルト
rabbitmq_new_only String 他のプラグインを無効化せずに新しくプラグインを追加します 'no'
rabbitmq_plugins String 有効化するプラグインのリスト []

Vhost

名前 タイプ 説明 デフォルト
rabbitmq_vhost_definitions List 作成するvhostのリストを定義します []
rabbitmq_users_definitions List of hash ユーザーとその関連するvhostおよびパスワードを定義します(以下を参照) []

Vhostsの設定を定義:

rabbitmq_vhost_definitions:
  - name: vhost1
    node: node_name # オプション、デフォルトは"rabbit"
    tracing: yes    # オプション、デフォルトは"no"

ユーザー設定を定義:

rabbitmq_users_definitions:
  - vhost: vhost1
    user: user1
    password: password1
    node: node_name  # オプション、デフォルトは"rabbit"
    configure_priv: "^resource.*"  # オプション、デフォルトは".*"
    read_priv: "^$"  # 読み取りを禁止。
    write_priv: "^$"  # 書き込みを禁止。
  - vhost: vhost1
    user: user2
    password: password2
    force: no
    tags:  # オプション、ユーザータグ
    - administrator

フェデレーション

名前 タイプ 説明 デフォルト
rabbitmq_federation Boolean フェデレーションを設定するかどうかを定義します false
rabbitmq_federation_configuration List of hashes 設定する必要のあるすべてのフェデレーションを定義します 定義されていない
rabbitmq_policy_configuration List of hashes 設定する必要のあるすべてのポリシーを定義します 定義されていない

フェデレーションのアップストリーム設定を定義:

rabbitmq_federation_upstream:
  - name: アップストリーム名
    vhost: フェデレートするローカルvhost
    value: フェデレーションのJSON説明
    local_username: フェデレーションに使うローカルユーザー名

可能なJSON値については、RabbitMQドキュメントを参照してください。

ポリシー設定を定義:

rabbitmq_policy_configuration:
  - name: ポリシーの名前
    vhost: ポリシーを適用するvhost
    pattern: ポリシーのパターン
    tags: 辞書形式のポリシーの説明  # 例: "ha-mode=all"

必要なファイル

必要な証明書を files/ フォルダーに配置する必要があります。例えば:

files/
 |- cacert.crt
 |- myserver_key.key
 |- myserver_cert.crt

その後、役割を設定します:

rabbitmq_cacert: files/cacert.crt
rabbitmq_server_key: files/myserver_key.key
rabbitmq_server_cert: files/myserver_cert.crt

テスト

Vagrantを使用してVMをプロビジョニングしようとするいくつかのテストがあります。次のコマンドで実行してください:

$ vagrant up # Debian jessieでテスト
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # Centosでテスト

テスト中に使用するVMを変更するには、VAGRANT_BOX_NAME 環境変数を deb/jessie 以外のものに設定してください。

ライセンス

BSD

プロジェクトについて

RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.

インストール
ansible-galaxy install silverlogic.rabbitmq
ライセンス
Unknown
ダウンロード
7.7k
所有者