19

这是在 EC2 上。我有一个初始化脚本,它执行一些基本设置,例如安装 rabbitmq、创建虚拟主机、用户、设置权限等。所以基本上它是这样的:

sudo yum --enablerepo=epel install rabbitmq-server
/etc/init.d/rabbitmq-server start
rabbitmqctl add_user username password
rabbitmqctl add_vhost vhost
rabbitmqctl set_permissions -p vhost username ".*" ".*" ".*"
rabbitmqctl stop

然后我退出 shell,并从实例创建一个 EBS 映像。Amazon 会自动重新启动服务器以创建映像。

现在奇怪的部分......重新启动后,除了权限之外,一切仍然设置。

然后当我从图像中启动一个新实例时,rabbitmq 中没有用户名或主机。

是否需要在 rabbitmq 中做一些事情来保存更改?

4

2 回答 2

19

如果当您“停止”和“重新启动”实例而不是重新启动它时设置消失,那是因为 ip 地址正在更改并且 RabbitMQ 设置已绑定到该 ip。

请参阅Amazon EC2 实例上的 RabbitMQ

于 2013-02-27T15:11:04.663 回答
1

我想可能是这个,来自http://www.rabbitmq.com/ec2.html

EBS 设备上的持久数据

RabbitMQ 将数据写入 Ubuntu 上的以下目录:

/var/lib/rabbitmq/ 用于存储持久数据,例如消息或队列

/var/log/rabbitmq/ 存储日志

如果您想使用 EBS 块设备来存储 RabbitMQ 数据,只需将这些目录链接到您的 EBS 设备。在对数据目录进行任何更改之前停止 RabbitMQ:

$ /etc/init.d/rabbitmq-server 停止

于 2012-08-17T18:29:27.447 回答