Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

안녕하세요 sysadminstudy 구글 그룹 개통했던 문태준이라고 합니다.
오랜만에 글을 적습니다.
2010년 8월까지 스터디모임을 하고 개인적으로 여러가지 일들이 있어서 손을 놓고 있었습니다.
개인홈피도 서버호스팅받던 회사가 망해서 가상호스팅으로 옮겼다가 관리가 귀찮아 손놓고 있었지요.
조만간 그동안의 여러 작업을 공유하기 위해서 개인홈피를 올릴 예정입니다.

올해초 딸쌍둥이 낳고 두달간 육아휴직도 했었는데 당분간 육아때문에 스터디모임은 직접 참석은 하지 못하겠지만 온라인으로라도 각종 정보 공유하는 작업을 하려고 합니다.

2009년 11월 스터디모임에서 공개세미나를 진행했었는데 그로부터 몇년이 지났지만 얼마나 우리나라 IT운영이 발전하거나 변했을까 궁금하기도 합니다.
http://wiki.kldp.org/wiki.php/SyadminStudyConf/20091124

요즘 한창 클라우드 컴퓨팅 이야기를 하지만 클라우드이건 물리적인 시스템이건 자동화된 인프라, 각종 도구들이 필요한건 마찬가지라는 생각이 듭니다.
해 외에서는 이미 보편화되어 있는 cfengine/puppet/chef 같은 설정관리툴, LDAP을 이용한 중앙인증시스템, kickstart와 pxe를 이용한 OS자동설치 시스템 등등 예전 논의하고 공부했던 것들이 있었는데 몇년이 지난 지금도 국내 IT 운영기술은 여전히 그대로 인 것 같습니다.

저는 현재 대략 다음의 기술들을 사용하고 있습니다. 제가 한것도 다른 사람이 한것도 다른 팀에서 한것도 있습니다.
http://wiki.kldp.org/wiki.php/SyadminStudyConf/20091124 에서 제가 발표했던 기준으로 설명드립니다.
- OS 설치 : kickstart 이용, 각 프로파일별로 파티션 및 후속 작업까지 자동화. 표준화된 하드웨어 사용하며 ipmi 세팅까지 kickstart에서 자동 설정. PXE는 대규모 설치를 할 경우에만 사용. 글로벌환경을 위하여 global cache 이용한 kickstart 서버 이용.
- Server Inventory : 자체 제작 CMDB 이용
- Identity Management : OpenLdap/AD 이용. opendalp replicaton 이용하여 각 지역의 ldap 서버에 접속하여 각 edge 에 접속함. apache, svn 등 각종 애플리케이션 인증, VPN, DRAC, 각종 내부 솔루션은 기본적으로 ldap을 이용함. 각 edge 에 접속하기 위한 gateway 서버의 경우 ldap slave 기능을 하되 각 edge 에서 직접 ldap연동을 하지 않고 gateway 서버에서 호스트 그룹별-사용자 권한별로 edge 에 접속할 수 있도록 구현함.
- Version Control : svn 이용하며 svn hook script를 이용하여 puppet 등의 변경작업을 할때 문법체크를 하고 svn slave 서버로 데이터 동기화를 함. commit 되었을 경우 담당자에게 이메일 발송함
- Configuration Management : 일부 cfengine 이용하고 기본은 puppet 을 이용함. puppet 의 경우 gslb 같은 기능을 이용하여 각 국가에서 가까운 puppet 서버에서 정보를 받아옴. 서비스단말고 시스템단의 모든 설정은 매뉴얼로 하지 않으며 puppet 모듈을 만들어서 처리함. 설정이 잘못 내려갈 것을 대비하여 edge 와 puppet 서버간의 revision 을 비교하여 적용함. 중요한 것은 "코드로 인프라 관리하기"
- Monitoring : 리눅스는 nagios 프로그램을 이용하되 운영자에게 각종 알람은 별도의 프로그램을 만들어 필요한 것만 알람을 받도록 구성
- Trending
- Email
- Applicaiton Deployment : 표준화된 배포프로그램을 자체 개발하여 사용.


기타로 다음의 같은 작업들이 있습니다.
- QA 환경구축 : 실서버 적용전 실서버와 동일한 네트워크로 구성된 곳에서 테스팅하고 확인함. 이건 기술적인 것이라기보다는 정책적인 부분이지요.
- 시스템메일을 위한 중앙이메일시스템구축 : 시스템의 각종 cron 로그는 메일링서버로 보냅니다. 개별서버차원에서 cron 메일관리하기는 힘들고 히스토리 유지가 힘들기 때문에 중앙메일링시스템을 이용합니다. 그러면 cron 에서 나오는 모든 이메일을 체크할 수 있습니다.
- 중앙로그관리시스템구축 : syslog 대신 rsyslog 를 이용하여 중앙의 로그관리서버로 보냅니다. logstach, graylog2, elasticsearch 등을 이용하여 실시간으로 로그를 받고 필터링하여 필요하면 알람을 줄 수도 있고 문제해결을 하기도 합니다. 예를 들어 각 edge 에 접속하는 사용자의 모든 명령도 중앙로그서버로 보내기 때문에 로그서버에서 실시간으로 특정 사용자가 무슨 작업을 하는지 확인 가능합니다. (이 경우 bash 를 패치하여 bash 에서 syslog 로 로그를 남기도록 설정해야 함)
- OS : CentOS 를 커스터마이징하여 사용을 하되 각종 rpm 패키지 설치등은 운영자가 임의로 하지 않고 자체 yum repo만 사용하도록 되어 있습니다. OS 배포본 관리, RPM 관리의 어려움은 있지만 단일하게 RPM을 관리하는 장점은 있습니다. bash, openssh 등은 일부 소스차원에서 패치하여 각종 접속기록을 남기도록 구성하고 있습니다.

장황하게 설명을 하였지만 앞으로 계속 공유하는 작업 진행하겠습니다.

작은 정보라도 공유를 해주시면 더욱 좋겠습니다.

Labels
  • No labels