퀴즈: 설치 전 사전 점검
사전 점검에서 데이터 디렉터리가 아직 없다는 것을 발견했다. 점검기가 해야 할 일로 가장 알맞은 것은?
- 디렉터리를 만들어 두고 pass 로 보고해 설치가 막히지 않게 한다
- missing 으로 관측값을 남기고 fail 로 판정하되 디렉터리는 만들지 않는다
- 판정할 수 없는 상태이므로 종료 코드 3 으로 끝낸다
- 경고로만 올리고 설치 스크립트가 알아서 만들게 한다
포트 점검을 bind 로 구현했더니, 방금 서버를 내린 포트가 계속 사용 중으로 나온다. 원인과 대처는?
- 커널 캐시 때문이므로 점검 전에 1분씩 기다리는 sleep 을 넣는다
- 0.0.0.0 대신 127.0.0.1 에 bind 하면 TIME_WAIT 와 부딪히지 않는다
- bind 는 믿을 수 없으므로 connect 가 거절될 때만 사용 중으로 본다
- 끝난 연결의 TIME_WAIT 때문이며 SO_REUSEADDR 를 켜고 bind 하면 듣는 소켓만 막힌다
python_min 이 "3.9" 이고 실행 중인 판이 3.12.3 이다. 판정이 fail 로 나왔다면 가장 가능성 높은 구현 실수는?
- 판을 문자열로 비교해 "3.12.3" 이 "3.9" 보다 작다고 계산했다
- sys.version_info 가 마이크로 판을 포함하지 않아 비교가 틀렸다
- python3 가 아니라 python 으로 실행해서 다른 판이 잡혔다
- 3.9 가 3.12 보다 나중에 나온 판이라 fail 이 맞다
여유 공간이 공급사 최소치(2048MB)는 넘지만 운영팀 기준(8192MB)보다 적다. 이 점검의 판정과 전체 종료 코드는? (다른 점검은 모두 pass)
- fail, 종료 코드 2 — 운영팀 기준을 못 넘었으므로 설치를 막는다
- pass, 종료 코드 0 — 최소치를 넘었으니 알릴 필요가 없다
- warn, 종료 코드 1 — 설치는 가능하지만 기록해 알린다
- warn, 종료 코드 3 — 판단이 애매하므로 Unknown 이다
PEM 인증서의 만료를 파이썬 표준 라이브러리 중심으로 점검하려 한다. 문서에 맞는 방법은?
- ssl.load_cert_file() 로 파일을 읽어 not_after 속성을 본다
- openssl x509 -enddate 로 notAfter 문자열을 얻어 ssl.cert_time_to_seconds 로 epoch 초로 바꾼다
- 파일의 수정 시각(mtime)에 발급 기간 365일을 더한다
- openssl x509 -checkend 0 의 출력 문구를 파싱해 남은 일수를 구한다
고객 호스트 점검 결과를 설치 담당에게 넘길 때 decision.json 에 보고서의 sha256 을 함께 적는 이유로 가장 알맞은 것은?
- 보고서 파일이 전송 중에 압축되었는지 확인하려고
- 해시가 같으면 호스트 상태도 그대로라는 보증이 되기 때문에
- 고객 보안팀이 모든 JSON 파일에 서명을 요구하기 때문에
- 판정이 어떤 보고서에서 나왔는지 묶어, 다시 점검한 보고서와 섞이지 않게 하려고