2017-05-25 75 views
1

我试图使用ansible-mongodb-cluster脚本创建mongodb集群。 我编辑了主机,以便只有一个主要和一个奴隶。 我使用moleculevagrant来测试它。如何使用分子从一个实例访问另一个实例

这是我molecule.yml

ansible: 
    playbook: 01_create_cluster.yml 
    verbose: vvv 
inventory: hosts 
vagrant: 
    platforms: 
    - name: centos 
     box: centos/7 
    providers: 
    - name: virtualbox 
     type: virtualbox 
     options: 
     memory: 512 
     cpus: 2 
    instances: 
    - name: mongo1 
     ansible_groups: 
     - mongo_servers 
     - mongod_primary 
     - mongod_slaves 
     interfaces: 
     - network_name: private_network 
      type: static 
      ip: 192.168.80.1 
    - name: mongo2 
     ansible_groups: 
     - mongo_servers 
     - mongod_primary 
     - mongod_slaves 
     interfaces: 
     - network_name: private_network 
      type: static 
      ip: 192.168.80.2 

,这是hosts库存ansible文件:

[mongo_servers] 
mongo1 mongod_port=27017 
mongo2 mongod_port=27017 

[mongod_primary] 
mongo1 mongod_port=27017 

[mongod_slaves] 
mongo2 mongod_port=27017 

时,被创建和复制是在它启动后,首要问题新生儿,从尝试连接到主:

"MongoDB shell version v3.4.4", 
     "connecting to: mongodb://mongo1:27017/", 
     "2017-05-25T15:38:51.399+0000 I NETWORK [thread1] getaddrinfo(\"mongo1\") failed: Name or service not known", 
     "2017-05-25T15:38:51.400+0000 E QUERY [thread1] Error: couldn't initialize connection to host mongo1, address is invalid :", 
     "[email protected]/mongo/shell/mongo.js:237:13", 
     "@(connect):1:6" 

它不知道mongo1主持人。

即使我在/etc/hosts加关系

192.168.80.1 mongo1 

它说我Destination Net Unreachable

我怎样才能在网络中解决,让每一个VM“看到”其他人呢?

编辑

平进去超时和telnet太

EDIT2

这是traceroute的

[[email protected] ~]$ traceroute mongo1 
traceroute to mongo1 (192.168.80.1), 30 hops max, 60 byte packets 
1 gateway (10.0.2.2) 0.191 ms 0.111 ms 0.063 ms 
2 192.168.93.254 (192.168.93.254) 0.614 ms 0.716 ms 0.710 ms 
3 10.17.254.1 (10.17.254.1) 3.410 ms 3.366 ms 3.316 ms 
4 93-57-16-193.ip162.fastwebnet.it (93.57.16.193) 5.409 ms 5.384 ms 5.340 ms 
5 93-54-33-65.ip127.fastwebnet.it (93.54.33.65) 21.192 ms 21.135 ms 21.084 ms 
6 10.2.7.101 (10.2.7.101) 10.390 ms 2.447 ms 2.318 ms 
7 10.254.20.77 (10.254.20.77) 2.228 ms 10.254.20.73 (10.254.20.73) 2.171 ms 2.045 ms 
8 * * * 
9 * * * 
10 * * * 
11 * * * 
12 * * * 
13 * * * 
14 * * * 
15 * * * 
16 * * * 
17 * * * 
18 * * * 
19 * * * 
20 * * * 
21 * * * 
22 * * * 
23 * * * 
24 * * * 
25 * * * 
26 * * * 
27 * * * 
28 * * * 
29 * * * 
30 * * * 
[[email protected] ~]$ 
+0

你可以'telnet mongo1 27017'从辅助bash内吗? –

+0

好的。我可以知道你为什么只用两个节点创建副本集。根据MongoDB的建议,一个副本应该至少有3个mongod节点,包括一个仲裁器。但是,这可能不是这个问题的原因。您可以在辅助服务器上运行“traceroute”命令以访问主服务器吗? – harshavmb

+0

另外,在主mongod主机上,是否打开了“27017”端口? – harshavmb

回答

0

我解决了加入其他两个配置到molecule.yml :

interfaces: 
     - network_name: private_network 
      type: static 
      ip: 192.168.80.1 
      auto_config: true 
     options: 
     append_platform_to_hostname: no 


auto_config: true 

options: 
      append_platform_to_hostname: no 

现在如果我平的其他虚拟机,他们成功地回复!

相关问题