12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- set -e
- function usage() {
- echo -e "USAGE:
- $(basename $0) --help # 使用帮助
- $(basename $0) work # 联想工作机IP
- $(basename $0) pxe # pxe IP
- $(basename $0) dhcp # 自动分配"
- exit 1
- }
- # 判断参数个数
- if [ $# -eq 0 ]; then
- usage
- exit 1
- fi
- # 设置ip
- function set_ip() {
- IPADDR=$1
- GATEWAY=$2
- DNS1=$3
- DNS2=$4
- echo "IPADDR=${IPADDR}, GATEWAY=${GATEWAY}, DNS1=${DNS1}, DNS2=${DNS2}"
- sudo tee ${CONFIG_FILE} <<EOF
- # Let NetworkManager manage all devices on this system
- network:
- version: 2
- renderer: NetworkManager
- ethernets:
- ${IFACE_LAN}:
- dhcp4: false
- gateway4: ${GATEWAY}
- addresses: [${IPADDR}/24]
- nameservers:
- addresses: [${DNS1}, ${DNS2}]
- EOF
- }
- # 获取有线网卡(如:enp0s25,enp4s0),目前以 en开头作为判断条件,需要再找找更精准的方法,或者做成选择项
- IFACE_LAN=$(LANG=en ip link | awk -F '[ :]' '{print $3}' | grep "^en")
- echo "IFACE_LAN=${IFACE_LAN}"
- # 配置文件路径
- CONFIG_FILE=/etc/netplan/01-network-manager-all.yaml
- if [ ! -f ${CONFIG_FILE}.bak ]; then
- sudo cp -v ${CONFIG_FILE}{,.bak}
- fi
- if [ "$1" == "work" ]; then
- IPADDR=172.29.157.20
- GATEWAY=172.29.221.254
- DNS1=114.114.114.114
- DNS2=172.20.191.2
- set_ip ${IPADDR} ${GATEWAY} ${DNS1} ${DNS2}
- elif [ "$1" == "pxe" ]; then
- IPADDR=10.0.0.10
- GATEWAY=10.0.0.1
- DNS1=10.0.0.10
- DNS2=114.114.114.114
- set_ip ${IPADDR} ${GATEWAY} ${DNS1} ${DNS2}
- elif [ "$1" == "dhcp" ]; then
- sudo tee ${CONFIG_FILE} <<EOF
- # Let NetworkManager manage all devices on this system
- network:
- version: 2
- renderer: NetworkManager
- ethernets:
- ${IFACE_LAN}:
- dhcp4: true
- EOF
- fi
- # sudo netplan --debug apply
- sudo netplan apply
|