airbnb / smartstack-cookbook

The chef recipes for running and testing Airbnb's SmartStack
MIT License
245 stars 45 forks source link

Centos Compatibility & Higher Version of Ruby Support #17

Closed francoisnicholas closed 8 years ago

francoisnicholas commented 8 years ago

synapse version - v0.12.2. nerve version - v0.6.0

the cookbook breaks here on centos. Im running it on centos 6.5 64 bit Error executing action run on resource 'execute[synapse_install]'

It appeared the cookbook is looking for a higher version for ruby. Centos currently installs v1.8. It also appeared there's no easy way of installing a higher version of ruby on centos. Please how should I go about this?

francoisnicholas commented 8 years ago
==> centos65-x86_64: ================================================================================
==> centos65-x86_64: Error executing action `run` on resource 'execute[synapse_install]'
==> centos65-x86_64: ================================================================================
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: Mixlib::ShellOut::ShellCommandFailed
==> centos65-x86_64: ------------------------------------
==> centos65-x86_64: Expected process to exit with [0], but received '5'
==> centos65-x86_64: 
==> centos65-x86_64: ---- Begin output of bundle install --without development ----
==> centos65-x86_64: 
==> centos65-x86_64: STDOUT: Fetching gem metadata from https://rubygems.org/............
==> centos65-x86_64: 
==> centos65-x86_64: Fetching version metadata from https://rubygems.org/..
==> centos65-x86_64: 
==> centos65-x86_64: Resolving dependencies....
==> centos65-x86_64: 
==> centos65-x86_64: Rubygems 1.3.7 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
==> centos65-x86_64: 
==> centos65-x86_64: Installing archive-tar-minitar 0.5.2
==> centos65-x86_64: 
==> centos65-x86_64: Installing json 1.8.3 with native extensions
==> centos65-x86_64: 
==> centos65-x86_64: Installing mini_portile2 2.0.0
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: Gem::InstallError: mini_portile2 requires Ruby version >= 1.9.2.
==> centos65-x86_64: 
==> centos65-x86_64: Installing excon 0.45.4
==> centos65-x86_64: 
==> centos65-x86_64: Installing little-plugger 1.1.3
==> centos65-x86_64: 
==> centos65-x86_64: Installing multi_json 1.11.2
==> centos65-x86_64: 
==> centos65-x86_64: Installing zookeeper 1.4.10 with native extensions
==> centos65-x86_64: 
==> centos65-x86_64: Using bundler 1.11.2
==> centos65-x86_64: 
==> centos65-x86_64: An error occurred while installing mini_portile2 (2.0.0), and Bundler cannot
==> centos65-x86_64: 
==> centos65-x86_64: continue.
==> centos65-x86_64: 
==> centos65-x86_64: Make sure that `gem install mini_portile2 -v '2.0.0'` succeeds before bundling.
==> centos65-x86_64: 
==> centos65-x86_64: STDERR: 
==> centos65-x86_64: 
==> centos65-x86_64: ---- End output of bundle install --without development ----
==> centos65-x86_64: 
==> centos65-x86_64: Ran bundle install --without development returned 5
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: Resource Declaration:
==> centos65-x86_64: ---------------------
==> centos65-x86_64: # In /tmp/vagrant-chef/35e1ab30c74ac520236b3210716f7e19/cookbooks/lms-smartstack/recipes/synapse.rb
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64:  64:   execute "synapse_install" do
==> centos65-x86_64: 
==> centos65-x86_64:  65:     cwd     node.synapse.install_dir
==> centos65-x86_64: 
==> centos65-x86_64:  66:     user    node.smartstack.user
==> centos65-x86_64: 
==> centos65-x86_64:  67:     group   node.smartstack.user
==> centos65-x86_64: 
==> centos65-x86_64:  68:     action  :nothing
==> centos65-x86_64: 
==> centos65-x86_64:  69: 
==> centos65-x86_64: 
==> centos65-x86_64:  70:     environment ({'GEM_HOME' => node.smartstack.gem_home})
==> centos65-x86_64: 
==> centos65-x86_64:  71:     command     "bundle install --without development"
==> centos65-x86_64: 
==> centos65-x86_64:  72:   end
==> centos65-x86_64: 
==> centos65-x86_64:  73: end
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: Compiled Resource:
==> centos65-x86_64: ------------------
==> centos65-x86_64: # Declared in /tmp/vagrant-chef/35e1ab30c74ac520236b3210716f7e19/cookbooks/lms-smartstack/recipes/synapse.rb:64:in `from_file'
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: execute("synapse_install") do
==> centos65-x86_64: 
==> centos65-x86_64:   action [:nothing]
==> centos65-x86_64: 
==> centos65-x86_64:   retries 0
==> centos65-x86_64: 
==> centos65-x86_64:   retry_delay 2
==> centos65-x86_64: 
==> centos65-x86_64:   default_guard_interpreter :execute
==> centos65-x86_64: 
==> centos65-x86_64:   command "bundle install --without development"
==> centos65-x86_64: 
==> centos65-x86_64:   backup 5
==> centos65-x86_64: 
==> centos65-x86_64:   cwd "/opt/smartstack/synapse/src"
==> centos65-x86_64: 
==> centos65-x86_64:   environment {"GEM_HOME"=>"/opt/smartstack/.gem"}
==> centos65-x86_64: 
==> centos65-x86_64:   group "smartstack"
==> centos65-x86_64: 
==> centos65-x86_64:   returns 0
==> centos65-x86_64: 
==> centos65-x86_64:   user "smartstack"
==> centos65-x86_64: 
==> centos65-x86_64:   declared_type :execute
==> centos65-x86_64: 
==> centos65-x86_64:   cookbook_name :"lms-smartstack"
==> centos65-x86_64: 
==> centos65-x86_64:   recipe_name "synapse"
==> centos65-x86_64: 
==> centos65-x86_64: end
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: 
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] INFO: Running queued delayed notifications before re-raising exception
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] ERROR: Running exception handlers
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] ERROR: Exception handlers complete
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] ERROR: execute[synapse_install] (lms-smartstack::synapse line 64) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '5'
==> centos65-x86_64: ---- Begin output of bundle install --without development ----
==> centos65-x86_64: STDOUT: Fetching gem metadata from https://rubygems.org/............
==> centos65-x86_64: Fetching version metadata from https://rubygems.org/..
==> centos65-x86_64: Resolving dependencies....
==> centos65-x86_64: Rubygems 1.3.7 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
==> centos65-x86_64: Installing archive-tar-minitar 0.5.2
==> centos65-x86_64: Installing json 1.8.3 with native extensions
==> centos65-x86_64: Installing mini_portile2 2.0.0
==> centos65-x86_64: 
==> centos65-x86_64: Gem::InstallError: mini_portile2 requires Ruby version >= 1.9.2.
==> centos65-x86_64: Installing excon 0.45.4
==> centos65-x86_64: Installing little-plugger 1.1.3
==> centos65-x86_64: Installing multi_json 1.11.2
==> centos65-x86_64: Installing zookeeper 1.4.10 with native extensions
==> centos65-x86_64: Using bundler 1.11.2
==> centos65-x86_64: An error occurred while installing mini_portile2 (2.0.0), and Bundler cannot
==> centos65-x86_64: continue.
==> centos65-x86_64: Make sure that `gem install mini_portile2 -v '2.0.0'` succeeds before bundling.
==> centos65-x86_64: STDERR: 
==> centos65-x86_64: ---- End output of bundle install --without development ----
==> centos65-x86_64: Ran bundle install --without development returned 5
==> centos65-x86_64: [2016-02-11T04:27:47+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
francoisnicholas commented 8 years ago

Here's my workaround. Hopefully this helps someone trying to run this on centos.

sudo yum install https://github.com/feedforce/ruby-rpm/releases/download/2.3.0/ruby-2.3.0-1.el6.x86_64.rpm
sudo yum install gcc g++ make automake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel 

sqlite-devel libxml2
sudo yum install ruby-rdoc ruby-devel

smartstack ALL=(ALL)   NOPASSWD: ALL