From b21c2e44a35d4fb6fe36fd94dbc521e46a302b8a Mon Sep 17 00:00:00 2001 From: nilsver Date: Mon, 13 Jan 2025 12:13:44 +0000 Subject: [PATCH 1/2] add external memcached --- resources/bin/rb_configure_leader.sh | 5 +- resources/lib/rb_wiz_lib.rb | 113 +++++++++++++++++++++++---- resources/scripts/rb_setup_wizard.rb | 44 ++++++++++- 3 files changed, 142 insertions(+), 20 deletions(-) diff --git a/resources/bin/rb_configure_leader.sh b/resources/bin/rb_configure_leader.sh index ec0ee447..e1c8c4f3 100755 --- a/resources/bin/rb_configure_leader.sh +++ b/resources/bin/rb_configure_leader.sh @@ -239,13 +239,16 @@ _RBEOF_ # External services MODE_PG="external" MODE_S3="external" + MODE_MEMCACHED="onpremise" [ -f /etc/redborder/postgresql_init_conf.yml ] && MODE_PG="onpremise" [ -f /etc/redborder/s3_init_conf.yml ] && MODE_S3="onpremise" + [ -n "${ELASTICACHE_ADDRESS}" ] && MODE_MEMCACHED="external" cat > /var/chef/data/data_bag/rBglobal/external_services.json <<-_RBEOF_ { "id": "external_services", "postgresql": "$MODE_PG", - "s3": "$MODE_S3" + "s3": "$MODE_S3", + "memcached": "$MODE_MEMCACHED" } _RBEOF_ diff --git a/resources/lib/rb_wiz_lib.rb b/resources/lib/rb_wiz_lib.rb index 89e6241f..8536af1b 100755 --- a/resources/lib/rb_wiz_lib.rb +++ b/resources/lib/rb_wiz_lib.rb @@ -47,7 +47,7 @@ def initialize() @devmode = { "dhcp" => "Dynamic", "static" => "Static" } @devmodereverse = { "Dynamic" => "dhcp", "Static" => "static" } @management_iface = nil - @sync_interface = nil + @sync_interface = nil end def doit(network_interfaces) @@ -107,7 +107,7 @@ def get_network_interfaces next if netdev == "lo" netdevprop = netdev_property(netdev) next unless (netdevprop["ID_BUS"] == "pci" and !netdevprop["MAC"].nil?) - + # Fetch network scripts to get IP information ip = get_ip_for_interface(netdev) get_network_scripts(netdev) @@ -118,12 +118,12 @@ def get_network_interfaces data.item += ", IP: #{ip}" unless ip.nil? # Add IP if available data.select = first_interface ? true : false first_interface = false if first_interface - + network_interfaces.push(data.to_a) end return network_interfaces end - + # Helper method to extract the IPv4 address from the network script def get_ip_for_interface(netdev) if File.exist?("/etc/sysconfig/network-scripts/ifcfg-#{netdev}") @@ -201,7 +201,7 @@ def get_ip_of_interface(interface_name) end nil end - + def get_netmask_of_interface(interface_name) Socket.getifaddrs.each do |ifaddr| if ifaddr.name == interface_name && ifaddr.addr&.ipv4? @@ -214,15 +214,15 @@ def get_netmask_of_interface(interface_name) def get_network_scripts(netdev) if File.exist?("/etc/sysconfig/network-scripts/ifcfg-#{netdev}") config_file = File.read("/etc/sysconfig/network-scripts/ifcfg-#{netdev}") - + if config_file.match(/^IPADDR=/) ip = config_file.match(/^IPADDR=(?.*)$/)&.[](:ip) netmask = config_file.match(/^NETMASK=(?.*)$/)&.[](:netmask) || "255.255.255.0" gateway = config_file.match(/^GATEWAY=(?.*)$/)&.[](:gateway) || "" @confdev[netdev] = { - "mode" => "static", - "ip" => ip, + "mode" => "static", + "ip" => ip, "netmask" => netmask, "gateway" => gateway } @@ -344,6 +344,88 @@ def doit end end +class MemcachedConf < WizConf + + attr_accessor :conf, :cancel + + def initialize() + @cancel = false + @conf = {} + end + + def doit + memcached_config = { + "cfg_address"=>"", + "cfg_port"=>11211 + } + + loop do + dialog = MRDialog.new + dialog.clear = true + text = < "", "port" => "" }, + "elasticache" => { + "cfg_address" => "", + "cfg_port" => "" + }, "mode" => "full" # default mode } @@ -86,7 +90,7 @@ def cancel_wizard() text = < e + puts "Error during memcached configuration: #{e.message}" + end +else + general_conf.delete("elasticache") +end # Set mode modeconf = ModeConf.new @@ -401,6 +432,13 @@ def cancel_wizard() text += " port: #{general_conf["postgresql"]["port"]}\n" end +unless general_conf["elasticache"].nil? + text += "\n- Elasticache:\n" + text += " Domain: #{general_conf["elasticache"]["cfg_address"]}\n" + text += " Port: #{general_conf["elasticache"]["cfg_port"]}\n" + # text += " ela: #{general_conf}" +end + text += "\n- Serf:\n" text += " mode: #{general_conf["serf"]["multicast"] ? "multicast" : "unicast"}\n" unless general_conf["serf"]["sync_net"].nil? || general_conf["serf"]["sync_net"].empty? From 3910872aedbc333d8c234cab78dc30443a43fa1f Mon Sep 17 00:00:00 2001 From: nilsver Date: Mon, 13 Jan 2025 12:32:12 +0000 Subject: [PATCH 2/2] remove comment --- resources/scripts/rb_setup_wizard.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/scripts/rb_setup_wizard.rb b/resources/scripts/rb_setup_wizard.rb index 751a5607..8e5436b9 100755 --- a/resources/scripts/rb_setup_wizard.rb +++ b/resources/scripts/rb_setup_wizard.rb @@ -436,7 +436,6 @@ def cancel_wizard() text += "\n- Elasticache:\n" text += " Domain: #{general_conf["elasticache"]["cfg_address"]}\n" text += " Port: #{general_conf["elasticache"]["cfg_port"]}\n" - # text += " ela: #{general_conf}" end text += "\n- Serf:\n"