В ходе решения проблемы с OpenVZ заметили много неприятных моментов.
Скрипт установки .
1) Определение ОС и версии ОС.
Вот еще момент, относящийся к данной проблеме:
Это же относится и к следующей секции, которая выглядит, как черная магия:
Всё это можно решить гораздо красивее и проще:
Что касается IS_CENTOS73, здесь вообще ничего не понятно, поскольку единственное место, где используется данная переменная никогда не сработает, если у Вас Centos 7:
По сути тут условие else можно удалить и заменить чем-нибудь полезным.
2) Отсутствие ethtool в зависимостях или хотя бы наличие установки данного пакета в скрипте установки окружения, если же без него menu.sh не может корректно работать.
В случае отсутствия ethtool по-умолчанию на сервере получаем следующую ошибку:
Теперь по /opt/webdir/bin/bitrix_utils.sh
1) Определение ОС и её версии.
Первый пункт аналогичен первому пункту скрипта установки, разве, что код определения версии отличается:
2) Функция configure_iptables:
Здесь получается в целом неразбериха. Секция, которая срабатывает после условия else предназначается для openvz или она не должна в openvz сработать? Проблема в том, что секция else никогда не сработает для ОС Centos 7.
Если Вам требуется помощь в администрировании, то мы будем рады Вам помочь.
Скрипт установки .
1) Определение ОС и версии ОС.
| Код |
|---|
RELEASE_FILE=/etc/redhat-release
OS=$(awk '{print $1}' $RELEASE_FILE)
|
| Код |
|---|
IS_CENTOS7=$(grep -c 'CentOS Linux release' $RELEASE_FILE) IS_CENTOS73=$(grep -c "CentOS Linux release 7.3" $RELEASE_FILE) |
| Код |
|---|
if [[ $IS_CENTOS7 -gt 0 ]]; then
VER=$(awk '{print $4}' $RELEASE_FILE | awk -F'.' '{print $1}')
else
VER=$(awk '{print $3}' $RELEASE_FILE | awk -F'.' '{print $1}')
fi
|
Всё это можно решить гораздо красивее и проще:
| Код |
|---|
# bash test.sh centos 7 # cat test.sh source /etc/os-release echo $ID echo $VERSION_ID # |
| Код |
|---|
configure_nodejs(){
if [[ $IS_CENTOS7 -eq 0 ]]; then
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - >>$LOGS_FILE 2>&1
else
if [[ $IS_CENTOS73 -gt 0 ]]; then
rpm -ivh \
https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm \
>>$LOGS_FILE 2>&1
fi
fi
|
2) Отсутствие ethtool в зависимостях или хотя бы наличие установки данного пакета в скрипте установки окружения, если же без него menu.sh не может корректно работать.
В случае отсутствия ethtool по-умолчанию на сервере получаем следующую ошибку:
| Код |
|---|
/opt/webdir/bin/bitrix_utils.sh: line 644: ethtool: command not found |
Теперь по /opt/webdir/bin/bitrix_utils.sh
1) Определение ОС и её версии.
Первый пункт аналогичен первому пункту скрипта установки, разве, что код определения версии отличается:
| Код |
|---|
OS_TYPE=$(cat /etc/redhat-release | grep CentOS -c) OS_VERSION=$(cat /etc/redhat-release | \ sed -e "s/CentOS Linux release//;s/CentOS release // " | \ cut -d'.' -f1) |
2) Функция configure_iptables:
| Код |
|---|
configure_iptables(){
[[ -z $OS_VERSION ]] && get_os_type
if [[ $OS_VERSION -eq 7 ]]; then
if [[ $() -eq 0 ]]; then
# http://jabber.bx/view.php?id=89409
rpm -qi firewalld >/dev/null 2>&1
if [[ $? -gt 0 ]]; then
log_to_file "$BU0061"
yum -y install firewalld >/dev/null 2>&1
if [[ $? -gt 0 ]]; then
log_to_file "$BU2032"
return 2
fi
fi
systemctl enable firewalld
systemctl start firewalld
if [[ $? -gt 0 ]]; then
log_to_file "$BU2033"
return 2
fi
fi
public_firewalld
public_firewalld_rtn=$?
else
# openvz
iptables -L INPUT -n 1>/dev/null 2>&1
if [[ $? -gt 0 ]]; then
log_to_file "$BU2034"
return 2
fi
if [[ $IS_OPENVZ -gt 0 ]]; then
iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT 1>/dev/null 2>&1 && \
iptables -I INPUT -m tcp -p tcp --dport 443 -j ACCEPT 1>/dev/null 2>&1
if [[ $? -gt 0 ]]; then
log_to_file "$BU2035"
return 2
fi
else
iptables -I INPUT -m tcp -p tcp \
-m state --state NEW --dport 80 -j ACCEPT 1>/dev/null 2>&1 && \
iptables -I INPUT -m tcp -p tcp \
-m state --state NEW --dport 443 -j ACCEPT 1>/dev/null 2>&1
if [[ $? -gt 0 ]]; then
log_to_file "$BU2035"
return 2
fi
fi
log_to_file "$BU0062"
iptables-save > /etc/sysconfig/iptables
return 0
fi
}
|
Здесь получается в целом неразбериха. Секция, которая срабатывает после условия else предназначается для openvz или она не должна в openvz сработать? Проблема в том, что секция else никогда не сработает для ОС Centos 7.
Если Вам требуется помощь в администрировании, то мы будем рады Вам помочь.
. По порядку: