Skip to content

Instantly share code, notes, and snippets.

@ninejuan
Created December 6, 2025 20:45
Show Gist options
  • Select an option

  • Save ninejuan/307b00563f2d739b93043e752ce5d9b6 to your computer and use it in GitHub Desktop.

Select an option

Save ninejuan/307b00563f2d739b93043e752ce5d9b6 to your computer and use it in GitHub Desktop.
EQS 업무. 서버 Bootstrap 후 초기 설정 스크립트.
#!/usr/bin/env bash
set -euo pipefail
NEW_HOSTNAME="" # Jira에 있는 Hostname 양식 참고.
NEW_IPADDR="10.128.40.50/22"
NEW_GW="10.128.40.254"
NEW_DNS="8.8.8.8 1.1.1.1"
require_root() {
if [[ $EUID -ne 0 ]]; then
echo "ERR require root perm"
exit 1
fi
}
detect_connection() {
local con
con=$(nmcli -t -f NAME,DEVICE,STATE connection show --active \
| awk -F: '$3=="activated"{print $1; exit}')
if [[ -z "$con" ]]; then
echo "ERR no active network connection"
exit 1
fi
echo "$con"
}
set_hostname() {
echo "changing hostname to ${NEW_HOSTNAME}"
hostnamectl set-hostname "${NEW_HOSTNAME}"
}
set_static_ip() {
local con="$1"
echo "changing ip address to ${NEW_IPADDR}"
nmcli connection modify "${con}" ipv4.method manual
nmcli connection modify "${con}" ipv4.addresses "${NEW_IPADDR}"
nmcli connection modify "${con}" ipv4.gateway "${NEW_GW}"
nmcli connection modify "${con}" ipv4.dns "${NEW_DNS}"
echo "restarting network"
nmcli connection down "${con}" || true
nmcli connection up "${con}"
echo "applied"
nmcli -f GENERAL.DEVICE,GENERAL.CONNECTION,IP4.ADDRESS,IP4.GATEWAY device show \
| sed -n '1,80p'
}
main() {
require_root
local con
con="$(detect_connection)"
set_hostname
set_static_ip "${con}"
echo "completed"
hostnamectl status | sed -n '1,10p'
}
main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment