From aa3444d750c00cd3e2fead6aa15c0c2562a9c173 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 9 Mar 2026 17:59:28 +0900 Subject: [PATCH] docs: update 24 server root-cause remediation --- ...€νŠΈμ›Œν¬λŒ€μ—­μ˜€λ₯˜_python3apt볡ꡬ.md | 53 +++++++++++++------ 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/journey/troubleshooting/260309_24μ„œλ²„_μš°λΆ„νˆ¬ν„°λ―Έλ„λΆˆκ°€_λ„€νŠΈμ›Œν¬λŒ€μ—­μ˜€λ₯˜_python3apt볡ꡬ.md b/journey/troubleshooting/260309_24μ„œλ²„_μš°λΆ„νˆ¬ν„°λ―Έλ„λΆˆκ°€_λ„€νŠΈμ›Œν¬λŒ€μ—­μ˜€λ₯˜_python3apt볡ꡬ.md index acd5d8c..d0b606b 100644 --- a/journey/troubleshooting/260309_24μ„œλ²„_μš°λΆ„νˆ¬ν„°λ―Έλ„λΆˆκ°€_λ„€νŠΈμ›Œν¬λŒ€μ—­μ˜€λ₯˜_python3apt볡ꡬ.md +++ b/journey/troubleshooting/260309_24μ„œλ²„_μš°λΆ„νˆ¬ν„°λ―Έλ„λΆˆκ°€_λ„€νŠΈμ›Œν¬λŒ€μ—­μ˜€λ₯˜_python3apt볡ꡬ.md @@ -80,7 +80,7 @@ sudo apt update sudo apt upgrade -y ``` -### 4. Codex CLI λŸ°νƒ€μž„ 볡ꡬ +### 4. Codex CLI λŸ°νƒ€μž„ κ·Όλ³Έ 볡ꡬ 문제 μž¬ν˜„: ```bash @@ -102,13 +102,15 @@ sudo -u happybell80 bash -lc 'which node; node -v; which codex; codex login stat ```bash sudo cp -a /usr/local/bin/codex /usr/local/bin/codex.pre_node24_fix -sudo install -m 0755 /home/admin/.tmp_codex_wrapper.sh /usr/local/bin/codex -sudo install -o happybell80 -g xusers -m 0644 /home/admin/happybell80.profile.fixed /home/happybell80/.profile +sudo cp -a /usr/local/bin/codex /usr/local/bin/codex.wrapper.20260309 +sudo ln -sfn /home/happybell80/.nvm/versions/node/v24.4.0/bin/node /usr/local/bin/node +sudo ln -sfn /home/happybell80/.nvm/versions/node/v24.4.0/bin/codex /usr/local/bin/codex ``` 적용 λ‚΄μš©: -- `/usr/local/bin/codex`λ₯Ό `/home/happybell80/.nvm/versions/node/v24.4.0/bin/node`와 Codex JS μ—”νŠΈλ¦¬ν¬μΈνŠΈλ₯Ό 직접 ν˜ΈμΆœν•˜λŠ” 래퍼둜 κ΅μ²΄ν–ˆλ‹€. -- κΈ°μ‘΄ μ „μ—­ μ§„μž…μ μ€ `/usr/local/bin/codex.pre_node24_fix`둜 λ°±μ—…ν–ˆλ‹€. +- `/usr/local/bin/node`λ₯Ό `node v24.4.0` λ°”μ΄λ„ˆλ¦¬λ‘œ μ—°κ²°ν•΄, `#!/usr/bin/env node`κ°€ 더 이상 μ‹œμŠ€ν…œ `node v12.22.9`λ₯Ό μ§‘μ§€ μ•Šλ„λ‘ ν–ˆλ‹€. +- `/usr/local/bin/codex`λŠ” λž˜νΌκ°€ μ•„λ‹ˆλΌ μ›λž˜ Codex CLI λ°”μ΄λ„ˆλ¦¬ 심볼릭 링크둜 λ˜λŒλ Έλ‹€. +- κΈ°μ‘΄ μ „μ—­ μ§„μž…μ μ€ `/usr/local/bin/codex.pre_node24_fix`둜 μœ μ§€ν–ˆκ³ , μž„μ‹œ λž˜νΌλŠ” `/usr/local/bin/codex.wrapper.20260309`둜만 λ³΄κ΄€ν–ˆλ‹€. - `happybell80`의 `~/.profile`에 Node `v24.4.0` 경둜λ₯Ό PATH μ•žλ‹¨μ— λ‘λŠ” 섀정을 μΆ”κ°€ν•΄ 둜그인 μ…Έμ—μ„œλ„ λ™μΌν•œ λŸ°νƒ€μž„μ„ μ‚¬μš©ν•˜λ„λ‘ λ§žμ·„λ‹€. 검증: @@ -124,6 +126,7 @@ env -i PATH=/usr/local/bin:/usr/bin:/bin HOME=/home/happybell80 USER=happybell80 - `codex --help` 정상 좜λ ₯ - `codex login status` -> `Logged in using ChatGPT` - μ΅œμ†Œ PATH ν™˜κ²½μ—μ„œλ„ `/usr/local/bin/codex --help` 정상 좜λ ₯ +- 즉 μ΅œμ’… μƒνƒœλŠ” 래퍼 μš°νšŒκ°€ μ•„λ‹ˆλΌ, `env node`κ°€ μ‹œμŠ€ν…œ μ°¨μ›μ—μ„œ 지원 버전 Nodeλ₯Ό 찾도둝 λ°”λ‘œμž‘μ€ μƒνƒœλ‹€. ## Python κ΄€λ ¨ 핡심 ν•΄μ„€ - Ubuntu 22.04λŠ” μ‹œμŠ€ν…œ 도ꡬ λ‹€μˆ˜κ°€ `python3.10` κΈ°μ€€μœΌλ‘œ νŒ¨ν‚€μ§•λΌ μžˆλ‹€. @@ -148,6 +151,7 @@ python3.13 -m venv .venv - 23 μ„œλ²„μ—μ„œ μœ„ SSH λͺ…λ ΉμœΌλ‘œ μ‹€μ œ 접속 검증 μ‹œ `hostname=robeing-i9`, `user=admin` 응닡을 ν™•μΈν–ˆλ‹€. - μΆ”κ°€ 확인 κ²°κ³Ό Codex CLI 직접 μž₯μ•  원인은 λ„€νŠΈμ›Œν¬ μ „λ©΄ 차단이 μ•„λ‹ˆλΌ `node v12.22.9`와 `@openai/codex 0.53.0` μ‘°ν•©μ˜ λŸ°νƒ€μž„ μΆ©λŒμ΄μ—ˆλ‹€. - 2026-03-09 μˆ˜μ • ν›„ `happybell80` 둜그인 μ…Έκ³Ό `/usr/local/bin/codex` 직접 호좜 λͺ¨λ‘ `node v24.4.0` κΈ°μ€€μœΌλ‘œ 정상 λ™μž‘ν•œλ‹€. +- `/usr/local/bin/node`도 `node v24.4.0`λ₯Ό 가리킀도둝 맞좰, `env node` 기반 μ‹€ν–‰ 경둜의 λŸ°νƒ€μž„ μΆ©λŒμ„ μ œκ±°ν–ˆλ‹€. ### 23 μ„œλ²„ ν˜„μž¬ 점검 λ²”μœ„ - λ³Έ λ¬Έμ„œλŠ” 2026-03-09 ν˜„μž¬ μž‘μ—… ν™˜κ²½μ—μ„œ 23 μ„œλ²„λ‘œ μ‚¬μš© 쀑인 호슀트λ₯Ό κΈ°μ€€μœΌλ‘œ ν™•μΈν–ˆλ‹€. @@ -185,33 +189,50 @@ sudo systemctl reset-failed - 이후 `sudo logrotate -d /etc/logrotate.conf`μ—μ„œ `Ignoring nginx.backup.20251021.bak, because of *.bak pattern match`λ₯Ό ν™•μΈν–ˆλ‹€. - `sudo systemctl status logrotate.service`λŠ” `status=0/SUCCESS`둜 μ’…λ£Œλκ³ , `systemctl --failed`λŠ” `0 loaded units listed.`, `sudo systemctl is-system-running`은 `running`으둜 λ³΅κ·€ν–ˆλ‹€. -## 2026-03-09 μΆ”κ°€ 확인: μž”μ‘΄ 사섀 IP μ„€μ • -- ν™œμ„± μΈν„°νŽ˜μ΄μŠ€ `eno1`μ—λŠ” ν˜„μž¬λ„ `192.168.219.52/24`와 `192.168.0.106/24`κ°€ λ™μ‹œμ— λΆ™μ–΄ μžˆλ‹€. -- `ip route` κΈ°μ€€ κΈ°λ³Έ κ²½λ‘œλ„ `192.168.0.1` 외에 `192.168.219.1 metric 100`이 ν•¨κ»˜ 남아 μžˆλ‹€. -- NetworkManager ν”„λ‘œν•„ `/etc/NetworkManager/system-connections/Wired connection 1.nmconnection`μ—λŠ” μ—¬μ „νžˆ μ•„λž˜ 고정값이 μ €μž₯돼 μžˆλ‹€. +## 2026-03-09 μΆ”κ°€ 확인 및 μˆ˜μ •: μž”μ‘΄ 사섀 IP μ„€μ • +- μž‘μ—… μ „ ν™œμ„± μΈν„°νŽ˜μ΄μŠ€ `eno1`μ—λŠ” `192.168.219.52/24`와 `192.168.0.106/24`κ°€ λ™μ‹œμ— λΆ™μ–΄ μžˆμ—ˆλ‹€. +- μž‘μ—… μ „ `ip route` κΈ°μ€€ κΈ°λ³Έ κ²½λ‘œλ„ `192.168.0.1` 외에 `192.168.219.1 metric 100`이 ν•¨κ»˜ 남아 μžˆμ—ˆλ‹€. +- 원인은 NetworkManager ν”„λ‘œν•„ `/etc/NetworkManager/system-connections/Wired connection 1.nmconnection`에 κ³Όκ±° 고정값이 남아 있던 것이닀. ```ini [ipv4] -address1=192.168.219.52/24,192.168.219.1 +address1=192.168.0.106/24,192.168.0.1 +dns=8.8.8.8;1.1.1.1; method=manual +route-metric=0 ``` -- 즉 κ³Όκ±° 사섀 IP `192.168.219.52/24`λŠ” λ¬Έμ„œ 기둝만이 μ•„λ‹ˆλΌ ν˜„μž¬ 영ꡬ 섀정에도 남아 μžˆλŠ” μƒνƒœλ‹€. -- 이번 μž‘μ—…μ—μ„œλŠ” SSH μ„Έμ…˜ 리슀크 λ•Œλ¬Έμ— NetworkManager ν”„λ‘œν•„ μžμ²΄λŠ” λ³€κ²½ν•˜μ§€ μ•Šμ•˜κ³ , Codex λŸ°νƒ€μž„ 볡ꡬ와 사싀 ν™•μΈκΉŒμ§€λ§Œ μˆ˜ν–‰ν–ˆλ‹€. +적용 쑰치: + +```bash +sudo nmcli connection modify 'Wired connection 1' \ + ipv4.method manual \ + ipv4.addresses '192.168.0.106/24' \ + ipv4.gateway '192.168.0.1' \ + ipv4.dns '8.8.8.8 1.1.1.1' \ + ipv4.routes '' \ + ipv4.route-metric 0 +sudo ip addr del 192.168.219.52/24 dev eno1 +sudo ip route del default via 192.168.219.1 dev eno1 metric 100 +``` + +μˆ˜μ • κ²°κ³Ό: +- ν™œμ„± `eno1`μ—λŠ” ν˜„μž¬ `192.168.0.106/24`만 남아 μžˆλ‹€. +- κΈ°λ³Έ κ²½λ‘œλŠ” `192.168.0.1`만 남아 μžˆλ‹€. +- 즉 κ³Όκ±° 사섀 IP `192.168.219.52/24`λŠ” λŸ°νƒ€μž„κ³Ό 영ꡬ μ„€μ • λͺ¨λ‘μ—μ„œ μ œκ±°λλ‹€. ## 재발 λ°©μ§€ - 24 μ„œλ²„μ—μ„œ μ‹œμŠ€ν…œ `python3` 링크λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€. - 개발용 Python 3.13은 `venv` λ˜λŠ” λͺ…μ‹œμ  λ°”μ΄λ„ˆλ¦¬ 경둜둜만 μ‚¬μš©ν•œλ‹€. - κ³ μ • IPλ₯Ό μš΄μš©ν•  λ•ŒλŠ” ν˜„μž¬ LAN λŒ€μ—­κ³Ό SSOTλ₯Ό λ¨Όμ € λŒ€μ‘°ν•˜κ³ , κ³Όκ±° λŒ€μ—­μ˜ μž”μ‘΄ μ£Όμ†Œλ₯Ό μ œκ±°ν•œλ‹€. -- Node 기반 μ „μ—­ CLIλŠ” `#!/usr/bin/env node` shebang에 μ˜μ‘΄ν•  λ•Œ μ‚¬μš©μžλ³„ PATH 차이둜 λŸ°νƒ€μž„ 좩돌이 λ‚  수 μžˆμœΌλ―€λ‘œ, 운영 λͺ…령은 μš”κ΅¬ 버전을 λ§Œμ‘±ν•˜λŠ” Node 경둜λ₯Ό λͺ…μ‹œμ μœΌλ‘œ κ³ μ •ν•œλ‹€. +- Node 기반 μ „μ—­ CLIλŠ” `#!/usr/bin/env node` shebang에 μ˜μ‘΄ν•  λ•Œ μ‚¬μš©μžλ³„ PATH 차이둜 λŸ°νƒ€μž„ 좩돌이 λ‚  수 μžˆμœΌλ―€λ‘œ, μ‹œμŠ€ν…œμ΄ λ¨Όμ € μ°ΎλŠ” `node` 경둜 자체λ₯Ό 지원 λ²„μ „μœΌλ‘œ μœ μ§€ν•œλ‹€. - GUI 터미널 λΆˆκ°€ μ‹œμ—λŠ” λ°”λ‘œ μž¬μ„€μΉ˜λΆ€ν„° ν•˜μ§€ 말고 `TTY μ§„μž… -> λ„€νŠΈμ›Œν¬ 확인 -> μ‹œμŠ€ν…œ Python 확인 -> apt 볡ꡬ` μˆœμ„œλ‘œ λ³Έλ‹€. - 23 μ„œλ²„μ—μ„œλŠ” `/etc/logrotate.d/` μ•„λž˜μ— 운영 쀑인 μ„€μ •μ˜ λ°±μ—… νŒŒμΌμ„ 같은 ν™•μž₯자 없이 남기지 μ•ŠλŠ”λ‹€. ## 후속 ꢌμž₯ μž‘μ—… -- 24 μ„œλ²„μ˜ λ„€νŠΈμ›Œν¬ μ„€μ • νŒŒμΌμ—μ„œ `192.168.219.52/24`κ°€ λ‹€μ‹œ λΆ™μ§€ μ•Šλ„λ‘ 영ꡬ μ„€μ • μœ„μΉ˜λ₯Ό ν™•μΈν•œλ‹€. -- 24 μ„œλ²„μ˜ NetworkManager ν”„λ‘œν•„ `Wired connection 1`을 ν˜„μž¬ 운영 LAN κΈ°μ€€(`192.168.0.106/24`, κ²Œμ΄νŠΈμ›¨μ΄ `192.168.0.1`)으둜 μ •λ¦¬ν•˜κ³ , SSH μœ μ§€ μ‹œκ°„λŒ€μ— μž¬μ μš©ν•œλ‹€. +- 24 μ„œλ²„μ—μ„œ `node` 경둜λ₯Ό λ°”κΏ€ 일이 생기면 `/usr/local/bin/node`와 `happybell80`의 NVM κΈ°λ³Έ 버전이 ν•¨κ»˜ λ§žλŠ”μ§€ μ κ²€ν•œλ‹€. - 24 μ„œλ²„μ—μ„œ Python 3.13이 ν•„μš”ν•œ ν”„λ‘œμ νŠΈκ°€ 있으면 μ‹œμŠ€ν…œ 링크 λ³€κ²½ 없이 κ°€μƒν™˜κ²½μœΌλ‘œ λΆ„λ¦¬ν•œλ‹€. -- 24 μ„œλ²„μ—μ„œ Codex/Nodeλ₯Ό μ—…λ°μ΄νŠΈν•  λ•ŒλŠ” `/usr/local/bin/codex` 래퍼의 κ³ μ • κ²½λ‘œλ„ ν•¨κ»˜ μ κ²€ν•œλ‹€. +- 24 μ„œλ²„μ—μ„œ Codex/Nodeλ₯Ό μ—…λ°μ΄νŠΈν•  λ•ŒλŠ” `/usr/local/bin/node`, `/usr/local/bin/codex`, `happybell80`의 NVM κΈ°λ³Έ 버전이 ν•¨κ»˜ μΌμΉ˜ν•˜λŠ”μ§€ μ κ²€ν•œλ‹€. - 23/24 곡톡 운영 κΈ°μ€€ λ¬Έμ„œμ— "Ubuntu 22.04 μ‹œμŠ€ν…œ Python λ³€κ²½ κΈˆμ§€"λ₯Ό 반볡 κ·œμΉ™μœΌλ‘œ μŠΉκ²©ν• μ§€ κ²€ν† ν•œλ‹€. - 23 μ„œλ²„μ˜ 남은 νŒ¨ν‚€μ§€ μ—…λ°μ΄νŠΈ `2건`(`network-manager-openvpn`, `network-manager-openvpn-gnome`)은 영ν–₯ μ‹œκ°„λŒ€ 확인 ν›„ 반영 μ—¬λΆ€λ₯Ό κ²°μ •ν•œλ‹€.