19 Eylül 2024 Perşembe

Birden fazla ip kullanılan sunucuda çıkış ip adresini değiştirmek

 Bu işlem için bir servis yazıyoruz.

/etc/systemd/system/set-route.service 

--------------------------------------------------------

# cat /etc/systemd/system/set-route.service
[Unit]
Description=Set Default Route with IP 10.62.150.120
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/set-default-route.sh start
ExecStop=/usr/local/sbin/set-default-route.sh stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

--------------------------------------------------------------



# cat /usr/local/sbin/set-default-route.sh

----------------------------------------------------------------------------------------------------------------------------------


#!/bin/bash

# Rota ile ilgili değişkenler
ROUTE_IP="192.168.234.254"
SRC_IP="192.168.234.123"
INTERFACE="eno13"

start_route() {
    # Rota olup olmadığını daha güvenilir bir şekilde kontrol et
    EXISTING_ROUTE=$(ip route show default | grep "via $ROUTE_IP dev $INTERFACE src $SRC_IP")

    if [ -n "$EXISTING_ROUTE" ]; then
        echo "Rota zaten eklenmiş: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        exit 0
    else
        echo "Rota ekleniyor: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        ip route add default via $ROUTE_IP src $SRC_IP dev $INTERFACE
        if [ $? -eq 0 ]; then
            echo "Rota başarıyla eklendi."
            exit 0
        else
            echo "Rota eklenirken bir hata oluştu."
            exit 1
        fi
    fi
}

stop_route() {
    # Rota var mı kontrol et
    EXISTING_ROUTE=$(ip route show default | grep "via $ROUTE_IP dev $INTERFACE src $SRC_IP")

    if [ -n "$EXISTING_ROUTE" ]; then
        echo "Rota kaldırılıyor: default via $ROUTE_IP src $SRC_IP dev $INTERFACE"
        ip route del default via $ROUTE_IP src $SRC_IP dev $INTERFACE
        if [ $? -eq 0 ]; then
            echo "Rota başarıyla kaldırıldı."
            exit 0
        else
            echo "Rota kaldırılırken bir hata oluştu."
            exit 1
        fi
    else
        echo "Rota zaten yok."
        exit 0
    fi
}

# Betiğin hangi parametreyle çağrıldığını kontrol et
case "$1" in
    start)
        start_route
        ;;
    stop)
        stop_route
        ;;
    *)
        echo "Kullanım: $0 {start|stop}"
        exit 1
        ;;
esac

----------------------------------------------------------------------------------------------------------------------------------



Hiç yorum yok:

Yorum Gönder

ansible ile yerel quay sunucusu üzerinden execution environment kullanımı

 Yerel quay veya registry sunucularımızdaki ee leri ansible ile kullanabiliyoruz. Bunun için kendi yaptığımız ee leri veya hazır ee leri yük...