From ddf403ef993d67a77721cb20158698a9351cce33 Mon Sep 17 00:00:00 2001 From: kappa Date: Wed, 8 Apr 2026 16:45:53 +0900 Subject: [PATCH] =?UTF-8?q?sandbox-tokyo=20=E2=86=92=20zlambda=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 호스트네임/Tailscale 노드 이름/git 레포 모두 zlambda로 통일하면서 obsidian 정리. 변경: - infra/sandbox-tokyo-nixos.md → infra/zlambda.md (git mv, alias frontmatter 추가) - zlambda.md 내용 갱신: 접속 명령, configuration 위치, 커널/sysctl 튜닝, 후속 변경 메모 - infra/infra-hosts.md 표: sandbox-tokyo 행을 zlambda로 갱신, 위키링크 [[zlambda]] - infra/vault.md SSH CA 등록 호스트 목록: [[zlambda]] 위키링크 - services/netbis.md: title/aliases/호스트명/SSH 명령 갱신 - dev/nixos-manual/_index.md: 관련 문서 링크 [[zlambda]]로 갱신 postgresql-ha.md, crowdsec-safeline.md, services/searxng.md의 sandbox-tokyo 언급은 역사적 기록(과거 운영 상태)이라 그대로 유지. --- dev/nixos-manual/_index.md | 6 +-- infra/infra-hosts.md | 2 +- infra/vault.md | 2 +- infra/{sandbox-tokyo-nixos.md => zlambda.md} | 40 +++++++++++++++----- services/netbis.md | 9 +++-- 5 files changed, 41 insertions(+), 18 deletions(-) rename infra/{sandbox-tokyo-nixos.md => zlambda.md} (66%) diff --git a/dev/nixos-manual/_index.md b/dev/nixos-manual/_index.md index 76cb46d..d28e625 100644 --- a/dev/nixos-manual/_index.md +++ b/dev/nixos-manual/_index.md @@ -57,9 +57,9 @@ cp -R /tmp/nixpkgs-manual-fetch/nixos/doc/manual/. ~/obsidian/dev/nixos-manual/ - 파일은 **CommonMark + MyST 확장**이라 일반 markdown 렌더러는 일부 directive(`{.note}`, `:::`, `{=include}`)를 제대로 보여주지 않을 수 있음. Obsidian 기본 뷰에서는 코드블럭처럼 보일 수 있음. - 옵션 카탈로그(`nixos-options.md`)는 빌드 시 자동 생성되는 placeholder. 실제 옵션 검색은 https://search.nixos.org/options 사용. - 빌드 인프라 파일(`default.nix`, `common.nix`, `shell.nix`)은 manual을 PDF/HTML로 빌드할 때만 필요. -- 향후 [[infra-hosts|sandbox-tokyo]] 같은 NixOS 노드 운영 시 빠른 참조용. +- 향후 [[zlambda]] 같은 NixOS 노드 운영 시 빠른 참조용. ## 관련 문서 -- [[infra-hosts]] — 인프라 호스트 (sandbox-tokyo NixOS 노드 포함) -- [[sandbox-tokyo-nixos]] — sandbox-tokyo의 NixOS 전환 기록 +- [[infra-hosts]] — 인프라 호스트 (zlambda NixOS 노드 포함) +- [[zlambda]] — zlambda(구 sandbox-tokyo)의 NixOS 전환 기록과 운영 가이드 diff --git a/infra/infra-hosts.md b/infra/infra-hosts.md index f04bd61..b8ecb1f 100644 --- a/infra/infra-hosts.md +++ b/infra/infra-hosts.md @@ -18,7 +18,7 @@ tags: [infra, network, kr-zone, openwrt] | incus-kr2 | 100.119.109.41 | Incus+K3s 호스트 (서울) | K3s control-plane (LAN 192.168.9.135), default, inbest 프로젝트 | | incus-hp2 | 100.100.52.34 | Incus+K3s 호스트 (서울) | Xeon E5-2670 32코어, 188GB RAM, K3s worker/k3s-agent (LAN 192.168.9.134), default, inbest 프로젝트 | | openwrt-gw | 100.66.60.66 | OpenWrt 라우터 (서울) | HAProxy: 80/443 → MetalLB Traefik(192.168.9.53:80/443), 9080/9443 → MetalLB APISIX(192.168.9.50:80/443) | -| sandbox-tokyo | 100.78.51.18 | NixOS 베이스 호스트 (도쿄, Linode "zlambda") | NixOS 25.05 (Warbler), 공인 139.162.71.52, sshd+tailscale+docker, 2026-04-08 Debian→NixOS 전환 (이전 APISIX/etcd/microsocks/tlsproxy/vault-prod/wg-easy 모두 제거됨), Linode 프로필 kernel=`linode/direct-disk`, configuration: Mac `~/nixos-zlambda/` flake | +| zlambda (구 sandbox-tokyo) | 100.78.51.18 | [[zlambda|NixOS 베이스 호스트]] (도쿄, Linode `zlambda`) | NixOS 25.05 (Warbler), 공인 139.162.71.52, sshd+tailscale+docker, 2026-04-08 Debian→NixOS 전환 (이전 APISIX/etcd/microsocks/tlsproxy/vault-prod/wg-easy 모두 제거됨), Linode 프로필 kernel=`linode/direct-disk`, BBR+fq+sysctl 튜닝, configuration: Gitea [`kaffa/nixos-infra`](https://gitea.inouter.com/kaffa/nixos-infra) (kaffa-macmini `~/nixos-infra/`, zlambda `/root/nixos-infra/`) | | relay4wd (sandbox-kr2) | 100.103.161.4 | APISIX Gateway (서울, AWS Lightsail) | 공인 52.79.45.166, inbest 포트포워딩, Docker APISIX 3.15.0, Debian 12, nano $5/월, SSH: `ssh -p 2222 admin@relay4wd` (Vault CA), 포트 22는 SFTPGo 리다이렉트 | | synology | LAN 192.168.9.100 / 192.168.205.100 (2.5G) | NAS (시놀로지) | Tailscale 미사용, LAN 접근 | diff --git a/infra/vault.md b/infra/vault.md index 2334169..8be1cbf 100644 --- a/infra/vault.md +++ b/infra/vault.md @@ -49,7 +49,7 @@ CA 등록 완료 서버: - [[infra-hosts|incus-jp1]] (100.109.123.1) — kaffa - [[infra-hosts|incus-kr1]] (100.84.111.28) — kaffa - [[infra-hosts|incus-kr2]] (100.119.109.41) — kaffa -- [[infra-hosts|sandbox-tokyo]] (100.78.51.18) — root **[2026-04-08 NixOS 재설치 후 미등록, 재등록 필요]** +- [[zlambda]] (100.78.51.18, 구 sandbox-tokyo) — root **[2026-04-08 NixOS 재설치 후 미등록, 재등록 필요]** - [[infra-hosts|jump-seoul]] (100.120.61.54) — admin 미등록: safeline-osaka (응답 없음) diff --git a/infra/sandbox-tokyo-nixos.md b/infra/zlambda.md similarity index 66% rename from infra/sandbox-tokyo-nixos.md rename to infra/zlambda.md index dc67cf3..61a1ec3 100644 --- a/infra/sandbox-tokyo-nixos.md +++ b/infra/zlambda.md @@ -1,9 +1,12 @@ --- -title: sandbox-tokyo (NixOS) +title: zlambda (Linode 도쿄, NixOS) updated: 2026-04-08 -tags: [nixos, linode, sandbox-tokyo, infra] +aliases: [sandbox-tokyo, sandbox-tokyo-nixos] +tags: [nixos, linode, zlambda, infra] --- +> **이름 변경 안내**: 이 노드는 2026-04-08까지 `sandbox-tokyo`로 불렸으나 OS hostname / Tailscale machine name / git 레포가 모두 `zlambda`로 통일되었습니다. 옛 이름 `sandbox-tokyo`는 Mac ssh config 및 본 문서 alias로만 남아 있습니다. + ## 개요 Linode Tokyo VM (라벨 `zlambda`, id 47271589)을 2026-04-08 Debian 12 → **NixOS 25.05 (Warbler)** 로 교체. nixos-anywhere로 무관리 원격 설치. @@ -14,7 +17,8 @@ Linode Tokyo VM (라벨 `zlambda`, id 47271589)을 2026-04-08 Debian 12 → **Ni | 방법 | 명령 | |------|------| -| Tailscale | `ssh root@sandbox-tokyo` (100.78.51.18) | +| Tailscale (정식) | `ssh root@zlambda` (100.78.51.18) | +| Tailscale (alias) | `ssh root@sandbox-tokyo` ← Mac ssh config alias로만 동작 | | 공인 IP | `ssh root@139.162.71.52` | | LISH 콘솔 | `ssh -tt netbis@lish-tokyo2.linode.com zlambda` (Linode profile.authorized_keys에 kaffa-Macmini RSA 등록 필요) | @@ -61,8 +65,8 @@ nixos-infra/ ``` **clone 위치**: -- kaffa-macmini: `~/nixos-infra/` (작성/수정용) -- sandbox-tokyo: `/root/nixos-infra/` (실제 빌드/적용용) +- kaffa-macmini: `~/nixos-infra/` (작성/수정용, push 권한). remote는 토큰 임베드 https URL +- zlambda: `/root/nixos-infra/` (실제 빌드/적용용). remote는 SSH (`git@gitea.inouter.com:kaffa/nixos-infra.git`), gitea repo deploy key 등록됨 (`/root/.ssh/gitea_nixos_infra`, read-only, fingerprint `SHA256:Amz8LUDKHU59qxyMS48hfoP+KxRE/o6CITfkXzkAFNU`) - macbookair: 아직 clone 안 함 (필요 시 `git clone https://gitea.inouter.com/kaffa/nixos-infra.git`) 향후 두 번째 NixOS 노드 추가 시 `hosts//` 구조로 재편 예정 (README.md 참조). @@ -72,6 +76,7 @@ flake input: - disko: `github:nix-community/disko` 활성화된 모듈/서비스: +- `networking.hostName = "zlambda"` - `services.openssh` (PermitRootLogin prohibit-password, PasswordAuth off) - `services.tailscale.enable = true` - `virtualisation.docker.enable = true` (autoPrune 켜짐) @@ -81,6 +86,14 @@ flake input: - `networking.firewall.enable = false` (Linode firewall에 일임) - `system.stateVersion = "25.05"` +**커널 / sysctl 튜닝** (2026-04-08 추가): +- `boot.kernelModules = [ "br_netfilter" ]` (docker bridge sysctl 활성화용) +- 네트워크: BBR + fq qdisc, somaxconn 4096, tcp_fin_timeout 15, tcp_tw_reuse, tcp_keepalive 600/30/6, netdev_max_backlog 16384, tcp_max_syn_backlog 8192 +- 포워딩: ip_forward, IPv6 forwarding, bridge-nf-call-{ip,ip6}tables (docker) +- 메모리: vm.swappiness=10, vm.overcommit_memory=1, vm.dirty_ratio=10/5 +- 파일/inotify: file-max=1048576, inotify watches=524288, instances=8192, queued_events=65536 +- 콘솔: kernel.printk = "3 4 1 3" + GRUB 설정: disko의 EF02 파티션이 자동으로 grub.devices를 채워주므로 `boot.loader.grub.devices`는 명시하지 않음 (명시하면 mirroredBoots 중복 오류 남). ### 재배포/변경 방법 @@ -93,8 +106,8 @@ cd ~/nixos-infra $EDITOR configuration.nix git add -A && git commit -m "..." && git push -# sandbox-tokyo에서 적용 -ssh root@sandbox-tokyo +# zlambda에서 적용 (deploy key 자동 인증) +ssh root@zlambda cd /root/nixos-infra git pull nixos-rebuild switch --flake .#zlambda @@ -125,10 +138,19 @@ nix run github:nix-community/nixos-anywhere -- \ 6. **해결**: Configuration profile kernel을 `linode/direct-disk`로 변경 후 reboot → 정상 부팅. 7. **Tailscale**: API key로 ephemeral auth key 발급(`POST /api/v2/tailnet/-/keys`) → `tailscale up --authkey`. 옛 device(`100.79.87.48`)는 offline이라 새 device가 `sandbox-tokyo-1`로 가입됨 → 옛 device 삭제(API DELETE) + rename으로 `sandbox-tokyo` 이름 회수. +## 후속 변경 (2026-04-08, 같은 날) + +- **Gitea 리포지토리 [[kaffa/nixos-infra]]** (private) 생성 → `kaffa-macmini ~/nixos-infra/`와 `zlambda /root/nixos-infra/` 양쪽에 clone. zlambda는 deploy key (read-only SSH) 사용. +- **macbookair ed25519 키**(`SHA256:kdYCep0k22+QxnOq...`)를 `users.users.root.openssh.authorizedKeys.keys`에 영구 등록 → macbookair에서 직접 `ssh root@zlambda` 가능. +- **호스트네임 `sandbox-tokyo` → `zlambda`**: NixOS configuration.nix의 `networking.hostName`, `/etc/hostname`, kernel hostname, Tailscale device name(API rename, deviceId `6511000756301111`) 모두 통일. macbookair `~/.ssh/config`에 `Host zlambda sandbox-tokyo` alias 양쪽 유지. +- **커널 / sysctl 튜닝**: BBR + fq qdisc, conntrack/inotify/file 한도 증가, swappiness 등. 위 "활성화된 모듈/서비스" 섹션 참조. + ## 알려진 후속 작업 -- [x] Gitea 리포지토리로 푸시 → `kaffa/nixos-infra` (private). kaffa-macmini와 sandbox-tokyo 양쪽에 clone 완료. macbookair의 ed25519 키도 root authorized_keys에 영구 등록 (configuration.nix). +- [x] Gitea 리포지토리로 푸시 → `kaffa/nixos-infra` (private) +- [x] zlambda에 deploy key 설정 (gitea repo deploy key id 1, fingerprint `SHA256:Amz8LUDKHU59qxyMS48hfoP+KxRE/o6CITfkXzkAFNU`) +- [x] macbookair ed25519 등록 + 호스트네임 zlambda 통일 +- [x] 커널/sysctl 튜닝 - [ ] [[vault]] SSH CA에 새 호스트키 등록 (vault.md 참조) -- [ ] sandbox-tokyo에 deploy key (SSH) 설정 — 현재 HTTPS clone이라 다음 git pull은 익명/public 가정. 사실은 private repo라 pull 시 인증 필요할 수 있음. SSH deploy key가 깔끔. - [ ] 필요 시 [[netbis]] APISIX/etcd Docker compose 재배포 - [ ] 필요 시 [[searxng]]용 tlsproxy/microsocks 재배포 diff --git a/services/netbis.md b/services/netbis.md index 641efb9..09933e2 100644 --- a/services/netbis.md +++ b/services/netbis.md @@ -1,6 +1,7 @@ --- -title: Netbis 예비서버 (sandbox-tokyo) +title: Netbis 예비서버 ([[zlambda]]) updated: 2026-04-08 NixOS 전환으로 APISIX 미가동 +aliases: [netbis-sandbox-tokyo] tags: [netbis, apisix, dr, cloudflare, nixos] --- @@ -10,13 +11,13 @@ Netbis 팀 도메인의 예비(DR) 리버스 프록시 서버. 평소에는 트 기존 Ironclad 인프라([[apisix]], [[crowdsec-safeline]])와는 별도 구성. -> **2026-04-08 상태**: 호스트 OS를 Debian 12 → **NixOS 25.05**로 교체하면서 APISIX/etcd 컨테이너가 모두 제거됨. 현재 베이스 시스템(sshd + tailscaled + docker)만 떠 있고 **DR 역할은 미가동**. 재가동하려면 docker compose로 APISIX/etcd 재배포 필요. NixOS configuration: Mac `~/nixos-zlambda/` flake. +> **2026-04-08 상태**: 호스트 OS를 Debian 12 → **NixOS 25.05**로 교체하면서 APISIX/etcd 컨테이너가 모두 제거됨. 호스트 이름도 `sandbox-tokyo` → `zlambda`로 통일. 현재 베이스 시스템(sshd + tailscaled + docker)만 떠 있고 **DR 역할은 미가동**. 재가동하려면 docker compose로 APISIX/etcd 재배포 필요. NixOS configuration은 Gitea [[zlambda|kaffa/nixos-infra]] flake에서 관리. ## 서버 정보 | 항목 | 값 | |------|-----| -| 호스트명 | sandbox-tokyo | +| 호스트명 | **zlambda** (구 sandbox-tokyo, 2026-04-08 변경) | | Linode 라벨 | zlambda (id 47271589) | | 공인 IP | 139.162.71.52 | | Tailscale IP | 100.78.51.18 (2026-04-08 변경, 이전 100.79.87.48) | @@ -24,7 +25,7 @@ Netbis 팀 도메인의 예비(DR) 리버스 프록시 서버. 평소에는 트 | OS | NixOS 25.05 (Warbler), x86_64-linux | | Linode kernel | `linode/direct-disk` (NixOS 자체 GRUB) | | 디스크 | sda 49.5G ext4 (/), sdb 510M swap | -| SSH | `ssh root@sandbox-tokyo` 또는 `ssh root@139.162.71.52` | +| SSH | `ssh root@zlambda` (또는 alias `ssh root@sandbox-tokyo`, 공인 IP `ssh root@139.162.71.52`) | | LISH 사용자 | netbis@lish-tokyo2.linode.com (kaffa-Macmini SSH key) | ## APISIX 구성