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)