假设我有以下主机组在我的不可接受的清单中
[qrouters]
devops-qr1
devops-qr2
[shards]
devops-shrd1
devops-shrd2
devops-shrd3
我必须使用类似于sh.addShard("<$REPLICASETNAME>/comma-separated-list-of-hosts")
(ex:sh.addShard( "/s1-mongo1.example.net:27018,s1-mongo2.example.net:27018,s1-mongo3.example.net:27018")
)的命令将碎片添加到mongodb集群中
我想在我的角色(比如roles/mongo_sharding/templates/addShards.j2
)的模板文件中编写该命令,但不知道如何迭代库存文件。
请记住,[shards]
组中的主机数量可能会不时变化。
发布于 2020-02-10 14:25:00
模板
$ cat addShards.j2
sh.addShard( "<{{ my_replica_set }}>/{{ my_hosts }}")
和剧本
$ cat my_playbook.yml
- hosts: localhost
vars:
my_replica_set: "replSetName"
my_group: "shards"
tasks:
- set_fact:
my_hosts: "{{ groups[my_group]|join( ':27018,') ~ ':27018' }}"
- template:
src: addShards.j2
dest: my_command
给
$ cat my_command
sh.addShard( "/devops-shrd1:27018,devops-shrd2:27018,devops-shrd3:27018")
https://serverfault.com/questions/1002490
复制相似问题