From 5443ea44dd0f6a39812db9d3a23b7d38a81eaf87 Mon Sep 17 00:00:00 2001 From: Alexey Berezhok Date: Sat, 28 Dec 2024 23:41:32 +0300 Subject: [PATCH] Added passeneg manager. Part 11 --- bin/v-delete-web-domain | 12 ++++++ func_ruby/ext-modules/passenger_manager.mod | 18 ++++++++- .../passenger_manager/passenger_installer.pp | 39 ++++++++++++++++++- func_ruby/main.rb | 20 ++++++++++ install/hst-install-rhel.sh | 2 +- 5 files changed, 88 insertions(+), 3 deletions(-) diff --git a/bin/v-delete-web-domain b/bin/v-delete-web-domain index de7cbac..f0b280c 100755 --- a/bin/v-delete-web-domain +++ b/bin/v-delete-web-domain @@ -146,6 +146,18 @@ if [[ $BACKEND =~ ^.*PHP-([0-9])\_([0-9])$ ]]; then else version=$(multiphp_default_version) fi + +# Delete ruby if exists +if [ -e /usr/local/hestia/bin/v-ext-modules ]; then + res=$(/usr/local/hestia/bin/v-ext-modules state passenger_manager csv | tail -n 1 | /usr/bin/xargs | cut -d"," -f6 ) + if [ -n "$res" ]; then + enabled=$(echo "$res" | grep enabled) + if [ -n "$enabled" ]; then + /usr/local/hestia/bin/v-ext-modules-run passenger_manager disable_user "$domain" + fi + fi +fi + # Restarting web server $BIN/v-restart-web "$restart" check_result $? "Web restart failed" > /dev/null diff --git a/func_ruby/ext-modules/passenger_manager.mod b/func_ruby/ext-modules/passenger_manager.mod index 9509ee3..5f0f6b3 100644 --- a/func_ruby/ext-modules/passenger_manager.mod +++ b/func_ruby/ext-modules/passenger_manager.mod @@ -6,7 +6,13 @@ class PassengerWorker < Kernel::ModuleCoreWorker MODULE_ID = "passenger_manager" def check_domains_with_passenger - true + dom_file = get_module_conf("domains.conf") + val = hestia_get_file_keys_value(dom_file) + if val.empty? + true + else + false + end end def info @@ -169,6 +175,16 @@ class PassengerWorker < Kernel::ModuleCoreWorker hestia_print_array_of_hashes(a_result, format, "RUBY") ACTION_OK end + when "list_users_ruby" + dom_file = get_module_conf("domains.conf") + format = (args[1].nil? ? "shell" : args[1].strip) + val = hestia_get_file_keys_value(dom_file) + result = Array.new + val.each do |key, value| + result << { "DOMAIN" => key, "RUBY" => value } + end + hestia_print_array_of_hashes(result, format, "DOMAIN,RUBY") + ACTION_OK when "get_tpl_path" result = [{ "RUBY_TPL" => get_module_paydata_dir }] format = (args[1].nil? ? "shell" : args[1].strip) diff --git a/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.pp b/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.pp index 32dcb93..5c10e4a 100644 --- a/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.pp +++ b/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.pp @@ -1,3 +1,38 @@ +package { + ensure => installed, + name => 'rubygems-devel', + provider => 'dnf', +} +package { + ensure => installed, + name => 'rubygem-rake', + provider => 'dnf', +} +package { + ensure => installed, + name => 'ruby-devel', + provider => 'dnf', +} +package { + ensure => installed, + name => 'rubygem-rack', + provider => 'dnf', +} +package { + ensure => installed, + name => 'alt-brepo-ruby33-devel', + provider => 'dnf', +} +package { + ensure => installed, + name => 'alt-brepo-ruby33-rubygem-rake', + provider => 'dnf', +} +package { + ensure => installed, + name => 'passenger-devel', + provider => 'dnf', +} package { 'passenger': ensure => installed, name => 'passenger', @@ -14,7 +49,9 @@ package { 'passenger': content => 'passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /usr/bin/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; -passenger_user_switching on;', +passenger_user_switching on; +passenger_env_var PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0; +passenger_env_var PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0;', } -> file { 'passenger_includer.conf': ensure => file, diff --git a/func_ruby/main.rb b/func_ruby/main.rb index edad552..cd03a34 100644 --- a/func_ruby/main.rb +++ b/func_ruby/main.rb @@ -268,6 +268,26 @@ def hestia_get_file_key_pair(file, key) value end +def hestia_get_file_keys_value(file) + value = Hash.new + if File.exist?(file) + File.open(file, File::RDONLY) do |f| + f.flock(File::LOCK_SH) + f.each do |line| + result = line.strip.split("=", 2) + if result.length > 1 + k = result[0].strip + v = result[1].strip + if k != "" + value[k] = v + end + end + end + end + end + value +end + def hestia_save_file_key_pair(file, key, value) File.open(file, File::RDWR | File::CREAT, 0600) do |f| f.flock(File::LOCK_EX) diff --git a/install/hst-install-rhel.sh b/install/hst-install-rhel.sh index 35e64dd..c12625c 100755 --- a/install/hst-install-rhel.sh +++ b/install/hst-install-rhel.sh @@ -2026,7 +2026,7 @@ write_config_value "POLICY_SYSTEM_PROTECTED_ADMIN" "no" write_config_value "POLICY_SYSTEM_PASSWORD_RESET" "yes" write_config_value "POLICY_SYSTEM_HIDE_SERVICES" "no" write_config_value "POLICY_SYSTEM_ENABLE_BACON" "no" -write_config_value "PLUGIN_APP_INSTALLER" "true" +write_config_value "PLUGIN_APP_INSTALLER" "false" write_config_value "DEBUG_MODE" "no" write_config_value "ENFORCE_SUBDOMAIN_OWNERSHIP" "yes" write_config_value "USE_SERVER_SMTP" "false"