由于 IP 地址不同,jujud 无法启动

由于 IP 地址不同,jujud 无法启动

有谁可以告诉我如何修改存储在 mongodb 中的 juju bootstrap 节点的公有 IP 和私有 IP?

我有一台全功能 openstack 服务器。本周,我启动了一个名为 的虚拟机juju-core并在其上安装了软件包juju-core。通过使用 命令 juju bootstrap,我成功获得了一个 juju bootstrap 节点,它也是 openstack 上的一个虚拟机,运行良好。现在我遇到了一个问题,不知道如何解决。我创建了 juju bootstrap 虚拟机的快照并将其命名为juju-bootstrap-snapshot。之后,我juju bootstrap-1从该快照启动了一个名为 的新实例。

为了连接到juju bootstrap-1我必须登录juju-core vm并修改状态服务器的 IP 地址

/home/$user/.juju/environments/openstack.jenv

juju status当我在 上运行命令时juju-core vm,总是没有响应。所以我登录juju bootstrap-1试图找出发生了什么;我发现没有进程在监听端口 17070。

> netstat -ntulp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:6514            0.0.0.0:*               LISTEN      838/rsyslogd    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      970/sshd        
tcp        0      0 0.0.0.0:37017           0.0.0.0:*               LISTEN      932/mongod      
tcp        0      0 0.0.0.0:38017           0.0.0.0:*               LISTEN      932/mongod      
tcp6       0      0 :::6514                 :::*                    LISTEN      838/rsyslogd    
tcp6       0      0 :::22                   :::*                    LISTEN      970/sshd        
udp        0      0 0.0.0.0:68              0.0.0.0:*                           587/dhclient    
udp        0      0 0.0.0.0:15712           0.0.0.0:*                           587/dhclient    
udp6       0      0 :::52056                :::*                                587/dhclient

但 jujud 正在运行

>ps aux | grep juju
root       932  0.6  2.1 3516932 44336 ?       Ssl  Jan15   7:08 /usr/lib/juju/bin/mongod --auth --dbpath=/var/lib/juju/db --sslOnNormalPorts --sslPEMKeyFile /var/lib/juju/server.pem --sslPEMKeyPassword xxxxxxx --bind_ip 0.0.0.0 --port 37017 --noprealloc --syslog --smallfiles --journal --keyFile /var/lib/juju/shared-secret --replSet juju --oplogSize 817<p>
root       935  0.2  0.6 426096 14032 ?        Ssl  Jan15   2:37 /var/lib/juju/tools/machine-0/jujud machine --data-dir /var/lib/juju --machine-id 0 --debug

我还修改了vm 上的apiaddresses;只是为了确保 juju 端点会监听。但仍然没有进程监听。/var/lib/juju/agents/machine-0/agent.confjuju bootstrap-1port 17070port 17070

通过使用另一个工具,juju-dbinspect我发现原始 juju bootstrap 节点的公共 IP 和私有 IP 都存储在 中mongodb。因此,我尝试修改 neutron 和 nova 中的相关表,mysqlopenstack确保新的 juju bootstrap 节点可以获取原始 juju bootstrap 节点的 IP。完成此操作后,juju 端点成功启动,并且port 17070新的 juju bootstrap 节点上有一个服务列表。一切又恢复正常。

在 openstack 中执行作业时;创建虚拟机的快照,从快照启动虚拟机是非常常见的用法。我不知道为什么 juju bootstrap node vm 在这种情况下无法工作。如果我遗漏了什么,请告诉我。根据我所做的,juju bootstrap-1如果我可以修改存储在 mongodb 中的原始 juju bootstrap 节点的公共 IP 和私有 IP,新的虚拟机应该可以很好地工作。但我不知道怎么做。任何能告诉我怎么做的人都会非常感激。

谢谢你,杰夫

相关内容