pgkehle.mongodb

Ansible角色 - 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

作者信息

Isaac Kehle @isaackehle (twittergithublinkedin

参考资料

关于项目

Configure the components of a MongoDB Cluster

安装
ansible-galaxy install pgkehle.mongodb
许可证
mit
下载
194
拥有者