osal_rhel_based.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/sh
  2. # RHEL / CentOS / Fedora
  3. #-------------------------------------------------------------------#
  4. # Variables #
  5. #-------------------------------------------------------------------#
  6. # Services
  7. SERVICE_NAME_APACHE=httpd
  8. SERVICE_NAME_BIND=named
  9. SERVICE_NAME_CRON=crond
  10. # Users
  11. USER_APACHE_DATA=apache
  12. USER_BIND=named
  13. USER_NOBODY=nobody
  14. USER_NOGROUP=nobody
  15. # Commands
  16. CMD_PACKAGE_MANAGER=/usr/bin/dnf
  17. # Packages
  18. PKG_APACHE=httpd
  19. PKG_APACHE_MOD_RUID2=mod_ruid2
  20. PKG_BIND=bind
  21. PKG_EXIM=exim
  22. PKG_PHPMYADMIN=phpMyAdmin
  23. PKG_ROUNDCUBE=roundcubemail
  24. # Paths
  25. PATH_BIND_DATA=/var/named
  26. PATH_ROUNDCUBE_INSTALL_MYSQL=/usr/share/roundcubemail/SQL/mysql
  27. #-------------------------------------------------------------------#
  28. # Functions #
  29. #-------------------------------------------------------------------#
  30. # OS function wrappers
  31. # package_preinstall
  32. package_preinstall() {
  33. true # Do nothing (on Debian: apt-get update)
  34. }
  35. # package_install 'package' 'package' ...
  36. package_install() {
  37. $CMD_PACKAGE_MANAGER -q -y install "$@"
  38. }
  39. # package_remoev 'package' 'package' ...
  40. package_remove() {
  41. $CMD_PACKAGE_MANAGER -y remove "$@"
  42. }
  43. # service_start 'service-name'
  44. service_start() {
  45. /usr/bin/systemctl start ${1}.service
  46. }
  47. # service_stop 'service-name'
  48. service_stop() {
  49. /usr/bin/systemctl stop ${1}.service
  50. }
  51. # service_restart 'service-name'
  52. service_restart() {
  53. /usr/bin/systemctl restart ${1}.service
  54. }
  55. # service_enable 'service-name'
  56. service_enable() {
  57. /usr/bin/systemctl enable ${1}.service
  58. }
  59. # service_disable 'service-name'
  60. service_disable() {
  61. /usr/bin/systemctl disable ${1}.service
  62. }
  63. # Software-specific
  64. # apache_module_isenabled 'module_name' = (1|null)
  65. apache_module_isenabled() {
  66. mod_enabled=$(/usr/sbin/httpd -M | grep $1)
  67. [ "$mod_enabled" ] && echo 1
  68. }
  69. # apache_module_enable 'module_name'
  70. apache_module_enable() {
  71. /usr/bin/sed -i "/LoadModule ${1}_module/ s/#*//" /etc/httpd/conf.modules.d/*.conf
  72. }
  73. # apache_module_disable 'module_name'
  74. apache_module_disable() {
  75. /usr/bin/sed -i "/LoadModule ${1}_module/ s/^/#/" /etc/httpd/conf.modules.d/*.conf
  76. }
  77. # multiphp_php_package_prefix 7.3 = 'php73-php'
  78. multiphp_php_package_prefix() {
  79. echo php${1//.}-php
  80. }
  81. # multiphp_fpm_isinstalled 7.3 = (1|null)
  82. multiphp_fpm_isinstalled() {
  83. php_prefix=$(multiphp_php_package_prefix $1)
  84. rpm -q --quiet ${php_prefix}-fpm && echo 1
  85. }
  86. # multiphp_etc_folder '7.3' = /etc/opt/remi/php73
  87. multiphp_etc_folder() {
  88. echo /etc/opt/remi/php${1//.}
  89. }
  90. # multiphp_fpm_pool_d '7.3' = /etc/php/7.3/fpm/pool.d
  91. multiphp_fpm_pool_d() {
  92. echo /etc/opt/remi/php${1//.}/php-fpm.d
  93. }