【发布时间】:2014-06-11 16:36:48
【问题描述】:
我需要帮助 Riak 与 Chef 合作。
目前,每次我使用默认的 basho riak 烹饪书使用 Riak 1.4.8 烹饪亚马逊盒子时,我都必须手动 ssh 进入机器 kill -9 the beam.smp 进程,然后 rm -rf /var/lib/riak/响然后我终于可以做 sudo riak start 并且它会工作。
在此之前我得到:
节点“riak@”没有响应 ping。
我什至创建了一个 shell 脚本:
#!/bin/bash
# Generated by Chef for <%= @node[:fqdn] %>
#<%= @node[:ec2][:local_ipv4] %>
# This script should be run by root.
riak stop
riakPid="/var/run/riak/riak.pid"
if [ -e "$riakPid" ]; then
kill -9 $(<${riakPid})
fi
rm -f /var/run/riak/*
rm -f /var/lib/riak/ring/*
riak start
厨师说:
bash[/etc/riak/clearOldRiakInfo.sh] 运行成功
对于上面的脚本。
如果我手动运行该脚本,一切正常。为什么这不正确。
更新: 这已通过创建一个脚本来解决,该脚本在机器启动时删除 ring 目录。
只有当我从头开始创建一台新机器时才会发生这种情况,因为在 Riak 启动并创建环之后 fqdn 会正确设置。如果我手动打开盒子并删除了戒指,那么它会完全恢复正常。所以我必须创建脚本,以便机器上运行的第一个厨师会清除环信息。
【问题讨论】:
-
当您执行 bash 脚本时,它将与父 Chef 进程绑定。所以你需要分离,否则当 Chef Client 运行完成时它会死掉。
-
如何将其从主厨进程中分离出来?
-
使用 init.d 或 upstart 之类的东西。
-
好的,我会试试的。非常感谢
-
你能把
/etc/riak/中生成的vm.args和app.config文件上传到gist吗?
标签: bash chef-infra riak