pgkehle.mongodb

Ansible Role - mongodb

MongoDBクラスタのコンポーネントを設定します。

Ansible Galaxyで利用可能: isaackehle.mongodb

変数

必要な定義は以下の通りです:

cfg_server:
  name: "my-cfg" # (必須)
  group: "my-cfg-servers" # (必須) 設定サーバーのために使用されるグループIDを常に指定してください。

replica_set:
  name: "my-cfg" # 設定サーバーのレプリカセットの名前 (fqdnのプレフィックス)
  group: "my-cfg-servers" # レプリカセット内の全サーバーのグループ名

ホストの定義には通常以下が含まれます:

レプリカセットのみ

cluster_role: "replicaSet"

ルータサーバー

cluster_role: "router"

設定サーバー

cluster_role: "config"
replica_set:
  name: "my-cfg" # 設定サーバーのレプリカセットの名前 (fqdnのプレフィックス)
  group: "my-cfg-servers" # レプリカセット内の全サーバーのグループ名

シャードサーバー

cluster_role: "shard"
replica_set:
  name: "db-data" # シャードサーバーのレプリカセットの名前 (fqdnのプレフィックス)
  group: "db-data-servers" # レプリカセット内の全サーバーのグループ名

タグ/フラグ

私はフラグとタグのシステムを使用して、呼び出しプレイブックがどの役割を実行するかを指定できるようにしています。 例:

ansible-playbook playbooks/mongodb.yml -e "{'flags': ['install']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['save_config']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['reset_storage']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['init_replica_set']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['add_shard_to_cluster']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['create_database']}"

フラグと変数

フラグ 目的
install MongoDBパッケージをインストールする
save_config 基本的な初期化。サービスを停止し、サービス/設定ファイルをプッシュし、サービスを再起動する
reset_storage ディレクトリとログをクリアする
init_replica_set レプリカセット構成を初期化する
add_shard_to_cluster シャードサーバーのレプリカセットをシャードサーバーのクラスターに追加する
create_database ユーザー名とパスワードを使用して初期データベースを作成する
vars:
  flags: ["install"]
  new_shard:
    name: # 設定サーバーに追加するレプリカセットの名前
    server: # 追加する新しいレプリカセットのメンバーの一つ

- hosts: all
  vars:
    auth_db: ""
    adminUser: ""
    adminPass: ""
    tgt_db: ""
    userName: ""
    userPass: ""
    roles: ["readWrite", "userAdmin"]

    # レプリカセットを初期化する時のため
    adminUser: ''
    adminPass: ''

  roles:
    - { role: isaackehle.mongodb, flags: ['install'] }
    - { role: isaackehle.mongodb, flags: ['save_config'] }
    - { role: isaackehle.mongodb, flags: ['reset_storage'] }
    - { role: isaackehle.mongodb, flags: ['init_replica_set'] }
    - { role: isaackehle.mongodb, flags: ['add_shard_to_cluster'] }
    - { role: isaackehle.mongodb, flags: ['create_database'] }

リンティング

yamllint -c yamllint.yaml .
ansible-lint .

ライセンス

MIT

著者情報

アイザック・ケール @isaackehle (twitter, github, linkedin)

参考文献

プロジェクトについて

Configure the components of a MongoDB Cluster

インストール
ansible-galaxy install pgkehle.mongodb
ライセンス
mit
ダウンロード
194
所有者