| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/bin/bash
- # info: update system ip
- # options: [USER] [IP_STATUS]
- #
- # The function scans configured ip in the system and register them with vesta
- # internal database. This call is intended for use on vps servers, where ip is
- # set by hypervizor.
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Argument defenition
- user=${1-admin}
- ip_status=${2-shared}
- # Includes
- source /etc/profile.d/vesta.sh
- source $VESTA/func/main.sh
- source $VESTA/conf/vesta.conf
- #----------------------------------------------------------#
- # Verifications #
- #----------------------------------------------------------#
- check_args '0' "$#" '[USER] [IP_STATUS]'
- validate_format 'user' 'ip_status'
- is_object_valid 'user' 'USER' "$user" "$user"
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- # Get list of ip addresses
- ip_list=$(/sbin/ifconfig | grep 'inet addr:' | cut -f 2 -d : | \
- cut -f 1 -d ' '| grep -v 127.0.0.1 | grep -v '0.0.0.')
- ip_num=$(echo "$ip_list" | wc -l)
- # WorkAround for Amazon stop/start issue
- vst_ip_list=$(ls $VESTA/data/ips/)
- vst_ip_num=$(echo "$vst_ip_list" | wc -l)
- if [ ! -z "$vst_ip_list" ] && [ "$vst_ip_num" -eq '1' ]; then
- if [ $ip_num -eq 1 ] && [ "$ip_list" != "$vst_ip_list" ]; then
- new=$ip_list
- old=$vst_ip_list
- mv $VESTA/data/ips/$old $VESTA/data/ips/$new
- if [ ! -z "$PROXY_SYSTEM" ]; then
- mv /etc/$PROXY_SYSTEM/conf.d/$old.conf \
- /etc/$PROXY_SYSTEM/conf.d/$new.conf
- sed -i "s/$old/$new/g" /etc/$PROXY_SYSTEM/conf.d/$new.conf
- $BIN/v-restart-proxy
- if [ $? -ne 0 ]; then
- exit E_RESTART
- fi
- fi
- if [ ! -z "$WEB_SYSTEM" ]; then
- mv /etc/$WEB_SYSTEM/conf.d/$old.conf \
- /etc/$WEB_SYSTEM/conf.d/$new.conf
- sed -i "s/$old/$new/g" /etc/$WEB_SYSTEM/conf.d/$new.conf
- sed -i "s/$old/$new/g" $VESTA/data/users/*/web.conf
- # Rebuild web domains
- for user in $(ls $VESTA/data/users/); do
- $BIN/v-rebuild-web-domains $user no
- done
- $BIN/v-restart-web
- if [ $? -ne 0 ]; then
- exit E_RESTART
- fi
- fi
- if [ ! -z "$DNS_SYSTEM" ]; then
- # Rebuild dns domains
- for user in $(ls $VESTA/data/users/); do
- sed -i "s/$old/$new/g" $VESTA/data/users/$user/dns.conf
- sed -i "s/$old/$new/g" $VESTA/data/users/$user/dns/*.conf
- $BIN/v-rebuild-dns-domains $user no
- done
- $BIN/v-restart-dns
- if [ $? -ne 0 ]; then
- exit E_RESTART
- fi
- fi
- # No further comparation is needed
- exit
- fi
- fi
- # Compare ips
- for ip in $ip_list; do
- if [ ! -e "$VESTA/data/ips/$ip" ]; then
- iface=$(/sbin/ifconfig |grep -B1 -w $ip |head -n1 |cut -f1 -d ' ')
- interface=$(echo "$iface" | cut -f 1 -d :)
- mask=$(/sbin/ifconfig |grep -w $ip |awk -F "Mask:" '{print $2}')
- $BIN/v-add-sys-ip $ip $mask $interface
- fi
- done
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- exit
|