【问题标题】:Get Riak to start with chef让 Riak 从厨师开始
【发布时间】: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.argsapp.config文件上传到gist吗?

标签: bash chef-infra riak


【解决方案1】:

鉴于您提供的错误消息,Riak 未启动,因为 Erlang 节点名称未正确生成。 Erlang 节点名称配置存在于vm.args 中,由node['riak']['args']['-name'] 属性生成。

node['riak']['args']['-name'] 的默认值为 riak@#{node['fqdn']}。请检查 Ohai 为 node['fqdn'] 报告的值。或者,如果您在其他地方覆盖此属性,请确保为 -name 生成有效值。

vm.args 中对-name 的更详细描述可以在here 中找到。

【讨论】:

  • 你是对的,这就是它没有启动的原因。我最终不得不删除 ring 目录并重新启动 riak。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多