osal_rhel_based.sh 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. #!/bin/sh
  2. # RHEL / CentOS / Fedora
  3. #-------------------------------------------------------------------#
  4. # Variables #
  5. #-------------------------------------------------------------------#
  6. # Apache
  7. OSAL_SERVICE_APACHE=httpd
  8. OSAL_USER_APACHE_DATA=apache
  9. OSAL_PKG_APACHE=httpd
  10. OSAL_PKG_APACHE_EXTRA=mod_ssl
  11. OSAL_PKG_APACHE_MOD_RUID2=mod_ruid2
  12. OSAL_PATH_APACHE_CONF=/etc/httpd/conf
  13. OSAL_PATH_APACHE_CONF_D=/etc/httpd/conf.d
  14. OSAL_PATH_APACHE_MODS_ENABLED=/etc/httpd/conf.modules.d
  15. # Bind
  16. OSAL_SERVICE_BIND=named
  17. OSAL_USER_BIND=named
  18. OSAL_PKG_BIND=bind
  19. OSAL_PATH_BIND_DATA=/var/named
  20. # ClamAV
  21. OSAL_SERVICE_CLAMAV=clamd
  22. OSAL_USER_CLAMAV=clamav
  23. OSAL_PKG_CLAMAV='clamd clamav-update'
  24. OSAL_PATH_CLAMAV_CONF=/etc/clamd.conf
  25. OSAL_PATH_CLAMAV_CONF_D=/etc/clamd.d
  26. # Cron
  27. OSAL_SERVICE_CRON=crond
  28. # Dovecot
  29. OSAL_SERVICE_DOVECOT=dovecot
  30. OSAL_PKG_DOVECOT=dovecot
  31. OSAL_PATH_DOVECOT_CONF=/etc/dovecot
  32. # Exim
  33. OSAL_SERVICE_EXIM=exim
  34. OSAL_USER_EXIM=exim
  35. OSAL_PKG_EXIM=exim
  36. OSAL_PATH_EXIM_CONF=/etc/exim
  37. # Nginx
  38. OSAL_SERVICE_NGINX=nginx
  39. OSAL_USER_NGINX=nginx
  40. OSAL_PKG_NGINX=nginx
  41. OSAL_PATH_NGINX_CONF=/etc/nginx
  42. OSAL_PATH_NGINX_CONF_D=/etc/nginx/conf.d
  43. # phpMyAdmin
  44. OSAL_PKG_PHPMYADMIN=phpMyAdmin
  45. # RoundCube
  46. OSAL_PKG_ROUNDCUBE=roundcubemail
  47. OSAL_PATH_ROUNDCUBE_INSTALL_MYSQL=/usr/share/roundcubemail/SQL/mysql
  48. # SpamAssassin
  49. OSAL_SERVICE_SPAMASSASSIN=spamassassin
  50. OSAL_PKG_SPAMASSASSIN=spamassassin
  51. OSAL_PATH_SPAMASSASSIN_CONF=/etc/mail/spamassassin
  52. # vsftpd
  53. OSAL_PATH_VSFTPD_CONF=/etc/vsftpd
  54. # Misc. users
  55. OSAL_USER_NOBODY=nobody
  56. OSAL_USER_NOGROUP=nobody
  57. # Misc. commands
  58. OSAL_CMD_PACKAGE_MANAGER=/usr/bin/dnf
  59. # Misc. paths
  60. OSAL_PATH_LOGROTATE_CONF_D=/etc/logrotate.d
  61. #-------------------------------------------------------------------#
  62. # Functions #
  63. #-------------------------------------------------------------------#
  64. # OS function wrappers
  65. # package_preinstall
  66. osal_package_preinstall() {
  67. true # Do nothing (on Debian: apt-get update)
  68. }
  69. # package_install 'package' 'package' ...
  70. osal_package_install() {
  71. $OSAL_CMD_PACKAGE_MANAGER -q -y install "$@"
  72. }
  73. # package_remoev 'package' 'package' ...
  74. osal_package_remove() {
  75. $OSAL_CMD_PACKAGE_MANAGER -q -y remove "$@"
  76. }
  77. # service_start 'service-name'
  78. osal_service_start() {
  79. /usr/bin/systemctl start ${1}.service
  80. }
  81. # service_stop 'service-name'
  82. osal_service_stop() {
  83. /usr/bin/systemctl stop ${1}.service
  84. }
  85. # service_restart 'service-name'
  86. osal_service_restart() {
  87. /usr/bin/systemctl restart ${1}.service
  88. }
  89. # service_enable 'service-name'
  90. osal_service_enable() {
  91. /usr/bin/systemctl enable ${1}.service > /dev/null
  92. }
  93. # service_disable 'service-name'
  94. osal_service_disable() {
  95. /usr/bin/systemctl disable ${1}.service /dev/null
  96. }
  97. # Software-specific
  98. # apache_module_isenabled 'module_name' = (1|null)
  99. osal_apache_module_isenabled() {
  100. mod_enabled=$(/usr/sbin/httpd -M | grep $1)
  101. [ "$mod_enabled" ] && echo 1
  102. }
  103. # apache_module_enable 'module_name'
  104. osal_apache_module_enable() {
  105. /usr/bin/sed -i "/^#LoadModule\s*${1}_module/ s/#*//" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf
  106. grep "^LoadModule\s*${1}_module" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf > /dev/null
  107. if [ $? -gt 0 ]; then
  108. echo "LoadModule ${1}_module modules/mod_${1}.so" >> $OSAL_PATH_APACHE_CONF/conf.modules.d/${1}.conf
  109. fi
  110. }
  111. # apache_module_disable 'module_name'
  112. osal_apache_module_disable() {
  113. /usr/bin/sed -i "/LoadModule\s*${1}_module/ s/^/#/" $OSAL_PATH_APACHE_CONF/conf.modules.d/*.conf
  114. }
  115. # multiphp_php_package_prefix 7.3 = 'php73-php'
  116. osal_multiphp_php_package_prefix() {
  117. echo php${1//.}-php
  118. }
  119. # multiphp_fpm_isinstalled 7.3 = (1|null)
  120. osal_multiphp_fpm_isinstalled() {
  121. php_prefix=$(osal_multiphp_php_package_prefix $1)
  122. rpm -q --quiet ${php_prefix}-fpm && echo 1
  123. }
  124. # multiphp_etc_folder '7.3' = /etc/opt/remi/php73
  125. osal_multiphp_etc_folder() {
  126. echo /etc/opt/remi/php${1//.}
  127. }
  128. # multiphp_fpm_pool_d '7.3' = /etc/opt/remi/php$73/php-fpm.d
  129. osal_multiphp_fpm_pool_d() {
  130. echo /etc/opt/remi/php${1//.}/php-fpm.d
  131. }