From 4697e670434d01464723d3f3da6608ea6d650cf2 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 7 Apr 2015 13:42:15 +0200 Subject: [PATCH 6/6] Add force mode BUG:1205691 --- sapconf | 33 +++++++++++++++++++-------------- sapconf.man | 7 ++++--- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/sapconf b/sapconf index 58096fe..bad7736 100755 --- a/sapconf +++ b/sapconf @@ -20,10 +20,11 @@ # requires: tuned-profiles-sap # # options: -# -f : uses the given file instead of /etc/sysconfig/sap (FUTURE USE) -# -n : just check and don't modify -# -q : quiet, no output -# -d : used to set special parameters for Sybase and Oracle +# -d : used to set special parameters for Sybase and Oracle, respectively (i.e. sybase|syb|oracle|ora) +# -f : FORCE mode: do actions which are not required, but makes your life easier (i.e. disable firewall) +# -n : CHECK_ONLY mode: no modification will be made to the system +# -q : quiet execution. log file directory: /var/log/sap +# -h : help message # # returncodes: # 0 : all works well @@ -53,6 +53,7 @@ export LOGFILE=${LOGDIR}/${SCRIPTNAME}-$(date +"%Y%m%d%H%M").log SAP_NOTE_RHEL7="SAP Note 2002167" CHECK_ONLY=0 +FORCE_MODE=0 QUIET=0 # rec_count counts the number of lines of variable array REC[] that contains recommendations to be put at the end of the $LOGFILE rec_count=0 @@ -115,10 +116,11 @@ ORA_EXTRA_RPMS="@development libaio libaio-devel compat-libstdc++-33 elfutils-li # 1 function usage() { cat << EOU -Usage: $0 [-d ] [-n] [-q] +Usage: $0 [-d ] [-f] [-n] [-q] -d : used to set special parameters for Sybase and Oracle, respectively (i.e. sybase|syb|oracle|ora) - -n : CHECK_ONLY mode: check only, no modification will be made to the system + -f : FORCE mode: do actions which are not required, but makes your life easier (i.e. disable firewall) + -n : CHECK_ONLY mode: no modification will be made to the system -q : quiet execution. log file directory: /var/log/sap -h : help message @@ -639,7 +639,12 @@ function check_security() { # SELinux needs to be permissive or disabled SELINUX_CONFIG=/etc/selinux/config if egrep -q "^SELINUX=['\"]?enforcing" $SELINUX_CONFIG; then - rec "SELinux is configured to be booted in enforcing mode. It's recommended to set to permissive. Please check $SAP_NOTE_RHEL7 for details." + if [ $FORCE_MODE == 1 ]; then + sed -i "s/^SELINUX=['\"]\?enforcing/SELINUX=permissive/" $SELINUX_CONFIG + out "Configuring SELinux to be permissive..." + else + rec "SELinux is configured to be booted in enforcing mode. It's recommended to set to permissive. Please check $SAP_NOTE_RHEL7 for details." + fi else if egrep -q "^SELINUX=['\"]?disabled" $SELINUX_CONFIG; then rec "SElinux is configured to be disabled on boot. It's recommended to be set to permissive, however your system may then require to be relabeled. Please check $SAP_NOTE_RHEL7 for details." @@ -655,7 +657,7 @@ fi # Firewall needs to be off if systemctl status firewalld.service > /dev/null 2>&1 ; then - if [ $CHECK_ONLY == 0 ]; then + if [ $FORCE_MODE == 1 ]; then # disable firewall or open required ports systemctl disable firewalld.service > /dev/null 2>&1 systemctl stop firewalld.service > /dev/null 2>&1 @@ -905,18 +907,9 @@ done # #################################################################################### -while getopts "nqhf:d:" opt; do +while getopts "c:d:fhnq" opt; do case $opt in - n) - CHECK_ONLY=1 - ;; - q) - QUIET=1 - ;; - h) - usage - ;; - f) + c) SAPCONFIG=$OPTARG [ ! -r $SAPCONFIG ] && error "File $SAPCONFIG does not exist" 2 . $SAPCONFIG @@ -924,6 +917,18 @@ while getopts "nqhf:d:" opt; do d) dbtyp=$OPTARG ;; + f) + FORCE_MODE=1 + ;; + h) + usage + ;; + n) + CHECK_ONLY=1 + ;; + q) + QUIET=1 + ;; *) usage ;; diff --git a/sapconf.man b/sapconf.man index 0d49cdf..57e50fd 100644 --- a/sapconf.man +++ b/sapconf.man @@ -4,7 +4,7 @@ .SH NAME sapconf \- prepares fresh installed RHEL for installation of SAP .SH SYNOPSIS -sapconf [-d ] [-n] [-q] +sapconf [-d ] [-f] [-n] [-q] .SH DESCRIPTION sapconf is a shell program for configuring/checking a Red Hat Enterprise Linux system according to the follwing SAP Notes: @@ -21,9 +21,10 @@ SE Linux status will only be checked. .SH OPTIONS - -n : CHECK_ONLY mode: check only, no modification will be made to the system + -d : used to set special parameters for Sybase and Oracle, respectively (i.e. sybase|syb|oracle|ora) + -f : FORCE mode: do actions which are not required, but makes your life easier (i.e. disable firewall) + -n : CHECK_ONLY mode: no modification will be made to the system -q : quiet execution. log file directory: /var/log/sap - -d : used to set special parameters for Sybase and Oracle, respectively (i.e. sybase|syb|oracle|ora|db2|ada) -h : help message .\.SH SEE ALSO -- 2.1.0