osal_rhel_based.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #!/bin/sh
  2. # RHEL / CentOS / Fedora
  3. #-------------------------------------------------------------------#
  4. # Variables #
  5. #-------------------------------------------------------------------#
  6. # Services
  7. OSAL_SERVICE_APACHE=httpd
  8. OSAL_SERVICE_BIND=named
  9. OSAL_SERVICE_CLAMAV=clamd
  10. OSAL_SERVICE_CRON=crond
  11. # Users
  12. OSAL_USER_APACHE_DATA=apache
  13. OSAL_USER_BIND=named
  14. OSAL_USER_EXIM=exim
  15. OSAL_USER_NOBODY=nobody
  16. OSAL_USER_NOGROUP=nobody
  17. # Commands
  18. OSAL_CMD_PACKAGE_MANAGER=/usr/bin/dnf
  19. # Packages
  20. OSAL_PKG_APACHE=httpd
  21. OSAL_PKG_APACHE_MOD_RUID2=mod_ruid2
  22. OSAL_PKG_BIND=bind
  23. OSAL_PKG_CLAMAV=clamav clamav-update
  24. OSAL_PKG_EXIM=exim
  25. OSAL_PKG_PHPMYADMIN=phpMyAdmin
  26. OSAL_PKG_ROUNDCUBE=roundcubemail
  27. # Paths
  28. OSAL_PATH_APACHE_CONF=/etc/httpd
  29. OSAL_PATH_BIND_DATA=/var/named
  30. OSAL_PATH_CLAMAV_CONF=/etc/clamd.conf /etc/clamd.d
  31. OSAL_PATH_EXIM_CONF=/etc/exim
  32. OSAL_PATH_ROUNDCUBE_INSTALL_MYSQL=/usr/share/roundcubemail/SQL/mysql
  33. OSAL_PATH_VSFTPD_CONF=/etc/vsftpd
  34. #-------------------------------------------------------------------#
  35. # Functions #
  36. #-------------------------------------------------------------------#
  37. # OS function wrappers
  38. # package_preinstall
  39. osal_package_preinstall() {
  40. true # Do nothing (on Debian: apt-get update)
  41. }
  42. # package_install 'package' 'package' ...
  43. osal_package_install() {
  44. $OSAL_CMD_PACKAGE_MANAGER -q -y install "$@"
  45. }
  46. # package_remoev 'package' 'package' ...
  47. osal_package_remove() {
  48. $OSAL_CMD_PACKAGE_MANAGER -y remove "$@"
  49. }
  50. # service_start 'service-name'
  51. osal_service_start() {
  52. /usr/bin/systemctl start ${1}.service
  53. }
  54. # service_stop 'service-name'
  55. osal_service_stop() {
  56. /usr/bin/systemctl stop ${1}.service
  57. }
  58. # service_restart 'service-name'
  59. osal_service_restart() {
  60. /usr/bin/systemctl restart ${1}.service
  61. }
  62. # service_enable 'service-name'
  63. osal_service_enable() {
  64. /usr/bin/systemctl enable ${1}.service > /dev/null
  65. }
  66. # service_disable 'service-name'
  67. osal_service_disable() {
  68. /usr/bin/systemctl disable ${1}.service /dev/null
  69. }
  70. # Software-specific
  71. # apache_module_isenabled 'module_name' = (1|null)
  72. osal_apache_module_isenabled() {
  73. mod_enabled=$(/usr/sbin/httpd -M | grep $1)
  74. [ "$mod_enabled" ] && echo 1
  75. }
  76. # apache_module_enable 'module_name'
  77. osal_apache_module_enable() {
  78. /usr/bin/sed -i "/LoadModule ${1}_module/ s/#*//" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf
  79. grep "^$LoadModule\s*${1}_module" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf > /dev/null
  80. if [ $? -gt 0 ]; then
  81. echo "LoadModule ${1}_module modules/mod_${1}.so" > $OSAL_PATH_APACHE_CONF/conf.modules.d/hestia-${1}.conf
  82. fi
  83. }
  84. # apache_module_disable 'module_name'
  85. osal_apache_module_disable() {
  86. /usr/bin/sed -i "/LoadModule\s*${1}_module/ s/^/#/" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf
  87. }
  88. # multiphp_php_package_prefix 7.3 = 'php73-php'
  89. osal_multiphp_php_package_prefix() {
  90. echo php${1//.}-php
  91. }
  92. # multiphp_fpm_isinstalled 7.3 = (1|null)
  93. osal_multiphp_fpm_isinstalled() {
  94. php_prefix=$(osal_multiphp_php_package_prefix $1)
  95. rpm -q --quiet ${php_prefix}-fpm && echo 1
  96. }
  97. # multiphp_etc_folder '7.3' = /etc/opt/remi/php73
  98. osal_multiphp_etc_folder() {
  99. echo /etc/opt/remi/php${1//.}
  100. }
  101. # multiphp_fpm_pool_d '7.3' = /etc/opt/remi/php$73/php-fpm.d
  102. osal_multiphp_fpm_pool_d() {
  103. echo /etc/opt/remi/php${1//.}/php-fpm.d
  104. }