책소개
파이썬은 대부분 시스템/네트워크 장비에 기본적으로 설치되어 있어서 어렵지 않게 바로 사용할 수 있다. 또한, 다양한 라이브러리를 기본으로 제공하고 있어, 이를 통해 사용자 환경에 맞게 조합하고 구성해 ‘자동화’와 같은 사용자의 목적에 맞는 코드를 작성할 수 있다. 이 책에서는 시스템/네트워크 장비에서 실제 사용하는 파이썬 코드의 기본적인 문법과 꼭 필요한 배경 지식을 설명하고 있다. 또한 시스템/네트워크 장비가 없는 독자를 위해서도 가능한 한 직접 실습할 수 있는 환경을 구축하여 학습할 수 있도록 구성했다.
저자소개
시스템/네트워크 IT 벤더의 경험 이후, 메가존 GCP 클라우드 팀에서 쿠버네티스와 연관된 모든 프로젝트에 대한 Tech Advisor 및 Container Architecture Design을 제공하고 있습니다. 그 외에 페이스북 ‘IT 인프라 엔지니어 그룹’과 '앤서블 유저그룹'의 운영진을 맡고 있으며, 오픈 소스 컨트리뷰터로도 활동하고 있습니다.
그 외에 가지고 있는 지식을 공유하는 것을 좋아하여, 인프런/유데미에서 앤서블 및 쿠버네티스에 관한 강의를 기재하고 있으며, 또한 아는 지식을 문서로 남겨야 한다고 생각하기에 책( 『시스템/네트워크 관리자를 위한 파이썬 실무 프로그래밍』, 『우아하게 앤서블』), 『컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커』(길벗) 이 있고, IT 잡지에 기고문을 쓰는 활동도 함께하고 있습니다.
-인프런: https://www.inflearn.com/users/@kubernetes
-링크드인: https://www.linkedin.com/in/hoonjo/
-깃허브: https://github.com/sysnet4admin/
목차
▣ 01장: 시스템/네트워크 업무 개론1.1 데이터센터란?___데이터센터의 환경 ___데이터센터의 데이터 흐름 ___데이터센터의 장점 1.2 시스템 엔지니어의 업무___1.2.1서버 소개___1.2.2서버의 하드웨어 구성 요소 ______CPU______메모리______시스템 보드______네트워크 카드______레이드 카드___1.2.3운영체제의 역할 ______운영체제가 해야 하는 가장 중요한 일 ______운영체제가 해야 하는 기본적인 일______모니터링 지표 생성 ___1.2.4 시스템 엔지니어에게 추가로 요구되는 사항 ___가상화되어 가는 환경 ___서버와 연결되는 되는 스위치 1.3 네트워크 엔지니어의 업무___1.3.1네트워크 장비의 기본 기능______라우팅______스위칭___1.3.2네트워크 프로토콜______네트워크 계층별 프로토콜의 이해 ______다양한 프로토콜의 이해 ___1.3.3장비별 특성 ______네트워크 피처의 용법______여러 가지 분석 도구 ___1.3.4네트워크 엔지니어에게 추가로 요구되는 사항 ______셸(Shell) ______샌(SAN) ______가상 네트워크와 용도별 서버의 데이터 흐름에 대한 이해 1.4 서버 엔지니어와 네트워크 엔지니어의 차이점 ______네트워크 장치와 서버의 CPU에 대한 접근 ______콘솔 포트와 매니지먼트 포트 ______OID(Object Identifier) ______구성품 1.5 데이터센터 엔지니어의 미래 ▣ 02장: 실습 환경 구성2.1 실습 장비 소개___2.1.1네트워크 제품군 ______시스코 넥서스 9000 시리즈(N9000) ______시스코 넥서스 5000 시리즈(N5000) ___2.1.2시스템 제품군 ______시스코 UCS 랙 서버______시스코 UCS 블레이드 서버 ______하이퍼바이저와 가상 머신 ______시스템 제품군 요약 2.2 실습 장비가 없는 경우를 위한 환경 구성___버추얼박스 설치___버추얼박스의 실행과 구성 ___버추얼박스에 하드웨어 가상 시스템 만들기 ___가상 머신에 센트OS 설치하기 ___가상 머신에 하드웨어 네트워크 장치 구성___가상 머신의 네트워크 주소 구성하기 ___터미널 접속 프로그램 설치2.3 윈도우용 파이썬 설치하기___파이썬 내려받기 ___파이썬 설치하기 ▣ 03장: 파이썬으로 실습하는 시스템 관리 - 도입부3.1 가벼운 마음으로 시작하는 예제___3.1.1 [클라이언트] 윈도우 실행 예제______platform 모듈을 통한 시스템 정보 확인______파이썬으로 도메인 이름에 대한 IP정보 확인하기___3.1.2 [운영체제] 리눅스 실행 예제______VI로 파일을 생성하고 생성한 파이썬 파일 실행하기______파일 내용을 읽고 화면에 출력하기 ___3.1.3 [운영체제] 관리 서버에서 파이썬 서버로 쉽게 접속하기 3.2 조금 응용하기___3.2.1 [운영체제] 가상 메모리 통계(vmstat)를 엑셀로 보내기 ______시스템에 외부 모듈 적용하기 ______간단한 데이터를 엑셀로 내보내기 ______vmstat 출력 정보를 엑셀로 내보내기 ______엑셀 파일의 헤더 조정하기 ___3.2.2 [운영체제] 리눅스의 로그 모니터링______리눅스의 로그______메시지 로그에서 찾고 싶은 로그 출력하기 ______리눅스 로그에서 찾고 싶은 로그 출력하기(1차 수정)______리눅스 로그에서 찾고 싶은 로그 출력하기(2차 수정)______리눅스 로그에서 찾고 싶은 로그 출력하기(3차 수정)______리눅스 로그에서 찾고 싶은 로그 출력하기(4차 수정)______리눅스 로그에서 찾고 싶은 로그 출력하기(5차 수정)______메시지 로그에 특정 문자열이 나타나면 알람 표시하기 ______메시지 로그에 특정 문자열이 나타나면 알람 표시하기(1차 수정)______메시지 로그에 특정 문자열이 나타나면 알람 표시하기(2차 수정)___예외 사항 처리 ______잘못된 값을 입력했을 때 다시 정확한 값을 입력하도록 유도하기___자주 쓰이는 VI 명령어▣ 04장: 파이썬으로 실습하는 시스템 관리 - 응용편4.1 [서버] 간편한 RAID 로그 수집기 ___RAID Tool 설치 및 실행 예제___RAID에 시각 정보 출력 ___RAID 버전 정보 출력 ___다양한 RAID 정보를 선택해서 출력하기___RAID 로그를 압축해서 출력하기___장애가 발생한 디스크를 레이드 구성에서 안전하게 제거하기 4.2 [서버] IPMI를 이용한 상태 모니터링___IPMI Tool 설치 및 실행 예제___IPMI 명령어를 통해 시스템 정보 확인하기___IPMI 명령 실행 결과에서 중복된 내용 제거하기___다양한 IPMI 명령어를 선택해서 실행하기___팬 속도와 온도 센서에 관한 트렌드 데이터를 출력하기___팬 속도와 온도 센서에 관한 트렌드 데이터를 파일로 작성하기4.3 [공통] 쉽고 빠른 OID 테스트 환경 구축 ___snmpwalk 설치 및 실행 시 사용자 입력을 최소화 하기4.4 [운영체제] 사용자별 조건에 따른 작업 데이터 출력___일반 사용자 권한을 가진 계정 리스트 가져오기___일반 사용자의 이력 출력하기___사용자별 최근 이력 출력하기___사용자별로 가장 많이 사용한 명령어 이력 출력하기___특정 시간대에 사용한 이력 출력하기4.5 [네트워크] 연결된 장비에 관한 정보를 자동으로 기록하기 ___CDP로 얻은 정보를 인터페이스의 설명에 작성하기___MAC을 통해 얻은 정보를 인터페이스 설명에 작성하기 4.6 [네트워크] 인터페이스별 사용량 모니터링___인터페이스의 포트 정보 추출하기 ___인터페이스의 레이트 값을 추가 추출하기 ___일정 시간이 지난 후 변화된 Input/Output 레이트 값을 조회하기___인터페이스별 변화된 레이트 값을 그래프로 그리기예외 사항 처리 ___좀 더 세밀하게 정확한 값을 입력하도록 유도하기 ▣ 05장: 파이썬과 다른 언어를 함께 사용하기5.1 [운영체제&네트워크] 배시와 파이썬 ___diff를 이용해 인터페이스 변화를 감지하고 파일에 기록하기5.2 [네트워크] 스케줄러와 파이썬 ___스케줄러를 통해 인터페이스 설명을 자동으로 갱신하기5.3 [운영체제] 크론과 파이썬___크론을 통해 시스템 상태를 주기적으로 기록하기 5.4 [네트워크] CoPP 모니터링 ___현재 패킷 드랍량과 CoPP 정보 출력하기___드랍되는 패킷의 증가량과 CoPP 정보를 로그에 기록하기5.5 [네트워크] EEM과 파이썬 ___조건은 EEM이 실행은 파이썬으로 5.6 [네트워크] EEM과 파이썬 응용 ___FTP로 이미지 내려받기___내려받은 이미지 파일로 부트 환경을 자동으로 재 구성하기___EEM을 통해서 이미지 업그레이드 자동화 구현하기예외 사항 처리 ___다양한 환경에서도 스스로 이해하고 동작하기 ▣ 06장: 시스코 SDK를 이용한 시스템 관리6.1 사전 구성___환경 변수 설정 ___ucsmsdk 설치 ___UCS 매니저 에뮬레이터 설치 6.2 시스코 SDK를 활용한 실습 ___6.2.1 UCS 매니저 에뮬레이터를 이용한 파이썬 실습 ______UCS 매니저 에뮬레이터 접속 ______UCS 매니저 에뮬레이터의 그래픽 모드에 접속하기 ______설정 파일 백업 및 복원______UCS 이미지 파일을 확인하고 내려받기 ______블레이드 서버의 이름 변경하기 ______UCS 매니저 에뮬레이터의 설정 추가/변경/삭제하기 ___6.2.2 실제 UCS 매니저를 이용한 실습 ______UCS 매니저가 관리하는 블레이드 서버에 vKVM으로 접속______UCS 블레이드 시스템의 로그 파일 수집 ___6.2.3 실제 UCS 랙 서버를 이용한 실습 ______설정 파일 백업 및 복구 ______UCS 랙 서버에 vKVM으로 접속하기 ______UCS 랙 서버의 로그 파일 수집 예외 사항 처리 ___틀린 부분만 다시 입력받기▣ 07장: 파이썬으로 실습하는 시스템 관리 - 종합7.1 원격지 시스템에 대한 대량 작업 ___7.1.1 [공통] 시스템 종류 자동인식______Paramiko의 환경 구성 ______paramiko를 이용한 SSH 접속 테스트______SSH로 접속해서 간단한 명령어 수행하기______SSH로 접속해서 시스템 종류 체크하기___7.1.2원격지 시스템에 명령어 실행 ______SSH로 접속해서 시스템별 상태 조회 - CPU/메모리/디스크______SSH로 접속해서 시스템별 정보 파악 - 관리 네트워크/IP 경로 ______SSH로 접속해서 수집한 내용을 파일로 만들기___7.1.3[공통] 여러 개의 원격지에 명령어 실행 ______여러 개의 원격지 시스템에 접속해서 한 번에 정보 수집하기 7.2 스마트 로그 수집기___7.2.1[운영체제&네트워크] CPU 이상 상태 감지기 ______SAP HANA의 CPU 사용률 모니터링하기______네트워크 장비의 CPU 사용률 모니터링하기___7.2.2[네트워크] 인터페이스 상태 자동 감지 및 문제점 추적기______감지 조건 및 받아야 할 로그를 선택할 UI만들기______인터페이스 에러코드의 상태 값을 UI에 적용하기______특정 시간단위로 변화되는 문제점을 추적하고 로그 남기기___7.2.3 [운영체제&네트워크] 똑똑한 패킷 캡처 툴 만들기 ______tcpdump의 다양한 옵션을 이용한 간단한 패킷 캡처 툴 만들기 ______특정 조건에 도달하면 패킷 수집을 중지하고 로그 작성하기______ethanalyzer의 다양한 옵션을 이용한 간단한 패킷 캡처 툴 만들기 ______특정 로그가 발생했을 때 ethanalyzer의 전후 패킷 캡처하기 7.3 유용한 기능 추가 ___7.3.1 설정 파일 백업을 메일로 전송하기 ______특정 파일을 메일로 전송하기______UCS 매니저 에뮬레이터 설정 백업 파일을 메일로 바로 전송하기___7.3.2 수집된 정보를 엑셀의 그래프 차트로 출력하기______차트를 만드는 샘플 작성하기 ______UCS 랙 서버의 FAN 상태를 차트로 그리기 ___7.3.3 접속 정보를 기억하고 있는 똑똑한 vKVM 실행 프로그램___7.3.4 자동으로 구성 파일을 백업하고 변경 사항을 확인하기 ______네트워크 구성 파일을 변경 시도 시에만 자동으로 백업하기______기간별 변경 사항 추적하기 ______기간별 변경 사항 추적 및 분석하기 7.4 확장된 예외 사항 처리 ___예외적인 프로세스 모니터링 ___파이썬 실행 도움말 만들기 ▣ 부록: Cisco UCS vKVM 접속 도우미 만들기1. PyQt를 설치해 GUI 구성하기___PyQt 설치하기___PyQt Designer를 실행해 UI 만들기2. PyQt로 만든 GUI 실행하기___PyQt에서 작성한 GUI 파일을 파이썬 코드로 만들기___변환된 PyQt GUI 파이썬 코드 실행하기___PyQt Designer로 만든 GUI 코드를 실행하는 방법3. 환경에 따라 다르게 동작하는 GUI 만들기___환경 설정에 따라 다른 언어로 나타나는 GUI 만들기___환경에 따라 다른 언어의 리소스를 GUI에 적용하기___위젯의 문자열 바꾸기4. vKVM을 실행하는 GUI 만들기___위젯 이벤트 핸들링___위젯에 포함된 항목 핸들링하기___팝업 메시지 박스 만들기5. EXE 실행 파일 만들기