chefでrbenvを入れた部分を晒してみる。。

chefでrbenvを入れた部分を晒してみる。。はぁはぁ、ちょっと前にchefvagrantの環境を作って(参考)から放置してたんだけど、今日、rails入れようと思ってたら、rebenvにアクセスできなくて、いろいろやってたらまたちょっとcookbookの中身が変わったのでメモ(&ご教授いただけたら的な…)ポストです。

Chefでrbenv入れるところまで以前やっていたんだけど、システムワイド?に入れていたみたいで、vagrantユーザからrbenvの一部コマンドが使えない。/usr/local/rbenvの所有者と権限がおかしかったらしいのです。そこで、直しました。晒します。。(ちなみにいろいろわかってないのですが、いちいちつまづきながら自力でchef使えるようになりながらサーバ側やRuby覚えていきたいと思っています)


# rbenvグループを作成して/usr/local/rbenvを実行権限のユーザーを追加する
group "rbenv" do
  action :create
  members "vagrant"
  append true
end

# gitからrbenvを落としてくる(#{node.user}はrootです)
git "/usr/local/rbenv" do
  repository "git://github.com/sstephenson/rbenv.git"
  reference "master"
  action :checkout
  user "#{node.user}"
  group "rbenv"
end

# ruby-build用のpluginフォルダを作成する
directory "/usr/local/rbenv/plugins" do
  owner "#{node.user}"
  group "rbenv"
  mode "0755"
  action :create
end

# rbenvのbash設定を追加
template "/etc/profile.d/rbenv.sh" do
  owner "#{node.user}"
  group "#{node.user}"
  mode 0644
end

# ruby-buildを落としてくる
git "/usr/local/rbenv/plugins/ruby-build" do
  repository "git://github.com/sstephenson/ruby-build.git"
  reference "master"
  action :checkout
  user "#{node.user}"
  group "rbenv"
end

# rbenvディレクトリのownerと権限を変更する
directory "/usr/local/rbenv" do
  recursive true
  group "rbenv"
  mode 0775
end

ちなみに、templateの/etc/profile.d/rbenv.shはこれです。

export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

変更したのは最後のディレクトリのownerと権限の変更の部分のみです。この部分を追加しました。これで一応rbenvグループに所属してるvagrantからrbenvが使えるようになったけど、なんかかっこ悪い気がして、、、。

ちなみにグループの権限変更は下記のサイトを参考にしました。

rbenvの作成についてはこちらを参考にしていました。

Pocket
LINEで送る

You may also like...