KTH 자동화툴검토보고서 Puppet 2012-09-07 본문서는 INFRA 자동화 (Automation) Tool 의하나인 Puppet 에대하여검토한보고서임. Puppet labs 의내용을근간으로함.
내용 1. Puppet 이란무엇인가?... 2 2. Puppet 어떻게동작하는가?... 3 3. 재사용구성모듈정의... 4 4. 원하는상태적용... 5 첨부 1. open source 와 commercial software 의차이점... 6 첨부 2. Puppet 과 Chef 비교... 8 페이지 1 / 9
1. Puppet 이란무엇인가? Puppet은 IT자동화소프트웨어로시스템관리자가인프라의라이프사이클, 프로비져닝, 관리및관련규정준수를위한패치구성등을관리할수있게합니다. Puppet을사용하면, 반복되는업무를쉽게자동화할수있게해주며, 빠르게중요한어플리케이션을전개할수있게합니다. 그리고선행적으로변경및규모의확장 (10대 ~1000대의 on-premise 또는 cloud 환경에서 ) 등을관리할수있도록해줍니다. Puppet 은 open source 와상업적소프트웨어로서모두사용가능합니다. 그리고회사 ( 조직 ) 을위하여무엇이옳은지결정하기위한차 이점을여기에서볼수있습니다. ( 첨부 1. open source 와 commercial software 의차이점 참조 ) 페이지 2 / 9
2. Puppet 어떻게동작하는가? Puppet 은선언적이고, 모델베이스로 IT 자동화접근하고있습니다. 1 Define: 선언적인 Puppet 의 configuration language 을이용하여 인프라구성의상태를정의한다. 2 Simulate: 구성을적용하기전에 구성변경을시뮬레이트한다. 3 Enforce: 원하는상태로자동적으 로배포 ( 전개 ) 하고, 그어떤구성이든 정정한다. 4 Report: 실제상태와원하는상태 사이의차이점과원하는상태그리고 변경내역등을보고한다. 페이지 3 / 9
3. 재사용구성모듈정의 인프라의원하는상태를정의하기위하여, 300개이상의미리만들어진것으로부터선택할수있다. 이것은 Pupet Forge 1 에서무료로다운로드가능한구성모듈들이다. 그렇지않으면, 만약당신이 Puppet의 configuration language를이용하여특별한요구사항을만족해야하는경우라면 Puppet Lab의온라인마켓이그대안이다. 한번정의되면, 당신은이것을물리서버가상서버크라우드환경등에서재사용할수있다. 게다가, 당신은완전한 application 구성스택 ( 공유되는일반구성 ) 을생성하기위하여 configuration module을조합할수있다. 1 Puppet Forge 는 Puppet 과 puppet Enterprise 를위한모듈을공유하는곳이다. (http://forge.puppetlabs.com) 페이지 4 / 9
4. 원하는상태적용 Configuration Module 을배포한이후에, 각각의 node 에있 는 Puppet Agent 는 Puppet Master server 와자동적으로원 하는상태를적용하기위하여정기적으로통신한다. 1 Puppet Agent 는 Facts 나상태데이터를 Puppet Master Server 로보낸다. 2 Facts 를이용하여 Puppet Master Server 는 Catalog 나 적용될상세데이터를컴파일하고, 이를다시다시 Puppet Agent 에게보내다. 3 원하는상태로또는복원하기위한변경후에 ( no-op mode 에서는단순히변경에대하여시뮬레팅함 ) Puppet Agent 는완전한 Report 를 Puppet Master 에게보낸다. 4 Report 는다른 IT System 과통합을위한 open APIs 통 하여모두접근가능하다. 페이지 5 / 9
5. Puppet & Chef 무엇을사용할것인가? Puppet 과 Chef 중무엇을사용하는것이좋을까? Puppet 과 Chef 모두 ruby 을기반으로한 System Automation Tool 이다. 거의기능 이유사하며, Puppet 의단점을극복하기위하여 Chef 가탄생하게되었다. 그래도그역사만큼의안정성부분은 Puppet 이다소유리하 며, 그역사만큼많은사용자 ( 기업체 ) 에서이를활용하고있다. Chef 역시꾸준히이를활용하는사용자가증가하는추세이며, KTH 의 DevOp 팀역시 Chef 를기반으로시스템자동화를추진중에있다. 둘중하나를선택하여집중하는것이현재로서는가장빠르게실 환경에적용하고예상되지않은문제를해결하는데소요할시간을절약하는것이라판단한다. Puppet 이비록 System Administrator 에 게그활용을위한접근성이좋은것으로판단되고있고, 사용법역시단순한것으로검토되고있다. 그러나, Puppet 은 Open Source 와 commercial Software 모두존재하며, 그차이점은지원사항의많고적음에있다. ( 참조 1. Open source 와 commercial software 의차 이점참조 ) 결정적인사유는이를쉽게광범위하게활용하기위하여서는 commercial software 가적합한상황이며, 이는 10 Node (Server 10 대 ) 까지는무료로이용할수있어자원관리를위한 License Cost 가예상됨에따라, 향후활용성을감안한비용경제적인 측면에서 Chef가보다적합하다고판단한다. ( 첨부2. Puppet & Chef 비교참조 2 ) 구분 Puppet Chef 비고 편의성 ( 조작편의 ) 안정성 ( 레퍼런스, 커뮤니티 ) 경제성 ( 비용 ) Open Source를검토한가장큰사유는경제적인이용에있음 KTH조직기술정렬성 DevOp팀에서 ktcloud에적용시험진행중임 2 상기 Puppet & Chef 비교는인터넷을통하여 Puppet 과 Chef 를비교한사용자의비교의견을참조하였으며, 해당컬럼의 LINK 를제시함. 페이지 6 / 9
첨부 1. open source 와 commercial software 의차이점 지원사항 Open Source Puppet Enterprise(commercial) 비고 Graphical User Interface 지원 10 Node Free (Enterprise) Provisioning Amazon EC2 지원지원 Provisioning VMware VMs Configuration management Discovery & cloning 지원 지원 Configuration management Operating systems 지원지원 Configuration management User accounts 지원 Configuration management Applications 지원지원 400+ pre-built configurations on Puppet Forge 지원지원 Orchestration Task automation Compliance Automated configuration auditing Role-Based Access Control Unified cross-platform installer of all components 지원지원지원지원 Support Web and community 지원지원 Support Option for 24 x 7 x 365 Support Defined SLA Certified by Puppet Labs engineers Pre-packaged dependencies in one directory Smooth upgrade and maintenance path 지원지원지원지원지원 페이지 7 / 9
첨부 2. Puppet 과 Chef 비교 구분 Puppet Chef 비고 언어 Ruby Ruby 시스템자동화접근관점 System Admin Developer mindset http://joerussbowman.tumblr.com/post/22817676989/chef-vs-puppet 구성요소 Agent / Master Server Client / Server / Workstation 둘다 Client Server Model, Chef 의경우조작을위한 workstation 존재 사용효율성 10 line 소요 43 line 소요 sudouser 최적화적용사례비교 http://bhuga.net/2009/09/puppet-vs-chef 구동플랫폼 Ruby 구동되는모든플랫폼 (Ruby 1.8.5 이상 ) RHEL (CentOS) 4.0 이상 Scientific Linux 4.0 이상 Oracle Linux 4.0 이상 Debian 5.0 이상 Ubuntu 8.04 LTS 이상 Fedora 15.0 이상 SUSE Linux Enterprise 11.0 이상 Gentoo Linux FreeBSD 4.7 이상 OpenBSD 4.1 이상 Mac OS X 10.4 이상 Oracle Solaris 10.0 이상 AIX 5.4 이상 HP-UX Windows Server 2003 2008 Windows 7 Ruby & CouchDB version 확인요 (Ruby 1.8.7 1.9.1 1.9.2 with SSL) RHEL CentOS 5.6+ 6.x Ubuntu (10.04+) Debian (4.0, 6.0) RHEL & CentOS (5.x 6.x) Fedora 10+ Solaris 9,10,11, Sparc Solaris 10,11 (x86 & x64) Mac OS X (10.4 10.5 10.6. 10.7) Windows 7 Windows Server 2003 R2, 2008 R2 http://bitfieldconsulting.com/puppet-vs-chef http://wiki.opscode.com/display/chef/installing+chef+server http://wiki.opscode.com/display/chef/installing+chef+client+and+chef+solo http://docs.puppetlabs.com/guides/platforms.html 페이지 8 / 9
구분 Puppet Chef 비고 상업화유 / 무상업화된 Version 있음없음 사용하는곳 Google, Red hat, Simens 등세계적대기업 88 여조직 Standford, Harvard law School 등 Opscode 등 19 개 http://bitfieldconsulting.com/puppet-vs-chef http://wiki.opscode.com/display/chef/chef+users+list 주요대학 페이지 9 / 9