diff --git a/docs/docs/extensions/extended-modules.md b/docs/docs/extensions/extended-modules.md
index 4c77940..7191324 100644
--- a/docs/docs/extensions/extended-modules.md
+++ b/docs/docs/extensions/extended-modules.md
@@ -148,4 +148,4 @@ bundle install
bundle install --path=vendor
```
-для установки пользователю необходимых гемов локально.
\ No newline at end of file
+для установки пользователю необходимых гемов локально.
diff --git a/func_ruby/ext-modules/passenger_manager.mod b/func_ruby/ext-modules/passenger_manager.mod
index 3d93fd3..57c14a0 100644
--- a/func_ruby/ext-modules/passenger_manager.mod
+++ b/func_ruby/ext-modules/passenger_manager.mod
@@ -20,15 +20,15 @@ class PassengerWorker < Kernel::ModuleCoreWorker
ID: 2,
NAME: MODULE_ID,
DESCR: "Added passenger support for nginx",
- REQ: "puppet_installer",
+ REQ: "",
CONF: "yes",
}
end
def enable
log_file = get_log
- f_inst_pp = get_module_paydata("passenger_installer.pp")
- f_uninst_pp = get_module_paydata("passenger_uninstaller.pp")
+ f_inst_pp = get_module_paydata("passenger_installer.yml")
+ f_uninst_pp = get_module_paydata("passenger_uninstaller.yml")
if !check
inf = info
log("Req error, needed #{inf[:REQ]}")
@@ -36,16 +36,16 @@ class PassengerWorker < Kernel::ModuleCoreWorker
else
begin
prepare_default_ruby_conf
- log("install packages for passenger + nginx support: /usr/bin/puppet apply --detailed-exitcodes #{f_inst_pp}")
- result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_inst_pp}" 2>&1`
+ log("install packages for passenger + nginx support: /usr/bin/ansible-playbook -vv #{f_inst_pp}")
+ result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_inst_pp}" 2>&1`
ex_status = $?.exitstatus
if ex_status.to_i == 0 || ex_status.to_i == 2
log(result_action)
super
else
log(result_action)
- log("Try to disable action: /usr/bin/puppet apply --detailed-exitcodes #{f_uninst_pp}")
- result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_uninst_pp}" 2>&1`
+ log("Try to disable action: /usr/bin/ansible-playbook -vv #{f_uninst_pp}")
+ result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_uninst_pp}" 2>&1`
"module installation error. See log #{log_file}"
end
rescue => e
@@ -57,14 +57,14 @@ class PassengerWorker < Kernel::ModuleCoreWorker
def disable
log_file = get_log
- f_uninst_pp = get_module_paydata("passenger_uninstaller.pp")
+ f_uninst_pp = get_module_paydata("passenger_uninstaller.yml")
if !check_domains_with_passenger
return log_return("Presents domains with passenger support disable it first")
end
begin
log("uninstall packages for passenger + nginx support")
- log("Try to disable action: /usr/bin/puppet apply --detailed-exitcodes #{f_uninst_pp}")
- result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_uninst_pp}" 2>&1`
+ log("Try to disable action: /usr/bin/ansible-playbook -vv #{f_uninst_pp}")
+ result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_uninst_pp}" 2>&1`
ex_status = $?.exitstatus
if ex_status.to_i == 0 || ex_status.to_i == 2
log(result_action)
diff --git a/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.yml b/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.yml
new file mode 100644
index 0000000..243bcc9
--- /dev/null
+++ b/func_ruby/ext-modules/payload/passenger_manager/passenger_installer.yml
@@ -0,0 +1,69 @@
+---
+- name: Install Passenger and configure Nginx on localhost
+ hosts: localhost
+ connection: local
+ become: true
+ gather_facts: false
+ environment:
+ LANG: en_US.UTF-8
+ LC_ALL: en_US.UTF-8
+ tasks:
+ # Устанавливаем Ruby и зависимости
+ - name: Install rubygems-devel
+ ansible.builtin.dnf:
+ name: rubygems-devel
+ state: present
+ - name: Install rubygem-rake
+ ansible.builtin.dnf:
+ name: rubygem-rake
+ state: present
+ - name: Install ruby-devel
+ ansible.builtin.dnf:
+ name: ruby-devel
+ state: present
+ - name: Install rubygem-rack
+ ansible.builtin.dnf:
+ name: rubygem-rack
+ state: present
+ - name: Install alt-brepo-ruby33-devel
+ ansible.builtin.dnf:
+ name: alt-brepo-ruby33-devel
+ state: present
+ - name: Install alt-brepo-ruby33-rubygem-rake
+ ansible.builtin.dnf:
+ name: alt-brepo-ruby33-rubygem-rake
+ state: present
+ # Устанавливаем Passenger и модуль Nginx
+ - name: Install passenger-devel
+ ansible.builtin.dnf:
+ name: passenger-devel
+ state: present
+ - name: Install passenger
+ ansible.builtin.dnf:
+ name: passenger
+ state: present
+ - name: Install nginx-mod-http-passenger
+ ansible.builtin.dnf:
+ name: nginx-mod-http-passenger
+ state: present
+ # Конфигурируем Nginx для Passenger
+ - name: Create passenger.conf
+ ansible.builtin.copy:
+ dest: /etc/nginx/conf.d/passenger.conf
+ 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_env_var PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0;
+ passenger_env_var PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0;
+ - name: Create passenger_includer.conf
+ ansible.builtin.copy:
+ dest: /etc/nginx/conf.d/main/passenger.conf
+ content: |
+ load_module modules/ngx_http_passenger_module.so;
+ # Перезапускаем Nginx
+ - name: Restart nginx service
+ ansible.builtin.service:
+ name: nginx
+ state: restarted
diff --git a/func_ruby/ext-modules/payload/passenger_manager/passenger_uninstaller.yml b/func_ruby/ext-modules/payload/passenger_manager/passenger_uninstaller.yml
new file mode 100644
index 0000000..a591f09
--- /dev/null
+++ b/func_ruby/ext-modules/payload/passenger_manager/passenger_uninstaller.yml
@@ -0,0 +1,38 @@
+---
+- name: Uninstall Passenger and configure Nginx on localhost
+ hosts: localhost
+ connection: local
+ become: true
+ gather_facts: false
+ environment:
+ LANG: en_US.UTF-8
+ LC_ALL: en_US.UTF-8
+ tasks:
+ # Удалаем модуль nginx-passenger
+ - name: Remove nginx-mod-http-passenger package
+ ansible.builtin.dnf:
+ name: nginx-mod-http-passenger
+ state: absent
+ # Удалаем passenger и зависимости
+ - name: Remove passenger-devel package
+ ansible.builtin.dnf:
+ name: passenger-devel
+ state: absent
+ - name: Remove passenger package
+ ansible.builtin.dnf:
+ name: passenger
+ state: absent
+ # Удаляем конфигурационные файлы Nginx
+ - name: Remove passenger.conf
+ ansible.builtin.file:
+ path: /etc/nginx/conf.d/passenger.conf
+ state: absent
+ - name: Remove passenger_includer.conf
+ ansible.builtin.file:
+ path: /etc/nginx/conf.d/main/passenger.conf
+ state: absent
+ # Перезапускаем Nginx (необязательно, но полезно)
+ - name: Restart nginx service
+ ansible.builtin.service:
+ name: nginx
+ state: restarted
diff --git a/src/rpm/hestia/hestia.spec b/src/rpm/hestia/hestia.spec
index d6c8df1..b2586f2 100644
--- a/src/rpm/hestia/hestia.spec
+++ b/src/rpm/hestia/hestia.spec
@@ -3,7 +3,7 @@
Name: hestia
Version: 1.9.6
-Release: 8%{dist}
+Release: 9%{dist}
Summary: Hestia Control Panel
Group: System Environment/Base
License: GPLv3
@@ -36,8 +36,7 @@ Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires: ruby
-Requires: puppet
-Requires: puppet-stdlib
+Requires: ansible-core
Provides: hestia = %{version}-%{release}
Conflicts: redhat-release < 8
@@ -184,6 +183,9 @@ fi
%{_tmpfilesdir}/%{name}.conf
%changelog
+* Sun Mar 29 2026 Alexey Berezhok - 1.9.6-9
+- Added support ansible instead of puppet
+
* Fri Mar 27 2026 Alexey Berezhok - 1.9.6-8
- Fixed installation of panel without PHP-FPM
- Fixed mod_php, fcgid, fcgi mode