You've already forked ansible-role-common
Add static/dhcp ip helpers for NetworkManager
This commit is contained in:
8
files/helpers/set_dhcp_ip.sh
Normal file
8
files/helpers/set_dhcp_ip.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script will reset the IP Address back to default of DHCP
|
||||||
|
# helpful for a pending restore
|
||||||
|
|
||||||
|
/bin/nmcli c m "System eth0" ipv4.method auto
|
||||||
|
/bin/nmcli c m "System eth0" ipv4.address "" ipv4.gateway ""
|
||||||
|
/bin/nmcli connection up "System eth0"
|
||||||
48
files/helpers/set_static_ip.sh
Normal file
48
files/helpers/set_static_ip.sh
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# get subnet
|
||||||
|
subnet=$(ip a | grep "inet " | tail -1 | awk '{print $2}')
|
||||||
|
|
||||||
|
# get router/gateway
|
||||||
|
router=$(ip route show | head -1 | awk '{print $3}')
|
||||||
|
|
||||||
|
# get size of network portion of address in bytes
|
||||||
|
sz=$(echo $subnet | awk -F / '{print $2}')
|
||||||
|
bytes=$(("$sz" / 8))
|
||||||
|
prefix=$(echo "$subnet" | cut -d. -f1-$bytes) # e.g., 192.168.0
|
||||||
|
|
||||||
|
# get IP address to be set
|
||||||
|
IP=$(hostname -I | awk '{print $1}') # current IP
|
||||||
|
echo -n "Keep IP address?—$IP [yn]> "
|
||||||
|
read -r ans
|
||||||
|
if [ "$ans" == "n" ]; then
|
||||||
|
echo -n "Enter new IP address: "
|
||||||
|
read -r IP
|
||||||
|
# check if specified IP is properly formatted
|
||||||
|
if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||||
|
echo Invalid IP
|
||||||
|
fi
|
||||||
|
# check if specified IP works for local network
|
||||||
|
if [[ ! $IP =~ ^$prefix ]]; then
|
||||||
|
echo "ERROR: Specified IP not usable for local network"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if specified IP is properly formatted
|
||||||
|
if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||||
|
echo Invalid IP
|
||||||
|
fi
|
||||||
|
|
||||||
|
# fetch the UUID
|
||||||
|
UUID=$(nmcli connection show | tail -1 | awk '{print $4}')
|
||||||
|
if [[ "$UUID" == "ethernet" ]]; then
|
||||||
|
# This is the other format of nmcli connection show
|
||||||
|
UUID=$(nmcli connection show | head -2 | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# run commands to set up the permanent IP address
|
||||||
|
nmcli connection modify "$UUID" IPv4.address "$IP"/"$sz"
|
||||||
|
nmcli connection modify "$UUID" IPv4.gateway "$router"
|
||||||
|
nmcli connection modify "$UUID" IPv4.method manual
|
||||||
|
nmcli connection up "$UUID"
|
||||||
Reference in New Issue
Block a user