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