]> git.openstreetmap.org Git - chef.git/commitdiff
Use system ruby for tile servers
authorTom Hughes <tom@compton.nu>
Sat, 22 Feb 2025 20:14:54 +0000 (20:14 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 22 Feb 2025 20:14:54 +0000 (20:14 +0000)
cookbooks/ruby/attributes/default.rb
cookbooks/ruby/recipes/default.rb
cookbooks/ruby/resources/bundle_install.rb
roles/dev.rb
roles/tile.rb
roles/web-frontend.rb

index 444d260b8d636e637368ac68725a3d89b822936b..194f29957f593495892d3953b7215672aea832d8 100644 (file)
@@ -1,4 +1,23 @@
-default[:ruby][:version] = "3.4"
-default[:ruby][:interpreter] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/ruby"
-default[:ruby][:gem] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/gem"
-default[:ruby][:bundle] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/bundle"
+default[:ruby][:fullstaq] = true
+
+if node[:ruby][:fullstaq]
+
+  default[:ruby][:version] = "3.4"
+  default[:ruby][:interpreter] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/ruby"
+  default[:ruby][:gem] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/gem"
+  default[:ruby][:bundle] = "/usr/lib/fullstaq-ruby/versions/#{node[:ruby][:version]}-jemalloc/bin/bundle"
+
+else
+
+  default[:ruby][:version] = if platform?("debian")
+                               "3.1"
+                             elsif node[:lsb][:release].to_f < 22.04
+                               "2.7"
+                             else
+                               "3.0"
+                             end
+  default[:ruby][:interpreter] = "/usr/bin/ruby#{node[:ruby][:version]}"
+  default[:ruby][:gem] = "/usr/bin/gem#{node[:ruby][:version]}"
+  default[:ruby][:bundle] = "/usr/bin/bundle#{node[:ruby][:version]}"
+
+end
index cbf2c53f3e40a6a6e390d05fe46ae0da8db41032..7301e372c351b88bcf1d56e6b189c10cd680d421 100644 (file)
 # limitations under the License.
 #
 
-include_recipe "apt::fullstaq-ruby"
-
 ruby_version = node[:ruby][:version]
 
-package %W[
-  fullstaq-ruby-common
-  fullstaq-ruby-#{ruby_version}-jemalloc
-]
+if node[:ruby][:fullstaq]
+
+  include_recipe "apt::fullstaq-ruby"
+
+  package %W[
+    fullstaq-ruby-common
+    fullstaq-ruby-#{ruby_version}-jemalloc
+  ]
 
-%w[bundle bundler erb gem irb racc rake rbs rdbg rdoc ri ruby syntax_suggest typeproc].each do |command|
-  link "/usr/local/bin/#{command}" do
-    to "/usr/lib/fullstaq-ruby/versions/#{ruby_version}-jemalloc/bin/#{command}"
-    owner "root"
-    group "root"
+  %w[bundle bundler erb gem irb racc rake rbs rdbg rdoc ri ruby syntax_suggest typeproc].each do |command|
+    link "/usr/local/bin/#{command}" do
+      to "/usr/lib/fullstaq-ruby/versions/#{ruby_version}-jemalloc/bin/#{command}"
+      owner "root"
+      group "root"
+    end
   end
+
+else
+
+  package %W[
+    ruby
+    ruby-dev
+    ruby-bundler
+  ]
+
 end
index 2cf7ee632dc2697e6e7cc045901e64a1154e9249..9facccc277a702fc6d9bf13dd9b85dba07999388 100644 (file)
@@ -47,5 +47,9 @@ action_class do
 end
 
 def after_created
-  subscribes :run, "package[fullstaq-ruby-#{node[:ruby][:version]}-jemalloc]"
+  if node[:ruby][:fullstaq]
+    subscribes :run, "package[fullstaq-ruby-#{node[:ruby][:version]}-jemalloc]"
+  else
+    subscribes :run, "package[ruby-bundler]"
+  end
 end
index f85849e888b70116b1a02cd232e55a273664316d..a3e67e0f0bb112d1370941aabe8bf12d0ddd05d2 100644 (file)
@@ -159,6 +159,9 @@ default_attributes(
       }
     }
   },
+  :ruby => {
+    :fullstaq => true
+  },
   :sysctl => {
     :postgres => {
       :comment => "Increase shared memory for postgres",
index 20bded97ff13fd0d2fcf2f6161408dc91950244d..550c99f66f550ead3a730202e2c2034adfef06fc 100644 (file)
@@ -46,6 +46,9 @@ default_attributes(
       }
     }
   },
+  :ruby => {
+    :fullstaq => false
+  },
   :ssl => {
     :ct_report_uri => false
   },
index 396cf36dbeddd5a18aeb90b70aa74e6d9ea98eb4..e7c0e5850f171bebce1dadc49d154fa4e84f1970 100644 (file)
@@ -30,6 +30,9 @@ default_attributes(
   :passenger => {
     :max_pool_size => 50
   },
+  :ruby => {
+    :fullstaq => true
+  },
   :exim => {
     :local_domains => ["messages.openstreetmap.org"],
     :routes => {