LabHub

낯선 시스템 앞에서 · 첫 24시간 · 실습

만지기 전에 지도를 그린다

LabHub 에서 이어서 보기

목표

처음 보는 고객사 시스템에서 아무것도 만지기 전에 지도를 그립니다.
무엇을 요청할지, 조사 범위가 어디까지인지, 무엇이 무엇에 닿는지, 언제가
안전한지. 그리고 되돌리는 방법을 먼저 씁니다.

환경

고객사 시스템 한 벌이 /opt/data/site 에 있습니다. 여러분에게는 새
시스템이지만 고객에겐 10년 된 시스템이고, 그 사이에 아무도 기록하지 않은
의존이 쌓여 있습니다. 사본을 뜬 뒤 그 사본에서 작업합니다.

cp -r /opt/data/site /root/sitecd /root/sitels -R | head -40

받은 것은 이게 전부입니다. 구성도도 위키도 없습니다.

만들 것

inventory.txt   무엇이 있는지 + 첫날 요청할 것retention.txt   로그 보존 기간과 그것이 조사에 뜻하는 것upstream.txt    이 서비스를 부르는 쪽downstream.txt  이 서비스가 부르는 쪽shared.txt      구성도에 없는 공유 상태timing.txt      언제가 안전하지 않은가plan.md         변경 계획 — 첫 줄이 되돌리는 방법rollback.sh     실제로 되돌리는 스크립트snapshot.sh     재시작 전에 상태를 남기는 스크립트

채점 방식

7단계와 8단계는 채점기가 여러분의 스크립트를 직접 돌립니다.

rollback.sh  채점기가 설정을 일부러 바꾼 뒤 돌려서, 원본으로 돌아오는지 봅니다snapshot.sh  프로세스·메모리·열린 파일·최근 로그 네 가지가 시각과 함께 나오는지 봅니다

말만 하고 아무것도 안 하는 스크립트는 떨어집니다. 그리고 채점은 어떤
경우에도 여러분의 설정을 원래대로 되돌려 놓습니다.

단계

1. 무엇이 있는지 적고, 첫날 동시에 요청할 것을 목록으로 만듭니다.
승인 체계는 대체로 직렬이라, 첫날 전부 던져야 병렬로 돕니다.
2. 로그 보존 기간을 찾습니다. 그 값이 조사 범위를 정합니다.
3. 접근 로그의 소스 IP 로 상류를 전부 찾습니다. 몇 건씩인지도.
4. 설정에서 하류를 찾고, 무엇을 바꿀 때 하류가 위험한지 적습니다.
5. 설정 파일 둘을 비교해 공유 상태를 찾습니다.
6. crontab 에서 배치 창을 찾아 안전한 시점을 정합니다.
7. plan.mdrollback.sh — 변경 계획서의 첫 줄은 변경 내용이 아니라
되돌리는 방법입니다. 되돌리는 데 걸리는 시간과 관찰 창도.
8. snapshot.sh — 재시작 전에 상태를 남깁니다.

참고

8단계의 이유가 이 실습에서 가장 자주 잊히는 것입니다. **재시작은 증상을
지우면서 증거도 함께 지웁니다.** 재시작이 필요하더라도 그 전에 스냅샷을
남기면, 그 파일 하나가 나중에 보고서의 절반이 됩니다.

단계 8개

  1. 무엇이 있고 무엇을 요청하나
  2. 보존 기간이 조사 범위를 정한다
  3. 누가 이걸 부르는가
  4. 이것이 무엇을 부르는가
  5. 구성도에 없는 공유 상태
  6. 언제가 안전하지 않은가
  7. 되돌리기를 먼저 쓴다
  8. 재시작 전에 남긴다