marcobellaccini.ansible_rabbitmq_minimalistic

ansible-rabbitmq-minimalistic

ビルド状態

シンプルでありながら強力なクラスタリング対応のRabbitMQ Ansibleロールです。

Debian 10用に書かれています(他のバージョンやディストリビューションでも動作するかもしれません - もしそうなら教えてください)。

ロール変数

ロールのデフォルト(詳細は this fileを参照)を除いて、 カスタムの rabbitmq.conf ファイルをサーバにデプロイしたいと思うでしょう。

役割が rabbitmq.conf ファイルを生成してデプロイするように、 rabbitmq_conf_template 変数を定義できます:

rabbitmq_conf_template: "path/to/rabbitmq.conf.j2"

このパスはプレイブックディレクトリに対する相対パスです。

このようにすることで、 rabbitmq.conf の中で cluster_formation.classic_config.nodes サーバ変数を使って RabbitMQ クラスタをデプロイすることもできます。

例えば、次のような rabbitmq.conf.j2 テンプレートを使用できます:

{% for host in ansible_play_hosts_all %}
cluster_formation.classic_config.nodes.{{ loop.index }} = rabbit@{{ hostvars[host]['inventory_hostname'] }}
{% endfor %}

クラスタリングを有効にするためには、ホストを同じ erlang cookie で設定する必要があります。

これには、 rabbitmq_erlang_cookie 変数を使用できます(クッキーを暗号化するには Ansible Vault を使用することをお勧めします)。

クラスタリングの際、プレイブックに serial: 1 を設定する必要があります(そうしないと、ノードがクラスタを形成する際に問題が発生する可能性があります)。

RabbitMQ プラグインを有効にするには、テンプレートから RabbitMQ enabled_plugins ファイル を指定してデプロイするだけです:

rabbitmq_enabled_plugins_template: "path/to/enabled_plugins.j2"

再度、パスはプレイブックディレクトリに対する相対パスです。

その他の変数については ロールデフォルト を参照してください。

このロールはミニマリスティックを目指しています: より高度な設定を行うには、 Ansible RabbitMQ モジュール を使用できます。

例プレイブック

- hosts: msgservers
  serial: 1  # RabbitMQ クラスタをデプロイする場合のみ必要です
  roles:
     - ansible-rabbitmq-minimalistic
  vars:
    rabbitmq_conf_template: "my_rabbit_conf/rabbitmq.conf.j2"  # これはオプションです
    rabbitmq_enabled_plugins_template: "my_rabbit_conf/enabled_plugins.j2"  # これはオプションです
    rabbitmq_erlang_cookie: "XXXXXXXXXXXXXXXXXXXX"  # クラスタリングには必須です。注意: これは単なる例ですので、Ansible Vault を使用してください!

ライセンス

Apache License 2.0

著者情報

マルコ・ベラッチーニ - marco.bellaccini[at!]gmail.com

https://github.com/marcobellaccini

プロジェクトについて

Minimalistic, yet powerful and clustering-enabled RabbitMQ Ansible role.

インストール
ansible-galaxy install marcobellaccini.ansible_rabbitmq_minimalistic
ライセンス
apache-2.0
ダウンロード
88
所有者
Infrastructure, security and automation at RAI - Italian national public broadcasting company. Personal account.