fix(setup): 실험대에서 35편을 끝까지 밟고 어긋난 명령·결과 31건을 고친다
test-server 를 비우고 다시 세운 뒤 Setup 기록 35편(virtualization 9 ·
keycloak-session-store 26)을 문서에 적힌 명령 그대로 쳤다. 어긋난 자리를
기록과 SSOT 양쪽에 실측과 함께 넣었다.
막히던 것
- 04 의 인증서 경로가 live/hyeonworks.com 이라 nginx 가 [emerg] 로 안 떴다.
실제 계보는 live/auth.hyeonworks.com 이고 「문제가 생기면」은 진단이 거꾸로였다
- 인증서가 와일드카드가 아니다. SAN 이 auth·app1·app2 셋뿐이라 그 밖의 이름은
TLS 에서 끊기고 curl 이 exit 60 · %{http_code} 000 을 낸다. SSOT 안에서
두 문단이 서로 어긋나 있었다
- A-7 14번 ①이 kc-lab-1 에서 여섯 줄 다 실패하는데 마지막 date 만 「차단」을 찍는다
검사가 실패할 수 없던 자리
- B-1 의 세션 키 고르기는 앞 단계가 $KEY 를 채워 둬서 루프가 한 건도 못 맞혀도
통과한다. KEY= 로 비우고 키마다 1/0 을 찍게 바꿨다
- k3s-agent 유닛의 sed -i 는 패턴에 $HOME 이 들어 있어 아무 줄도 안 바꾼 채 성공한다
certbot
- renew --dry-run 의 종료 코드는 성공도 0, 실패도 0, 다른 사유의 실패는 1 이다.
본문의 renew failure(s) 로만 판정할 수 있다
- --dry-run 은 staging 서버를 쓰는데 renewal/*.conf 의 account= 는 운영 계정을
가리킨다. 실패한 dry-run 이 staging 계정을 하나 더 만들어 다음 실행이 계속 멎는다
- 훅을 755 로 놓고 시뮬레이션이 성공해도 Running deploy-hook command 는 안 나온다.
certbot 2.1.0 에는 --run-deploy-hooks 도 없다
- 강제 갱신은 실제로 쳤고 서빙까지 닿았다. serial 06F3E0EF…1373 → 065547…3DF1,
notAfter Dec 3 → Dec 16, nginx worker 2629 4712 → 4745 4754
독자가 칠 수 있는 형태로
- 안 되는 형태가 번호 붙은 단계에 앉아 있던 8곳을 뒤집고, 되는 형태를 ①로 올렸다
- 랩 안에서 공개 이름을 치는 curl 65줄에 --resolve 를 붙였다. 붙인 형태를 실제로
쳐서 문서가 적은 값과 같은지 확인했다
- 힙독·sed -i·echo >>·&&·|| 를 편집기 + 파일 리스팅 + 분할 형태로 바꿨다
- 닫는 코드펜스가 빠져 뒤 200여 줄의 블록 종류가 뒤집혀 있던 곳을 포함해 3곳을 고쳤다
관문: check_body PASS · check_prose error 0 · check_evidence 두 프로젝트 문제 없음 ·
verify-tech-log-tree error 0 · verify-project-layout error 0 · 코드펜스 전수 0건
남은 것: B-0 주입은 keycloak-pattern 저장소의 소스를 고치고 이미지를 다시 구워야
해서 안 했다(unknown).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4a457afde9
commit
32e39e20aa
@@ -0,0 +1,4 @@
|
||||
[ 60061ms] [ERROR] Failed to load resource: the server responded with a status of 422 (Unprocessable Entity) @ https://hyeonworks.com/api/v1/studio/documents?limit=200:0
|
||||
[ 65184ms] [ERROR] Failed to load resource: the server responded with a status of 422 (Unprocessable Entity) @ https://hyeonworks.com/api/v1/studio/documents?limit=200:0
|
||||
[ 87640ms] [ERROR] Failed to load resource: the server responded with a status of 405 (Method Not Allowed) @ https://hyeonworks.com/api/v1/studio/documents/7e7fb64d-f3a5-4f1e-8351-04596929aaf0:0
|
||||
[ 98850ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ https://hyeonworks.com/api/v1/studio/documents/7e7fb64d-f3a5-4f1e-8351-04596929aaf0:0
|
||||
@@ -0,0 +1,133 @@
|
||||
- generic [ref=f6e3]:
|
||||
- link "본문으로 건너뛰기" [ref=f6e4] [cursor=pointer]:
|
||||
- /url: "#main-content"
|
||||
- banner [ref=f6e5]:
|
||||
- generic [ref=f6e6]:
|
||||
- link "TechLog Studio" [ref=f6e7] [cursor=pointer]:
|
||||
- /url: /studio
|
||||
- text: TechLog
|
||||
- generic [ref=f6e8]: Studio
|
||||
- navigation "Studio 주 탐색" [ref=f6e10]:
|
||||
- generic [ref=f6e11]:
|
||||
- link "작업" [ref=f6e12] [cursor=pointer]:
|
||||
- /url: /studio/documents
|
||||
- link "구조" [ref=f6e13] [cursor=pointer]:
|
||||
- /url: /studio/taxonomy
|
||||
- link "자료" [ref=f6e14] [cursor=pointer]:
|
||||
- /url: /studio/assets
|
||||
- link "게시" [ref=f6e15] [cursor=pointer]:
|
||||
- /url: /studio/publications
|
||||
- generic [ref=f6e16]:
|
||||
- link "작업본" [ref=f6e17] [cursor=pointer]:
|
||||
- /url: /studio/documents
|
||||
- link "새 문서" [ref=f6e18] [cursor=pointer]:
|
||||
- /url: /studio/documents/new
|
||||
- generic [ref=f6e19]:
|
||||
- link "공개 사이트 보기" [ref=f6e20] [cursor=pointer]:
|
||||
- /url: /
|
||||
- button "로그아웃" [ref=f6e21]
|
||||
- main [ref=f6e22]:
|
||||
- generic [ref=f6e23]:
|
||||
- generic [ref=f6e24]:
|
||||
- generic "현재 문서" [ref=f6e25]:
|
||||
- generic [ref=f6e26]: CASE
|
||||
- generic [aria-hidden] [ref=f6e27]: ·
|
||||
- generic [ref=f6e28]: v1
|
||||
- complementary [ref=f6e29]:
|
||||
- heading "작업 상태" [level=2] [ref=f6e30]
|
||||
- status "편집 상태" [ref=f6e31]: 저장됨
|
||||
- generic [ref=f6e33]:
|
||||
- button "저장" [disabled] [ref=f6e34]
|
||||
- button "게시" [ref=f6e35]
|
||||
- main "문서 편집" [ref=f6e36]:
|
||||
- region "문서 기본 정보" [ref=f6e37]:
|
||||
- generic [ref=f6e39]: 검증 기록
|
||||
- heading "제목 없는 작업본" [level=1] [ref=f6e40]:
|
||||
- generic [ref=f6e41]:
|
||||
- generic [ref=f6e42]: 제목
|
||||
- textbox "제목" [ref=f6e43]:
|
||||
- /placeholder: 제목을 입력하세요
|
||||
- generic [ref=f6e44]:
|
||||
- generic [ref=f6e45]: 요약
|
||||
- textbox "요약" [ref=f6e46]:
|
||||
- /placeholder: 이 기록에서 다루는 핵심을 한두 문장으로 적어 주세요.
|
||||
- generic [ref=f6e47]:
|
||||
- generic [ref=f6e48]: 목록 카드에는 약 90자까지 보입니다.
|
||||
- generic [aria-hidden] [ref=f6e49]: 0 / 2000
|
||||
- group [ref=f6e50]:
|
||||
- generic "속성 프로젝트 없음 · 주제 없음" [ref=f6e51] [cursor=pointer]:
|
||||
- generic [ref=f6e52]: 속성
|
||||
- generic [ref=f6e53]: 프로젝트 없음 · 주제 없음
|
||||
- generic [aria-hidden] [ref=f6e54]: 접기
|
||||
- generic [ref=f6e55]:
|
||||
- generic [ref=f6e56]:
|
||||
- generic [ref=f6e57]: 프로젝트
|
||||
- group [ref=f6e59]:
|
||||
- generic "Project" [ref=f6e60] [cursor=pointer]:
|
||||
- generic [ref=f6e61]: 프로젝트 없음
|
||||
- generic [aria-hidden] [ref=f6e62]: ⌄
|
||||
- generic [ref=f6e63]:
|
||||
- generic [ref=f6e64]: 주제
|
||||
- group [ref=f6e66]:
|
||||
- generic "Topic" [ref=f6e67] [cursor=pointer]:
|
||||
- generic [ref=f6e68]: 주제 없음
|
||||
- generic [aria-hidden] [ref=f6e69]: ⌄
|
||||
- generic [ref=f6e70]:
|
||||
- generic [ref=f6e71]: URL 이름
|
||||
- generic [ref=f6e72]:
|
||||
- generic [aria-hidden] [ref=f6e73]: /
|
||||
- textbox "slug" [ref=f6e74]:
|
||||
- /placeholder: 비우면 제목에서 자동 생성
|
||||
- generic [ref=f6e75]: 직접 정하지 않아도 저장할 때 제목을 기준으로 만들어집니다.
|
||||
- group [ref=f6e76]:
|
||||
- generic "연결된 기록 필요할 때 추가 +" [ref=f6e77] [cursor=pointer]:
|
||||
- generic [ref=f6e78]: 연결된 기록
|
||||
- generic [ref=f6e79]: 필요할 때 추가
|
||||
- text: +
|
||||
- text: +
|
||||
- status [ref=f6e80]
|
||||
- region [ref=f6e81]:
|
||||
- generic [ref=f6e82]:
|
||||
- paragraph [ref=f6e83]: CASE
|
||||
- heading "문제와 검증" [level=2] [ref=f6e84]
|
||||
- paragraph [ref=f6e85]: 문제와 결론을 먼저 고정하고, 그 사이의 검증 과정을 본문 블록으로 이어서 작성합니다.
|
||||
- generic [ref=f6e86]:
|
||||
- generic [ref=f6e87]:
|
||||
- generic [ref=f6e88]: 문제
|
||||
- textbox "문제" [ref=f6e89]:
|
||||
- /placeholder: 어떤 현상이 문제였는지 한 문단으로 적어 주세요.
|
||||
- generic [ref=f6e90]:
|
||||
- generic [ref=f6e91]: 결론
|
||||
- textbox "결론" [ref=f6e92]:
|
||||
- /placeholder: 검증을 통해 무엇을 확인했는지 적어 주세요.
|
||||
- group [ref=f6e93]:
|
||||
- generic "검증 세부정보 0개 입력됨" [ref=f6e94] [cursor=pointer]:
|
||||
- generic [ref=f6e95]: 검증 세부정보
|
||||
- generic [ref=f6e96]: 0개 입력됨
|
||||
- generic [ref=f6e97]:
|
||||
- generic [ref=f6e98]:
|
||||
- generic [ref=f6e99]:
|
||||
- text: 본문
|
||||
- paragraph [ref=f6e100]: 작성 화면이 곧 문서입니다. 빈 블록에서 / 를 입력해 제목·목록·코드 블록을 추가할 수 있습니다.
|
||||
- generic [ref=f6e101]:
|
||||
- button "본문에 자료 넣기" [ref=f6e103]
|
||||
- generic [ref=f6e104]:
|
||||
- generic [ref=f6e105]: 업로드 종류
|
||||
- combobox "업로드 종류" [ref=f6e106]:
|
||||
- option "이미지" [selected]
|
||||
- option "다이어그램"
|
||||
- option "첨부파일"
|
||||
- button "Asset 업로드" [ref=f6e107]: 업로드
|
||||
- region "본문" [ref=f6e108]:
|
||||
- generic [ref=f6e110]:
|
||||
- generic "텍스트 블록 작업" [ref=f6e111]:
|
||||
- button "1번째 블록 메뉴" [ref=f6e112]: ⋮⋮
|
||||
- textbox "1번째 텍스트" [ref=f6e114]:
|
||||
- /placeholder: 내용을 입력하거나 / 를 눌러 블록을 추가하세요
|
||||
- generic "1번째 블록 순서와 삭제":
|
||||
- button "위로 이동" [disabled]: ↑
|
||||
- button "아래로 이동" [disabled]: ↓
|
||||
- button "블록 삭제": 삭제
|
||||
- button "+ 블록 추가" [ref=f6e115]
|
||||
- paragraph [ref=f6e116]: 빈 블록에서 / 를 입력하면 제목·목록·코드 같은 블록으로 바꿀 수 있습니다.
|
||||
- paragraph [ref=f6e117]: 검증 기록 작업본을 만들었습니다.
|
||||
@@ -0,0 +1,135 @@
|
||||
- generic [ref=f6e3]:
|
||||
- link "본문으로 건너뛰기" [ref=f6e4] [cursor=pointer]:
|
||||
- /url: "#main-content"
|
||||
- banner [ref=f6e5]:
|
||||
- generic [ref=f6e6]:
|
||||
- link "TechLog Studio" [ref=f6e7] [cursor=pointer]:
|
||||
- /url: /studio
|
||||
- text: TechLog
|
||||
- generic [ref=f6e8]: Studio
|
||||
- navigation "Studio 주 탐색" [ref=f6e10]:
|
||||
- generic [ref=f6e11]:
|
||||
- link "작업" [ref=f6e12] [cursor=pointer]:
|
||||
- /url: /studio/documents
|
||||
- link "구조" [ref=f6e13] [cursor=pointer]:
|
||||
- /url: /studio/taxonomy
|
||||
- link "자료" [ref=f6e14] [cursor=pointer]:
|
||||
- /url: /studio/assets
|
||||
- link "게시" [ref=f6e15] [cursor=pointer]:
|
||||
- /url: /studio/publications
|
||||
- generic [ref=f6e16]:
|
||||
- link "작업본" [ref=f6e17] [cursor=pointer]:
|
||||
- /url: /studio/documents
|
||||
- link "새 문서" [ref=f6e18] [cursor=pointer]:
|
||||
- /url: /studio/documents/new
|
||||
- generic [ref=f6e19]:
|
||||
- link "공개 사이트 보기" [ref=f6e20] [cursor=pointer]:
|
||||
- /url: /
|
||||
- button "로그아웃" [ref=f6e21]
|
||||
- main [ref=f6e22]:
|
||||
- generic [ref=f6e23]:
|
||||
- generic [ref=f6e24]:
|
||||
- generic "현재 문서" [ref=f6e25]:
|
||||
- generic [ref=f6e26]: CASE
|
||||
- generic [aria-hidden] [ref=f6e27]: ·
|
||||
- generic [ref=f6e28]: v2
|
||||
- complementary [ref=f6e29]:
|
||||
- heading "작업 상태" [level=2] [ref=f6e30]
|
||||
- status "편집 상태" [ref=f6e31]: 저장됨
|
||||
- generic [ref=f6e33]:
|
||||
- button "저장" [disabled] [ref=f6e34]
|
||||
- button "게시" [ref=f6e35]
|
||||
- main "문서 편집" [ref=f6e36]:
|
||||
- region "문서 기본 정보" [ref=f6e37]:
|
||||
- generic [ref=f6e39]: 검증 기록
|
||||
- heading "zz 시험 작업본 — 지울 것" [level=1] [ref=f6e118]:
|
||||
- generic [ref=f6e41]:
|
||||
- generic [ref=f6e42]: 제목
|
||||
- textbox "제목" [ref=f6e43]:
|
||||
- /placeholder: 제목을 입력하세요
|
||||
- text: zz 시험 작업본 — 지울 것
|
||||
- generic [ref=f6e44]:
|
||||
- generic [ref=f6e45]: 요약
|
||||
- textbox "요약" [ref=f6e46]:
|
||||
- /placeholder: 이 기록에서 다루는 핵심을 한두 문장으로 적어 주세요.
|
||||
- generic [ref=f6e47]:
|
||||
- generic [ref=f6e48]: 목록 카드에는 약 90자까지 보입니다.
|
||||
- generic [aria-hidden] [ref=f6e49]: 0 / 2000
|
||||
- group [ref=f6e50]:
|
||||
- generic "속성 프로젝트 없음 · 주제 없음" [ref=f6e51] [cursor=pointer]:
|
||||
- generic [ref=f6e52]: 속성
|
||||
- generic [ref=f6e53]: 프로젝트 없음 · 주제 없음
|
||||
- generic [aria-hidden] [ref=f6e54]: 접기
|
||||
- generic [ref=f6e55]:
|
||||
- generic [ref=f6e56]:
|
||||
- generic [ref=f6e57]: 프로젝트
|
||||
- group [ref=f6e59]:
|
||||
- generic "Project" [ref=f6e60] [cursor=pointer]:
|
||||
- generic [ref=f6e61]: 프로젝트 없음
|
||||
- generic [aria-hidden] [ref=f6e62]: ⌄
|
||||
- generic [ref=f6e63]:
|
||||
- generic [ref=f6e64]: 주제
|
||||
- group [ref=f6e66]:
|
||||
- generic "Topic" [ref=f6e67] [cursor=pointer]:
|
||||
- generic [ref=f6e68]: 주제 없음
|
||||
- generic [aria-hidden] [ref=f6e69]: ⌄
|
||||
- generic [ref=f6e70]:
|
||||
- generic [ref=f6e71]: URL 이름
|
||||
- generic [ref=f6e72]:
|
||||
- generic [aria-hidden] [ref=f6e73]: /
|
||||
- textbox "slug" [ref=f6e74]:
|
||||
- /placeholder: 비우면 제목에서 자동 생성
|
||||
- text: zz-siheom-jakeobbon-jiul-geos
|
||||
- generic [ref=f6e75]: 직접 정하지 않아도 저장할 때 제목을 기준으로 만들어집니다.
|
||||
- group [ref=f6e76]:
|
||||
- generic "연결된 기록 필요할 때 추가 +" [ref=f6e77] [cursor=pointer]:
|
||||
- generic [ref=f6e78]: 연결된 기록
|
||||
- generic [ref=f6e79]: 필요할 때 추가
|
||||
- text: +
|
||||
- text: +
|
||||
- status [ref=f6e80]
|
||||
- region [ref=f6e81]:
|
||||
- generic [ref=f6e82]:
|
||||
- paragraph [ref=f6e83]: CASE
|
||||
- heading "문제와 검증" [level=2] [ref=f6e84]
|
||||
- paragraph [ref=f6e85]: 문제와 결론을 먼저 고정하고, 그 사이의 검증 과정을 본문 블록으로 이어서 작성합니다.
|
||||
- generic [ref=f6e86]:
|
||||
- generic [ref=f6e87]:
|
||||
- generic [ref=f6e88]: 문제
|
||||
- textbox "문제" [ref=f6e89]:
|
||||
- /placeholder: 어떤 현상이 문제였는지 한 문단으로 적어 주세요.
|
||||
- generic [ref=f6e90]:
|
||||
- generic [ref=f6e91]: 결론
|
||||
- textbox "결론" [ref=f6e92]:
|
||||
- /placeholder: 검증을 통해 무엇을 확인했는지 적어 주세요.
|
||||
- group [ref=f6e93]:
|
||||
- generic "검증 세부정보 0개 입력됨" [ref=f6e94] [cursor=pointer]:
|
||||
- generic [ref=f6e95]: 검증 세부정보
|
||||
- generic [ref=f6e96]: 0개 입력됨
|
||||
- generic [ref=f6e97]:
|
||||
- generic [ref=f6e98]:
|
||||
- generic [ref=f6e99]:
|
||||
- text: 본문
|
||||
- paragraph [ref=f6e100]: 작성 화면이 곧 문서입니다. 빈 블록에서 / 를 입력해 제목·목록·코드 블록을 추가할 수 있습니다.
|
||||
- generic [ref=f6e101]:
|
||||
- button "본문에 자료 넣기" [ref=f6e103]
|
||||
- generic [ref=f6e104]:
|
||||
- generic [ref=f6e105]: 업로드 종류
|
||||
- combobox "업로드 종류" [ref=f6e106]:
|
||||
- option "이미지" [selected]
|
||||
- option "다이어그램"
|
||||
- option "첨부파일"
|
||||
- button "Asset 업로드" [ref=f6e107]: 업로드
|
||||
- region "본문" [ref=f6e108]:
|
||||
- generic [ref=f6e110]:
|
||||
- generic "텍스트 블록 작업" [ref=f6e111]:
|
||||
- button "1번째 블록 메뉴" [ref=f6e112]: ⋮⋮
|
||||
- textbox "1번째 텍스트" [ref=f6e114]:
|
||||
- /placeholder: 내용을 입력하거나 / 를 눌러 블록을 추가하세요
|
||||
- generic "1번째 블록 순서와 삭제":
|
||||
- button "위로 이동" [disabled]: ↑
|
||||
- button "아래로 이동" [disabled]: ↓
|
||||
- button "블록 삭제": 삭제
|
||||
- button "+ 블록 추가" [ref=f6e115]
|
||||
- paragraph [ref=f6e116]: 빈 블록에서 / 를 입력하면 제목·목록·코드 같은 블록으로 바꿀 수 있습니다.
|
||||
- paragraph [ref=f6e117]: 버전 2으로 저장했습니다.
|
||||
Reference in New Issue
Block a user