LoginSignup
6
4

More than 5 years have passed since last update.

Chefの環境を構築する

Last updated at Posted at 2016-11-23
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash

または

$ sudo gem install chef --verbose
$ sudo gem install knife-solo --verbose

だと、以下のエラーがでた。

Successfully installed libyajl2-1.2.0
Installing gem ffi-yajl-2.3.0
Downloading gem ffi-yajl-2.3.0.gem
GET https://rubygems.org/gems/ffi-yajl-2.3.0.gem
Fetching: ffi-yajl-2.3.0.gem (100%)
200 OK
ERROR:  Error installing knife-solo:
  ffi-yajl requires Ruby version >= 2.1.

バージョンが古いと 新しいRubyを要求される。

バージョンを上げる

Rubyのバージョンを上げる

CentOS7.0

rbenvを利用してパッケージ管理できるようにするため、
最初からインストールされているrubyは削除する。

[vagrant@localhost ~]$ sudo yum -y remove ruby
[vagrant@localhost ~]$ ruby -v
-bash: /usr/bin/ruby: そのようなファイルやディレクトリはありません
[vagrant@localhost ~]$ gem -v
-bash: /usr/bin/gem: そのようなファイルやディレクトリはありません

rbenvはgit cloneするため、gitインストールしておく

[vagrant@localhost ~]$ sudo yum install git
[vagrant@localhost ~]$ git --version
git version 1.8.3.1

rbenvをインストールする

[vagrant@localhost ~]$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2542, done.
remote: Total 2542 (delta 0), reused 0 (delta 0), pack-reused 2542
Receiving objects: 100% (2542/2542), 461.07 KiB | 101.00 KiB/s, done.
Resolving deltas: 100% (1598/1598), done.
[vagrant@localhost ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[vagrant@localhost ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[vagrant@localhost ~]$ source ~/.bash_profile
[vagrant@localhost ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

ruby_buildをインストールする

[vagrant@localhost ~]$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 6993, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 6993 (delta 2), reused 0 (delta 0), pack-reused 6981
Receiving objects: 100% (6993/6993), 1.36 MiB | 162.00 KiB/s, done.
Resolving deltas: 100% (4153/4153), done.
[vagrant@localhost ~]$ cd ~/.rbenv/plugins/ruby-build
[vagrant@localhost ruby-build]$ sudo ./install.sh
[vagrant@localhost ruby-build]$ rbenv -v
rbenv 1.0.0-33-gc7dcaf1

Ruby の最新版をインストールする

インストール可能なバージョンを確認する

$ rbenv install -l
  2.3.0-dev
  2.3.0-preview1
  2.3.0-preview2
  2.3.0
  2.3.1
  2.4.0-dev
  2.4.0-preview1
  2.4.0-preview2
  2.4.0-preview3

2016年11月14日時点で、安定版の最新は 2.3.1 なので、それをインストールする。

[vagrant@localhost ruby-build]$ rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...
Installed ruby-2.3.1 to /home/vagrant/.rbenv/versions/2.3.1
[vagrant@localhost ruby-build]$ rbenv rehash
[vagrant@localhost ruby-build]$ rbenv global 2.3.1

バージョン確認

[vagrant@localhost ruby-build]$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
[vagrant@localhost ruby-build]$ which ruby
~/.rbenv/shims/ruby
[vagrant@localhost ruby-build]$ which gem
~/.rbenv/shims/gem
[vagrant@localhost ruby-build]$ gem -v
2.5.1

Mac OS (El Capitan)

rbenvでRubyをインストールする

brew をupdate て必要なソフトをインストールする

$ brew update
$ brew install openssl
$ brew install readline
$ brew install rbenv
$ brew install rbenv-gemset
$ rbenv --version
rbenv 1.0.0
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

rbenvが見ているバージョンを確認する

$ rbenv versions
* system (set by /Users/user/.rbenv/version)

Ruby の最新版をインストールする

インストール可能なバージョンを確認する

$ rbenv install -l
  2.3.0-dev
  2.3.0-preview1
  2.3.0-preview2
  2.3.0
  2.3.1
  2.4.0-dev
  2.4.0-preview1
  2.4.0-preview2
  2.4.0-preview3

インストール前のrubyバージョンを確認しておく
(El Capitanだと 2.0.0になってる)

$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

2016年11月14日時点で、安定版の最新は 2.3.1 なので、それをインストールする。

$ rbenv install 2.3.1
$ rbenv rehash

rehashしたけど、まだ変わっていない

$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

見ているバージョンがsysytemとなっている

$ rbenv versions
* system (set by /Users/user/.rbenv/version)
  2.3.1

グローバルのバージョン指定を行うと切り替わる

$ rbenv global 2.3.1
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

Chefをインストールする

$ gem install chef --verbose

Successfully installed chef-12.16.42
Parsing documentation for chef-12.16.42
Parsing sources...
100% [822/822]  lib/chef/workstation_config_loader.rb
Done installing documentation for chef after 25 seconds
1 gem installed

ツールをインストールする

knife-solo

$ gem install knife-solo --verbose
100% [50/50]  lib/knife-solo/tools.rb
Installing ri documentation for knife-solo-0.6.0
Done installing documentation for mixlib-shellout, mixlib-config, fuzzyurl, public_suffix, addressable, chef-config, mixlib-cli, mixlib-log, mixlib-authentication, mixlib-archive, systemu, libyajl2, ffi-yajl, plist, ipaddress, wmi-lite, ffi, ohai, net-ssh, net-ssh-gateway, net-ssh-multi, net-sftp, highline, erubis, diff-lcs, hashie, uuidtools, rack, chef-zero, iniparse, rspec-support, rspec-core, rspec-expectations, rspec-mocks, builder, rspec_junit_formatter, rspec, rspec-its, multi_json, net-scp, sfl, specinfra, serverspec, syslog-logger, proxifier, bundler, chef, knife-solo after 72 seconds
48 gems installed

macだと以下のメッセージが出たので対応した

If you run into any issues please let us know at:
  https://github.com/matschaffer/knife-solo/issues

If you are upgrading knife-solo please uninstall any old versions by
running `gem clean knife-solo` to avoid any errors.

See http://bit.ly/CHEF-3255 for more information on the knife bug
that causes this.
Successfully installed knife-solo-0.6.0
Parsing documentation for knife-solo-0.6.0
Parsing sources...
100% [50/50]  lib/knife-solo/tools.rb
Installing ri documentation for knife-solo-0.6.0
Done installing documentation for knife-solo after 1 seconds
1 gem installed

$ gem clean knife-solo
Cleaning up installed gems...
Clean Up Complete

berkshelf

$ gem install berkshelf --verbose
Done installing documentation for multipart-post, faraday, httpclient, buff-extensions, varia_model, buff-config, buff-ignore, buff-ruby_engine, buff-shell_out, hitimes, timers, celluloid, nio4r, celluloid-io, retryable, semverse, ridley, berkshelf-api-client, cleanroom, minitar, molinillo, solve, thor, sawyer, octokit, berkshelf after 16 seconds
26 gems installed


vagrantのプラグインをインストールする

$ vagrant plugin install vagrant-omnibus
Installing the 'vagrant-omnibus' plugin. This can take a few minutes...
Installed the plugin 'vagrant-omnibus (1.5.0)'!
$ vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.13.0)'!

参考

rbenv + ruby-build はどうやって動いているのか

6
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4