diff --git a/CHANGELOG b/CHANGELOG index c3ec3fd..0e93511 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [HOSTNAME] Set hostname in the new .env files if present ### Removed - [SSHD] Remove custom Addendum from Version Headers +- [VULTURE_SUDOERS] Allow dhcp and rtsol +- [ADMIN] Allow hostname in management_ip ## [2.1.13] - 2025-02-25 diff --git a/home/vlt-adm/admin.sh b/home/vlt-adm/admin.sh index 4658617..66893de 100755 --- a/home/vlt-adm/admin.sh +++ b/home/vlt-adm/admin.sh @@ -104,9 +104,9 @@ do /bin/rm "$tmp_file" - if ! (echo "$management_ip" | grep -Eq '(^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$)|(^([[:xdigit:]]{0,4}:){2,7}[[:xdigit:]]{0,4}$)'); then - /usr/bin/dialog --msgbox "Management IP format incorrect" 8 60 - elif ! (echo "$internet_ip" | grep -Eq '(^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$)|(^([[:xdigit:]]{0,4}:){2,7}[[:xdigit:]]{0,4}$)'); then + # if ! (echo "$management_ip" | grep -Eq '(^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$)|(^([[:xdigit:]]{0,4}:){2,7}[[:xdigit:]]{0,4}$)'); then + # /usr/bin/dialog --msgbox "Management IP format incorrect" 8 60 + if ! (echo "$internet_ip" | grep -Eq '(^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$)|(^([[:xdigit:]]{0,4}:){2,7}[[:xdigit:]]{0,4}$)'); then /usr/bin/dialog --msgbox "Internet IP format incorrect" 8 60 elif ! (echo "$backends_outgoing_ip" | grep -Eq '(^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$)|(^([[:xdigit:]]{0,4}:){2,7}[[:xdigit:]]{0,4}$)'); then /usr/bin/dialog --msgbox "Backends Outgoing IP format incorrect" 8 60 diff --git a/home/vlt-adm/gui/cluster_join.sh b/home/vlt-adm/gui/cluster_join.sh index 13de0d7..39e6b7c 100644 --- a/home/vlt-adm/gui/cluster_join.sh +++ b/home/vlt-adm/gui/cluster_join.sh @@ -24,7 +24,11 @@ if [ -z "${api_key}" ]; then read api_key fi -/home/vlt-os/scripts/add_to_hosts.py "$master_hostname" "$master_ip" +case $(echo "$master_ip" | cut -c1) in + [0-9]) /home/vlt-os/scripts/add_to_hosts.py "$master_hostname" "$master_ip" ;; + [a-zA-Z]) echo "Master IP is a hostname, no need to add to /etc/hosts" ;; + *) echo "Error: Master IP is not valid."; exit 1 ;; +esac /usr/sbin/jexec redis service redis restart /usr/sbin/jexec apache service gunicorn stop diff --git a/home/vlt-adm/system/network-ips.sh b/home/vlt-adm/system/network-ips.sh index 17dac91..720c760 100644 --- a/home/vlt-adm/system/network-ips.sh +++ b/home/vlt-adm/system/network-ips.sh @@ -34,7 +34,7 @@ if /sbin/ifconfig | grep -q "$management_ip"; then # The Node has been removed of the replicaset, restart mongodb to re-initiate /usr/sbin/jexec mongodb service mongod restart - # If boostrap has already be done, + # If bootstrap has already be done, if /usr/local/bin/sudo -u vlt-os /home/vlt-os/env/bin/python /home/vlt-os/vulture_os/manage.py is_node_bootstrapped >/dev/null 2>&1 ; then # Update node network ips in Mongo /usr/local/bin/sudo -u vlt-os /home/vlt-os/env/bin/python /home/vlt-os/vulture_os/manage.py shell -c "from system.cluster.models import Node ; n = Node.objects.get(name=\"`hostname`\") ; n.management_ip = \"$management_ip\" ; n.internet_ip = \"$internet_ip\" ; n.backends_outgoing_ip = \"$backends_outgoing_ip\" ; n.logom_outgoing_ip = \"$logom_outgoing_ip\" ; n.save()" diff --git a/usr/local/etc/sudoers.d/vulture_sudoers b/usr/local/etc/sudoers.d/vulture_sudoers index 8056b3d..3422f7d 100644 --- a/usr/local/etc/sudoers.d/vulture_sudoers +++ b/usr/local/etc/sudoers.d/vulture_sudoers @@ -72,6 +72,10 @@ vlt-os ALL=NOPASSWD:/usr/sbin/service darwin onestatus vlt-os ALL=NOPASSWD:/usr/sbin/service darwin start vlt-os ALL=NOPASSWD:/usr/sbin/service darwin restart +vlt-os ALL=NOPASSWD:/usr/sbin/service ^dhclient stop( [A-Za-z0-9_]*)+$ +vlt-os ALL=NOPASSWD:/usr/sbin/service ^dhclient restart( [A-Za-z0-9_]*)+$ +vlt-os ALL=NOPASSWD:/sbin/rtsol ^([A-Za-z0-9_]*)+$ + vlt-os ALL=NOPASSWD:/sbin/ifconfig vlt-os ALL=NOPASSWD:/home/vlt-os/scripts/get_dhcp_address.sh vlt-os ALL=NOPASSWD:/home/vlt-os/scripts/write_cert.sh