Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
centos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
platyhouse
centos
Commits
5eb66179
Commit
5eb66179
authored
Oct 15, 2025
by
platyhouse
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refs pty_setup_centos.sh
parent
51be0c11
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
404 additions
and
143 deletions
+404
-143
pty_setup_centos.sh
pty_setup_centos.sh
+404
-143
No files found.
pty_setup_centos.sh
View file @
5eb66179
...
@@ -20,73 +20,105 @@ NC='\033[0m' # No Color
...
@@ -20,73 +20,105 @@ NC='\033[0m' # No Color
clear
clear
echo
-e
"
${
CYAN
}
"
echo
-e
"
${
CYAN
}
"
cat
<<
"EOF"
cat
<<
"EOF"
____ __ ___ __________ __ __ ____ __ _______ ______
/ __
\/
/ / |/_ __/
\ \
/ / / / / / __
\/
/ / / ___/ / ____/
░█▀█░█░░░█▀█░▀█▀░█░█░░░█░█░█▀█░█░█░█▀▀░█▀▀
/ /_/ / / / /| | / /
\
V / / /_/ / / / / / / /
\_
_
\
/ __/
░█▀▀░█░░░█▀█░░█░░░█░░░░█▀█░█░█░█░█░▀▀█░█▀▀
/ ____/ /___/ ___ |/ / | / / __ / / /_/ / /_/ /___/ / /___
░▀░░░▀▀▀░▀░▀░░▀░░░▀░░░░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀
/_/ /_____/_/ |_/_/ |_/_/ /_/
\_
___/
\_
___//____/ /_____/
EOF
EOF
echo
-e
"
${
NC
}
"
echo
-e
"
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
BLUE
}
CentOS 초기 설정 자동화 스크립트 v1.0
${
NC
}
"
echo
""
echo
-e
"
${
BLUE
}
CentOS 설정 스크립트 v1.0 (pty_setup_centos.sh)
${
NC
}
"
echo
""
echo
-e
"
${
BLUE
}
Copyright (C) 2019 by cpueblo@platyhouse.com, PlatyHouse Co.,LTD.
${
NC
}
"
echo
-e
"
${
BLUE
}
Visit https://www.platyhouse.com
${
NC
}
"
echo
""
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
""
echo
""
# 메뉴 출력 함수
show_menu
()
{
#echo -e "${PURPLE}═══════════════════════════════════════════════════════════${NC}"
#echo -e "${BLUE} 설치할 항목을 선택하세요${NC}"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
""
echo
-e
"
${
CYAN
}
0.
${
NC
}
전체 설치"
echo
-e
"
${
CYAN
}
1.
${
NC
}
호스트명 설정"
echo
-e
"
${
CYAN
}
2.
${
NC
}
네트워크 IP 설정"
echo
-e
"
${
CYAN
}
3.
${
NC
}
/etc/bashrc 설정"
echo
-e
"
${
CYAN
}
4.
${
NC
}
YUM 캐시 정리"
echo
-e
"
${
CYAN
}
5.
${
NC
}
시스템 패키지 업데이트"
echo
-e
"
${
CYAN
}
6.
${
NC
}
Python 설치"
echo
-e
"
${
CYAN
}
7.
${
NC
}
Node.js 및 Claude & Gemini CLI 설치"
echo
-e
"
${
CYAN
}
8.
${
NC
}
필수 패키지 설치"
echo
-e
"
${
CYAN
}
9.
${
NC
}
시간대를 서울로 설정"
echo
-e
"
${
CYAN
}
10.
${
NC
}
시간 서버를 time.bora.net으로 설정"
echo
-e
"
${
CYAN
}
11.
${
NC
}
SELinux ON/OFF"
echo
-e
"
${
CYAN
}
q.
${
NC
}
종료"
echo
""
echo
-e
"
${
YELLOW
}
선택 (예: 0,1,3 또는 0):
${
NC
}
\c
"
}
#######################################
#######################################
# 1. 호스트명 설정
# 1. 호스트명 설정
#######################################
#######################################
CURRENT_HOSTNAME
=
$(
hostnamectl
--static
)
setup_hostname
()
{
echo
-e
"
${
CYAN
}
[1/5]
${
NC
}
호스트명 설정, 현재 호스트명:
${
YELLOW
}${
CURRENT_HOSTNAME
}${
NC
}
"
CURRENT_HOSTNAME
=
$(
hostnamectl
--static
)
echo
-e
"
${
YELLOW
}
호스트명을 변경하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[1/11]
${
NC
}
호스트명 설정, 현재 호스트명:
${
YELLOW
}${
CURRENT_HOSTNAME
}${
NC
}
"
read
-n
1
-r
REPLY_HOSTNAME
echo
-e
"
${
YELLOW
}
호스트명을 변경하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_HOSTNAME
if
[[
$REPLY_HOSTNAME
=
~ ^[Yy]
$
]]
;
then
echo
echo
-e
"
${
YELLOW
}
설정할 호스트명을 입력하세요:
${
NC
}
\c
"
if
[[
$REPLY_HOSTNAME
=
~ ^[Yy]
$
]]
;
then
read
HOSTNAME
echo
-e
"
${
YELLOW
}
설정할 호스트명을 입력하세요:
${
NC
}
\c
"
if
[
-n
"
$HOSTNAME
"
]
;
then
read
HOSTNAME
hostnamectl set-hostname
"
$HOSTNAME
"
if
[
-n
"
$HOSTNAME
"
]
;
then
echo
-e
"
${
GREEN
}
✓
${
NC
}
호스트명이 설정되었습니다:
${
YELLOW
}
$(
hostnamectl
--static
)
${
NC
}
"
hostnamectl set-hostname
"
$HOSTNAME
"
echo
-e
"
${
GREEN
}
✓
${
NC
}
호스트명이 설정되었습니다:
${
YELLOW
}
$(
hostnamectl
--static
)
${
NC
}
"
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
호스트명이 입력되지 않아 건너뜁니다."
fi
else
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
호스트명
이 입력되지 않아
건너뜁니다."
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
호스트명
설정을
건너뜁니다."
fi
fi
fi
echo
""
echo
""
}
#######################################
#######################################
# 2. 네트워크 IP 설정
# 2. 네트워크 IP 설정
#######################################
#######################################
echo
-e
"
${
CYAN
}
[2/8]
${
NC
}
네트워크 IP 설정"
setup_network
()
{
echo
-e
"
${
YELLOW
}
네트워크 IP를 설정하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[2/11]
${
NC
}
네트워크 IP 설정"
read
-n
1
-r
REPLY_IP
echo
-e
"
${
YELLOW
}
네트워크 IP를 설정하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_IP
if
[[
$REPLY_IP
=
~ ^[Yy]
$
]]
;
then
echo
# 네트워크 인터페이스 목록 표시
if
[[
$REPLY_IP
=
~ ^[Yy]
$
]]
;
then
echo
-e
"
${
BLUE
}
사용 가능한 네트워크 인터페이스:
${
NC
}
"
# 네트워크 인터페이스 목록 표시
ip
-br
link
show |
grep
-v
"lo"
|
awk
'{print " - "$1}'
echo
-e
"
${
BLUE
}
사용 가능한 네트워크 인터페이스:
${
NC
}
"
echo
""
ip
-br
link
show |
grep
-v
"lo"
|
awk
'{print " - "$1}'
echo
""
echo
-e
"
${
YELLOW
}
네트워크 인터페이스 이름 (예: eth0, ens33):
${
NC
}
\c
"
read
IFACE
echo
-e
"
${
YELLOW
}
네트워크 인터페이스 이름 (예: eth0, ens33):
${
NC
}
\c
"
echo
-e
"
${
YELLOW
}
IP 주소 (예: 192.168.1.100):
${
NC
}
\c
"
read
IFACE
read
IPADDR
echo
-e
"
${
YELLOW
}
IP 주소 (예: 192.168.1.100):
${
NC
}
\c
"
echo
-e
"
${
YELLOW
}
서브넷 마스크 (예: 255.255.255.0):
${
NC
}
\c
"
read
IPADDR
read
NETMASK
echo
-e
"
${
YELLOW
}
서브넷 마스크 (예: 255.255.255.0):
${
NC
}
\c
"
echo
-e
"
${
YELLOW
}
게이트웨이 (예: 192.168.1.1):
${
NC
}
\c
"
read
NETMASK
read
GATEWAY
echo
-e
"
${
YELLOW
}
게이트웨이 (예: 192.168.1.1):
${
NC
}
\c
"
echo
-e
"
${
YELLOW
}
DNS 서버 (예: 8.8.8.8):
${
NC
}
\c
"
read
GATEWAY
read
DNS
echo
-e
"
${
YELLOW
}
DNS 서버 (예: 8.8.8.8):
${
NC
}
\c
"
read
DNS
if
[
-n
"
$IFACE
"
]
&&
[
-n
"
$IPADDR
"
]
&&
[
-n
"
$NETMASK
"
]
&&
[
-n
"
$GATEWAY
"
]
&&
[
-n
"
$DNS
"
]
;
then
# 네트워크 스크립트 파일 생성
if
[
-n
"
$IFACE
"
]
&&
[
-n
"
$IPADDR
"
]
&&
[
-n
"
$NETMASK
"
]
&&
[
-n
"
$GATEWAY
"
]
&&
[
-n
"
$DNS
"
]
;
then
IFCFG_FILE
=
"/etc/sysconfig/network-scripts/ifcfg-
${
IFACE
}
"
# 네트워크 스크립트 파일 생성
IFCFG_FILE
=
"/etc/sysconfig/network-scripts/ifcfg-
${
IFACE
}
"
# 백업 생성 (파일이 존재하는 경우)
if
[
-f
"
$IFCFG_FILE
"
]
;
then
# 백업 생성 (파일이 존재하는 경우)
cp
"
$IFCFG_FILE
"
"
${
IFCFG_FILE
}
.backup.
$(
date
+%Y%m%d_%H%M%S
)
"
if
[
-f
"
$IFCFG_FILE
"
]
;
then
fi
cp
"
$IFCFG_FILE
"
"
${
IFCFG_FILE
}
.backup.
$(
date
+%Y%m%d_%H%M%S
)
"
fi
# 네트워크 설정 파일 작성
cat
>
"
$IFCFG_FILE
"
<<
EOF
# 네트워크 설정 파일 작성
cat
>
"
$IFCFG_FILE
"
<<
EOF
TYPE=Ethernet
TYPE=Ethernet
BOOTPROTO=static
BOOTPROTO=static
NAME=
${
IFACE
}
NAME=
${
IFACE
}
...
@@ -98,37 +130,41 @@ GATEWAY=${GATEWAY}
...
@@ -98,37 +130,41 @@ GATEWAY=${GATEWAY}
DNS1=
${
DNS
}
DNS1=
${
DNS
}
EOF
EOF
# 네트워크 재시작
# 네트워크 재시작
echo
-e
"
${
BLUE
}
→
${
NC
}
네트워크 재시작 중..."
echo
-e
"
${
BLUE
}
→
${
NC
}
네트워크 재시작 중..."
systemctl restart NetworkManager
>
/dev/null 2>&1
systemctl restart NetworkManager
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
네트워크 설정이 완료되었습니다."
echo
-e
"
${
GREEN
}
✓
${
NC
}
네트워크 설정이 완료되었습니다."
echo
-e
" IP:
${
YELLOW
}${
IPADDR
}${
NC
}
"
echo
-e
" IP:
${
YELLOW
}${
IPADDR
}${
NC
}
"
echo
-e
" Netmask:
${
YELLOW
}${
NETMASK
}${
NC
}
"
echo
-e
" Netmask:
${
YELLOW
}${
NETMASK
}${
NC
}
"
echo
-e
" Gateway:
${
YELLOW
}${
GATEWAY
}${
NC
}
"
echo
-e
" Gateway:
${
YELLOW
}${
GATEWAY
}${
NC
}
"
echo
-e
" DNS:
${
YELLOW
}${
DNS
}${
NC
}
"
echo
-e
" DNS:
${
YELLOW
}${
DNS
}${
NC
}
"
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
필수 정보가 입력되지 않아 건너뜁니다."
fi
else
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
필수 정보가 입력되지 않아
건너뜁니다."
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
네트워크 IP 설정을
건너뜁니다."
fi
fi
fi
echo
""
echo
""
}
#######################################
#######################################
# 3. /etc/bashrc 설정
# 3. /etc/bashrc 설정
#######################################
#######################################
echo
-e
"
${
CYAN
}
[3/8]
${
NC
}
/etc/bashrc 설정 추가"
setup_bashrc
()
{
echo
-e
"
${
YELLOW
}
/etc/bashrc에 커스텀 설정을 추가하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[3/11]
${
NC
}
/etc/bashrc 설정 추가"
read
-n
1
-r
REPLY_BASHRC
echo
-e
"
${
YELLOW
}
/etc/bashrc에 커스텀 설정을 추가하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_BASHRC
if
[[
$REPLY_BASHRC
=
~ ^[Yy]
$
]]
;
then
echo
# 백업 생성
if
[[
$REPLY_BASHRC
=
~ ^[Yy]
$
]]
;
then
cp
/etc/bashrc /etc/bashrc.backup.
$(
date
+%Y%m%d_%H%M%S
)
# 백업 생성
cp
/etc/bashrc /etc/bashrc.backup.
$(
date
+%Y%m%d_%H%M%S
)
# bashrc에 추가할 내용
# bashrc에 추가할 내용
cat
>>
/etc/bashrc
<<
'
EOF
'
cat
>>
/etc/bashrc
<<
'
EOF
'
#######################################
#######################################
#
커스텀 설정
#
pty_setup_centos.sh 에 의한 /etc/bashrc 추가 시작
#######################################
#######################################
# 프롬프트 색상 설정
# 프롬프트 색상 설정
...
@@ -180,107 +216,332 @@ git config --global color.status.header "#ffffff normal bold"
...
@@ -180,107 +216,332 @@ git config --global color.status.header "#ffffff normal bold"
git config --global user.name "KwangHee Yoo"
git config --global user.name "KwangHee Yoo"
git config --global user.email "cpueblo@platyhouse.com"
git config --global user.email "cpueblo@platyhouse.com"
## git 인증 정보 저장
git config credential.helper store
# . 명령.sh 실행을 위함
# . 명령.sh 실행을 위함
PATH=
$PATH
:.
PATH=
$PATH
:.
# pty_centos.git 의 실행을 위함
PATH=
$PATH
:/var/lib/pty_centos.git
#######################################
EOF
EOF
echo
-e
"
${
GREEN
}
✓
${
NC
}
/etc/bashrc 설정이 완료되었습니다."
echo
-e
"
${
GREEN
}
✓
${
NC
}
/etc/bashrc 설정이 완료되었습니다."
fi
else
echo
""
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
/etc/bashrc 설정을 건너뜁니다."
fi
echo
""
}
#######################################
#######################################
# 4. YUM 캐시 정리
# 4. YUM 캐시 정리
#######################################
#######################################
echo
-e
"
${
CYAN
}
[4/8]
${
NC
}
YUM 캐시 정리"
setup_yum_clean
()
{
echo
-e
"
${
YELLOW
}
YUM 캐시를 정리하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[4/11]
${
NC
}
YUM 캐시 정리"
read
-n
1
-r
REPLY_YUM_CLEAN
echo
-e
"
${
YELLOW
}
YUM 캐시를 정리하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_YUM_CLEAN
if
[[
$REPLY_YUM_CLEAN
=
~ ^[Yy]
$
]]
;
then
echo
yum clean all
>
/dev/null 2>&1
if
[[
$REPLY_YUM_CLEAN
=
~ ^[Yy]
$
]]
;
then
rm
-rf
/var/cache/yum
yum clean all
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
YUM 캐시가 정리되었습니다."
rm
-rf
/var/cache/yum
fi
echo
-e
"
${
GREEN
}
✓
${
NC
}
YUM 캐시가 정리되었습니다."
echo
""
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
YUM 캐시 정리를 건너뜁니다."
fi
echo
""
}
#######################################
#######################################
# 5. 시스템 업데이트
# 5. 시스템 업데이트
#######################################
#######################################
echo
-e
"
${
CYAN
}
[5/8]
${
NC
}
시스템 패키지 업데이트"
setup_system_update
()
{
echo
-e
"
${
YELLOW
}
시스템 업데이트를 진행하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[5/11]
${
NC
}
시스템 패키지 업데이트"
read
-n
1
-r
REPLY_UPDATE
echo
-e
"
${
YELLOW
}
시스템 업데이트를 진행하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_UPDATE
if
[[
$REPLY_UPDATE
=
~ ^[Yy]
$
]]
;
then
echo
yum update
-y
if
[[
$REPLY_UPDATE
=
~ ^[Yy]
$
]]
;
then
echo
-e
"
${
GREEN
}
✓
${
NC
}
시스템 업데이트가 완료되었습니다."
yum update
-y
fi
echo
-e
"
${
GREEN
}
✓
${
NC
}
시스템 업데이트가 완료되었습니다."
echo
""
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
시스템 업데이트를 건너뜁니다."
fi
echo
""
}
#######################################
#######################################
# 6. Python 설치
# 6. Python 설치
#######################################
#######################################
echo
-e
"
${
CYAN
}
[6/8]
${
NC
}
Python 설치"
setup_python
()
{
echo
-e
"
${
YELLOW
}
Python을 설치하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[6/11]
${
NC
}
Python 설치"
read
-n
1
-r
REPLY_PYTHON
echo
-e
"
${
YELLOW
}
Python을 설치하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_PYTHON
if
[[
$REPLY_PYTHON
=
~ ^[Yy]
$
]]
;
then
echo
echo
-e
"
${
BLUE
}
→
${
NC
}
Python 설치 중..."
if
[[
$REPLY_PYTHON
=
~ ^[Yy]
$
]]
;
then
yum
install
-y
python3 python3-pip
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
Python 설치 중..."
echo
-e
"
${
GREEN
}
✓
${
NC
}
Python 설치 완료:
$(
python3
--version
)
"
yum
install
-y
python3 python3-pip
>
/dev/null 2>&1
fi
echo
-e
"
${
GREEN
}
✓
${
NC
}
Python 설치 완료:
$(
python3
--version
)
"
echo
""
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
Python 설치를 건너뜁니다."
fi
echo
""
}
#######################################
#######################################
# 7. Node.js 및 Claude 설치
# 7. Node.js 및 Claude 설치
#######################################
#######################################
echo
-e
"
${
CYAN
}
[7/8]
${
NC
}
Node.js 및 Claude & Gemini Cli 설치"
setup_nodejs_claude
()
{
echo
-e
"
${
YELLOW
}
Node.js와 Claude, Gemini Cli 를 설치하시겠습니까? (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[7/11]
${
NC
}
Node.js 및 Claude & Gemini CLI 설치"
read
-n
1
-r
REPLY_CLAUDE
echo
-e
"
${
YELLOW
}
Node.js와 Claude, Gemini CLI를 설치하시겠습니까? (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_CLAUDE
if
[[
$REPLY_CLAUDE
=
~ ^[Yy]
$
]]
;
then
echo
# Node.js 설치
if
[[
$REPLY_CLAUDE
=
~ ^[Yy]
$
]]
;
then
echo
-e
"
${
BLUE
}
→
${
NC
}
Node.js 설치 중..."
# Node.js 설치
curl
-fsSL
https://rpm.nodesource.com/setup_lts.x | bash -
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
Node.js 설치 중..."
yum
install
-y
nodejs
>
/dev/null 2>&1
curl
-fsSL
https://rpm.nodesource.com/setup_lts.x | bash -
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
Node.js 설치 완료:
$(
node
--version
)
"
yum
install
-y
nodejs
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
Node.js 설치 완료:
$(
node
--version
)
"
# Claude 설치
echo
-e
"
${
BLUE
}
→
${
NC
}
Claude 설치 중..."
# Claude 설치
npm
install
-g
@anthropic-ai/claude-code
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
Claude 설치 중..."
echo
-e
"
${
GREEN
}
✓
${
NC
}
Claude 설치가 완료되었습니다."
npm
install
-g
@anthropic-ai/claude-code
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
Claude 설치가 완료되었습니다."
# Gemini CLI 설치
echo
-e
"
${
BLUE
}
→
${
NC
}
Gemini CLI 설치 중..."
# Gemini CLI 설치
npm
install
-g
@google/gemini-cli
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
Gemini CLI 설치 중..."
echo
-e
"
${
GREEN
}
✓
${
NC
}
Gemini CLI 설치가 완료되었습니다."
npm
install
-g
@google/gemini-cli
>
/dev/null 2>&1
fi
echo
-e
"
${
GREEN
}
✓
${
NC
}
Gemini CLI 설치가 완료되었습니다."
echo
""
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
Node.js 및 CLI 설치를 건너뜁니다."
fi
echo
""
}
#######################################
#######################################
# 8. 필수 패키지 설치
# 8. 필수 패키지 설치
#######################################
#######################################
echo
-e
"
${
CYAN
}
[8/8]
${
NC
}
필수 패키지 설치"
setup_packages
()
{
echo
-e
"
${
YELLOW
}
필수 패키지를 설치하시겠습니까? (vim, wget, curl, net-tools 등) (N/y):
${
NC
}
\c
"
echo
-e
"
${
CYAN
}
[8/11]
${
NC
}
필수 패키지 설치"
read
-n
1
-r
REPLY_PACKAGES
echo
-e
"
${
YELLOW
}
필수 패키지를 설치하시겠습니까? (vim, wget, curl, net-tools 등) (y/N):
${
NC
}
\c
"
echo
read
-n
1
-r
REPLY_PACKAGES
if
[[
$REPLY_PACKAGES
=
~ ^[Yy]
$
]]
;
then
echo
yum
install
-y
\
if
[[
$REPLY_PACKAGES
=
~ ^[Yy]
$
]]
;
then
vim
\
yum
install
-y
\
wget
\
vim
\
curl
\
wget
\
net-tools
\
curl
\
bind-utils
\
net-tools
\
telnet
\
bind-utils
\
tcpdump
>
/dev/null 2>&1
telnet
\
tcpdump
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
필수 패키지 설치가 완료되었습니다."
fi
echo
-e
"
${
GREEN
}
✓
${
NC
}
필수 패키지 설치가 완료되었습니다."
echo
""
# tmux 설치 여부 확인
echo
""
echo
-e
"
${
YELLOW
}
tmux를 설치하시겠습니까? (y/N):
${
NC
}
\c
"
read
-n
1
-r
REPLY_TMUX
echo
if
[[
$REPLY_TMUX
=
~ ^[Yy]
$
]]
;
then
echo
-e
"
${
BLUE
}
→
${
NC
}
tmux 설치 중..."
yum
install
-y
tmux
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
tmux 설치가 완료되었습니다."
fi
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
필수 패키지 설치를 건너뜁니다."
fi
echo
""
}
#######################################
# 9. 시간대 설정
#######################################
setup_timezone
()
{
echo
-e
"
${
CYAN
}
[9/11]
${
NC
}
시간대를 서울로 설정"
echo
-e
"
${
YELLOW
}
시간대를 Asia/Seoul로 설정하시겠습니까? (y/N):
${
NC
}
\c
"
read
-n
1
-r
REPLY_TIMEZONE
echo
if
[[
$REPLY_TIMEZONE
=
~ ^[Yy]
$
]]
;
then
timedatectl set-timezone Asia/Seoul
echo
-e
"
${
GREEN
}
✓
${
NC
}
시간대가 Asia/Seoul로 설정되었습니다."
echo
-e
" 현재 시간:
${
YELLOW
}
$(
date
'+%Y-%m-%d %H:%M:%S %Z'
)
${
NC
}
"
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
시간대 설정을 건너뜁니다."
fi
echo
""
}
#######################################
# 10. 시간 서버 설정
#######################################
setup_timeserver
()
{
echo
-e
"
${
CYAN
}
[10/11]
${
NC
}
시간 서버를 time.bora.net으로 설정"
echo
-e
"
${
YELLOW
}
시간 서버를 time.bora.net으로 설정하시겠습니까? (y/N):
${
NC
}
\c
"
read
-n
1
-r
REPLY_TIMESERVER
echo
if
[[
$REPLY_TIMESERVER
=
~ ^[Yy]
$
]]
;
then
echo
-e
"
${
BLUE
}
→
${
NC
}
chrony 패키지 설치 중..."
dnf
install
chrony
-y
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
chronyd 서비스 활성화 중..."
systemctl
enable
--now
chronyd
>
/dev/null 2>&1
echo
-e
"
${
BLUE
}
→
${
NC
}
time.bora.net 서버 추가 중..."
echo
"server time.bora.net iburst"
|
tee
-a
/etc/chrony.conf
>
/dev/null
echo
-e
"
${
BLUE
}
→
${
NC
}
chronyd 재시작 중..."
systemctl restart chronyd
>
/dev/null 2>&1
echo
-e
"
${
GREEN
}
✓
${
NC
}
시간 서버 설정이 완료되었습니다."
echo
-e
"
${
BLUE
}
시간 동기화 소스:
${
NC
}
"
chronyc sources
-v
else
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
시간 서버 설정을 건너뜁니다."
fi
echo
""
}
#######################################
# 11. SELinux ON/OFF 설정
#######################################
setup_selinux
()
{
echo
-e
"
${
CYAN
}
[11/11]
${
NC
}
SELinux ON/OFF 설정"
# 현재 SELinux 상태 확인
CURRENT_SELINUX
=
$(
getenforce 2>/dev/null
||
echo
"Unknown"
)
echo
-e
" 현재 SELinux 상태:
${
YELLOW
}${
CURRENT_SELINUX
}${
NC
}
"
echo
""
echo
-e
"
${
YELLOW
}
SELinux를 어떻게 설정하시겠습니까?
${
NC
}
"
echo
-e
"
${
CYAN
}
1.
${
NC
}
SELinux 비활성화 (Disabled)"
echo
-e
"
${
CYAN
}
2.
${
NC
}
SELinux 활성화 (Enforcing)"
echo
-e
"
${
CYAN
}
3.
${
NC
}
건너뛰기"
echo
-e
"
${
YELLOW
}
선택 (1/2/3):
${
NC
}
\c
"
read
-n
1
-r
REPLY_SELINUX
echo
echo
case
$REPLY_SELINUX
in
1
)
echo
-e
"
${
BLUE
}
→
${
NC
}
SELinux를 비활성화합니다..."
sed
-i
's/SELINUX=enforcing/SELINUX=disabled/g'
/etc/selinux/config
sed
-i
's/SELINUX=permissive/SELINUX=disabled/g'
/etc/selinux/config
setenforce 0 2>/dev/null
echo
-e
"
${
GREEN
}
✓
${
NC
}
SELinux가 비활성화되었습니다."
echo
-e
"
${
YELLOW
}
[참고]
${
NC
}
재부팅 후 완전히 적용됩니다."
;;
2
)
echo
-e
"
${
BLUE
}
→
${
NC
}
SELinux를 활성화합니다..."
sed
-i
's/SELINUX=disabled/SELINUX=enforcing/g'
/etc/selinux/config
sed
-i
's/SELINUX=permissive/SELINUX=enforcing/g'
/etc/selinux/config
echo
-e
"
${
GREEN
}
✓
${
NC
}
SELinux가 활성화로 설정되었습니다."
echo
-e
"
${
YELLOW
}
[참고]
${
NC
}
재부팅 후 완전히 적용됩니다."
;;
3
)
echo
-e
"
${
YELLOW
}
⊘
${
NC
}
SELinux 설정을 건너뜁니다."
;;
*
)
echo
-e
"
${
RED
}
잘못된 선택입니다.
${
NC
}
"
;;
esac
echo
""
}
#######################################
# 메인 실행 로직
#######################################
# 메뉴 반복
while
true
;
do
# 메뉴 표시
show_menu
# 사용자 입력 받기
read
MENU_CHOICE
# 입력값 처리 (쉼표로 구분된 값을 배열로 변환)
IFS
=
','
read
-ra
CHOICES
<<<
"
$MENU_CHOICE
"
echo
""
# 종료 체크
if
[[
"
$MENU_CHOICE
"
==
"q"
]]
||
[[
"
$MENU_CHOICE
"
==
"Q"
]]
;
then
echo
-e
"
${
YELLOW
}
설치를 종료합니다.
${
NC
}
"
break
fi
# 0번 선택 시 전체 설치하고 종료
if
[[
"
$MENU_CHOICE
"
==
"0"
]]
;
then
echo
-e
"
${
BLUE
}
전체 설치를 시작합니다...
${
NC
}
"
echo
""
setup_hostname
setup_network
setup_bashrc
setup_yum_clean
setup_system_update
setup_python
setup_nodejs_claude
setup_packages
setup_timezone
setup_timeserver
setup_selinux
break
fi
# 선택된 항목 실행
for
choice
in
"
${
CHOICES
[@]
}
"
;
do
# 공백 제거
choice
=
$(
echo
"
$choice
"
| xargs
)
case
$choice
in
1
)
setup_hostname
;;
2
)
setup_network
;;
3
)
setup_bashrc
;;
4
)
setup_yum_clean
;;
5
)
setup_system_update
;;
6
)
setup_python
;;
7
)
setup_nodejs_claude
;;
8
)
setup_packages
;;
9
)
setup_timezone
;;
10
)
setup_timeserver
;;
11
)
setup_selinux
;;
*
)
echo
-e
"
${
RED
}
잘못된 선택:
${
choice
}${
NC
}
"
echo
""
;;
esac
done
done
#######################################
#######################################
# 완료
# 완료
#######################################
#######################################
echo
""
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
GREEN
}
✓ CentOS 초기 설정이 완료되었습니다!
${
NC
}
"
echo
-e
"
${
GREEN
}
✓ CentOS 초기 설정이 완료되었습니다!
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
echo
-e
"
${
PURPLE
}
═══════════════════════════════════════════════════════════
${
NC
}
"
...
...
platyhouse
@platyhouse
mentioned in commit
8587004b
·
Dec 16, 2025
mentioned in commit
8587004b
mentioned in commit 8587004bfbebb2ceff13804bc1eea04727f6a285
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment