Ruby2.0でchefを動かす
とりあえず、やってみたので、メモ。環境はScientific Linuxの6.3
sh-4.1$ sudo yum install gcc make cloog-ppl cpp glibc-devel glibc-headers kernel-headers libgomp mpfr ppl sh-4.1$ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz sh-4.1$ tar xvzf ./ruby-2.0.0-p0.tar.gz sh-4.1$ cd ruby-2.0.0-p0 sh-4.1$ ./configure sh-4.1$ make sh-4.1$ sudo make install sh-4.1$ which ruby /usr/local/bin/ruby sh-4.1$ ruby -v ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux] sh-4.1$ sudo yum install autoconf curl-devel expat-devel gettext-devel perl-ExtUtils-MakeMaker sh-4.1$ cd /hoge sh-4.1$ wget https://git-core.googlecode.com/files/git-1.8.1.3.tar.gz sh-4.1$ tar xvzf ./git-1.8.1.3.tar.gz sh-4.1$ cd git-1.8.1.3 sh-4.1$ ./configure sh-4.1$ make sh-4.1$ sudo make install sh-4.1$ which git /usr/local/bin/git sh-4.1$ git --version git version 1.8.1.3 sh-4.1$ gem --version 2.0.0 sh-4.1$ sudo /usr/local/bin/gem install chef sh-4.1$ sudo mkdir /var/chef sh-4.1$ sudo mkdir /var/chef/cookbooks sh-4.1$ sudo mkdir /var/log/chef sh-4.1$ sudo mkdir /tmp/chef-solo sh-4.1$ sudo mkdir /etc/chef sh-4.1$ sudo vi /etc/chef/solo.rb sh-4.1$ sudo cat /etc/chef/solo.rb file_cache_path "/var/chef" cookbook_path "/var/chef/cookbooks" log_level :info sh-4.1$ sudo /usr/local/bin/knife cookbook create mycookbook -o /var/chef/cookbooks sh-4.1$ sudo /usr/local/bin/knife cookbook create mysql -o /var/chef/cookbooks sh-4.1$ sudo vi /var/chef/cookbooks/mysql/recipes/default.rb sh-4.1$ sudo cat /var/chef/cookbooks/mysql/recipes/default.rb # # Cookbook Name:: mysql # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # %w{mysql-server}.each do |pkg| package pkg do action :install end end service "mysqld" do supports :status => true, :restart => true, :reload => true action [ :enable, :start ] end sh-4.1$ sudo mv /var/chef/cookbooks/mysql/recipes/default.rb /var/chef/cookbooks/mysql/recipes/mysql-server.rb sh-4.1$ sudo vi /etc/chef/chef.json sh-4.1$ sudo /usr/local/bin/gem list --local *** LOCAL GEMS *** bigdecimal (1.2.0) chef (11.4.0) erubis (2.7.0) highline (1.6.15) io-console (0.4.2) ipaddress (0.8.0) json (1.7.7) mime-types (1.21) minitest (4.3.2) mixlib-authentication (1.3.0) mixlib-cli (1.3.0) mixlib-config (1.1.2) mixlib-log (1.4.1) mixlib-shellout (1.1.0) net-ssh (2.6.6) net-ssh-gateway (1.2.0) net-ssh-multi (1.1) ohai (6.16.0) psych (2.0.0) rake (0.9.6) rdoc (4.0.0) rest-client (1.6.7) systemu (2.5.2) test-unit (2.0.0.0) yajl-ruby (1.1.0) sh-4.1$ sudo /usr/local/bin/gem update --system 1.8.25 Updating rubygems-update Fetching: rubygems-update-1.8.25.gem (100%) Successfully installed rubygems-update-1.8.25 Parsing documentation for rubygems-update-1.8.25 Installing ri documentation for rubygems-update-1.8.25 Installing darkfish documentation for rubygems-update-1.8.25 Done installing documentation for rubygems-update (2 sec). Installing RubyGems 1.8.25 RubyGems 1.8.25 installed == 1.8.25/ 2013-01-24 * 6 bug fixes: * Added 11627 to setup bin_file location to protect against errors. Fixes #328 by ConradIrwin * Specification#ruby_code didn't handle Requirement with multiple * Fix error on creating a Version object with a frozen string. * Fix incremental index updates * Fix missing load_yaml in YAML-related requirement.rb code. * Manually backport encoding-aware YAML gemspec ------------------------------------------------------------------------------ RubyGems installed the following executables: /usr/local/bin/gem RubyGems system software updated sh-4.1$ sudo /usr/local/bin/gem list --local *** LOCAL GEMS *** chef (11.4.0) erubis (2.7.0) highline (1.6.15) ipaddress (0.8.0) mime-types (1.21) mixlib-authentication (1.3.0) mixlib-cli (1.3.0) mixlib-config (1.1.2) mixlib-log (1.4.1) mixlib-shellout (1.1.0) net-ssh (2.6.6) net-ssh-gateway (1.2.0) net-ssh-multi (1.1) ohai (6.16.0) rest-client (1.6.7) rubygems-update (1.8.25) systemu (2.5.2) yajl-ruby (1.1.0) sh-4.1$ sudo /usr/local/bin/gem install json Fetching: json-1.7.7.gem (100%) Building native extensions. This could take a while... Successfully installed json-1.7.7 1 gem installed Installing ri documentation for json-1.7.7... unable to convert "\xD8" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.so, skipping unable to convert "\xD8" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.so, skipping Installing RDoc documentation for json-1.7.7... unable to convert "\xD8" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.so, skipping unable to convert "\xD8" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.so, skipping sh-4.1$ sudo /usr/local/bin/chef-solo -c /etc/chef/solo.rb -j /etc/chef/chef.json Starting Chef Client, version 11.4.0 [2013-03-05T00:31:45+09:00] INFO: *** Chef 11.4.0 *** [2013-03-05T00:31:47+09:00] INFO: Setting the run_list to ["recipe[mysql::mysql-server]"] from JSON [2013-03-05T00:31:47+09:00] INFO: Run List is [recipe[mysql::mysql-server]] [2013-03-05T00:31:47+09:00] INFO: Run List expands to [mysql::mysql-server] [2013-03-05T00:31:47+09:00] INFO: Starting Chef Run for centos63-01 [2013-03-05T00:31:47+09:00] INFO: Running start handlers [2013-03-05T00:31:47+09:00] INFO: Start handlers complete. Compiling Cookbooks... Converging 2 resources Recipe: mysql::mysql-server * package[mysql-server] action install[2013-03-05T00:31:47+09:00] INFO: Processing package[mysql-server] action install (mysql::mysql-server line 10) [2013-03-05T00:31:50+09:00] INFO: package[mysql-server] installing mysql-server-5.1.67-1.el6_3 from sl-security repository - install version 5.1.67-1.el6_3 of package mysql-server * service[mysqld] action enable[2013-03-05T00:33:03+09:00] INFO: Processing service[mysqld] action enable (mysql::mysql-server line 14) [2013-03-05T00:33:04+09:00] INFO: service[mysqld] enabled - enable service service[mysqld] * service[mysqld] action start[2013-03-05T00:33:04+09:00] INFO: Processing service[mysqld] action start (mysql::mysql-server line 14) [2013-03-05T00:33:08+09:00] INFO: service[mysqld] started - start service service[mysqld] [2013-03-05T00:33:08+09:00] INFO: Chef Run complete in 81.291905601 seconds [2013-03-05T00:33:08+09:00] INFO: Running report handlers [2013-03-05T00:33:08+09:00] INFO: Report handlers complete Chef Client finished, 3 resources updated sh-4.1$ sudo service mysqld status mysqld (pid 17717) is running...
と、いうわけで、rubygems-updateをダウングレードしないとうまく動かなかった。どううまく動かないのかはやってみて。
参考:
http://blog.az-tek.co.uk/2013/03/knife-bootstrap-failure-no-such-file-to.html