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

문서소개

이 문서는 Puppet 및 Configuration management 프로그램에 대해서 간단한 소개를 하는 것이 목적입니다.

Continuous delivery (배포 자동화)

출처 : “성공으로 이끄는 팀 개발 실천 기술"

Automated Provisioning

 

 

    

 

 

Configuration Management

  • 왜 configuration managment 가 필요한가? : 코드로 인프라 관리, 재사용성, 표준화 등등
  • configuration managment 프로그램 종류 : cfengine, puppet, chef, etc

Puppet 간단한 기능 확인

  • Puppet beginner guide (korean) 참고하여 간단한 데모 보여줄 예정임.
  • type : package, file, service, user, exec, cron 등
  • 템플릿 이해하기
  • facts
  • class, define
    • parameterized class
  • module
  • node
  • role & profile

Puppet 관련 프로그램 및 부가 기능

  • Pro Puppet 주요 부분 요약 참고.
  • Foreman UI를 이용하여 간단한 데모만 할 예정임. Foreman 은 ENC, report 기능을 가진 puppet/chef UI 임. 
  • ENV 활용하기 : dev, staging, prod
  • Scaling Puppet 
  • External Node Classificatin (ENC)
  • Exporting and Storing Configuration
  • Puppet Consoles : Foreman, PuppetDashboard
  • Tools and Integration
    • Puppet Forge
    • Module 의존성 체크
    • 모듈 테스팅 하기
    • IDE 프로그램
  • Hiera : code 와 data 분리, File, JSON, MySQL, gpg 등 다양한 backend 지원
  • PuppetDB 소개
  • Puppet 이용시 몇가지 팁
    • 부하 분산하기
      • Puppet master 서버를 부하 분산하여 실행을 함.
      • puppet agenet 또한 한꺼번에 시간이 몰리지 않도록 분산하여 실행을 할 수 있음. cron 으로 실행 시간 조정 등.
    • 장애대비하기
      • svn/git 등 소스코드를 관리해야 함
      • Puppet 실행시 Puppet Master 와 svn revision 같은 것을 비교하여 실행을 함. 
      • svn/git 에서 hook script 활용하기 : puppet syntax check 등을 하여 잘못된 puppet 실행이 안되도록 막음
      • CI  참고. 자동 테스팅 등.

잡다한 이야기

  • puppet/chef 머가 좋아요? 모르겠습니다. 글로벌하게는 puppet 사용자가 많은데 국내에 한글로 나온 문서는 chef가 많아서 국내 사용자는 chef  를 더 많이 쓰는 것 같습니다.
  • configuration management 의 변화 흐름?
    •  ansible, saltstack 등 configuration management + orchestration tool 이 등장하고 있는데 왜 그럴까? 무슨 장단점이 있는 것일까? 개인적인 생각은 Puppet/Chef가 설정관리용으로 안정적인 프로그램이지만 점점 더 복잡해지고 거대지는 경향이 있음. 또한 자체적으로 orchestration 프로그램은 별도로 이용을 해야 하는 부분이 있어서 이 두 부분을 함께 사용할 수 있는 프로그램에 대한 요구가 있는 것 같음.
  • Docker 와 같은 컨테이너 기술의 확산과 configuration management  의 관계는? 
  • agent/agentless 어떤게 좋나? 
  • 국내에서  Configuration management 같은 것이 이야기하면 씨알이라도 먹히나?
  • 실업무에 puppet 도입시 고려 사항
    • configuration management 에서 처리해야 할 범위는 어디까지?
      • 조직의 성숙도에 따라서 다르다.
      • 지속적인 상태 관리가 필요한 것은 최대한 configuration management 으로 들어가는 것이 좋다. 
      • System configuration : 중앙관리 + 개별 관리 조합
      • Application configuration : 중앙관리 + 개별 관리 조합
    • 디자인, 설계가 중요함. 그러나 실제 조직 역량에 맞추어서 조정을 해야 할 듯.
    • 사내 인벤토리 DB가 아직 제대로 정착되어 있지 않으면 초기부터 Foreman 같은 UI를 사용하면 좋겠음
    • ENV 를 잘 활용할 것을 강추
    • 개발할 수 있는 여건이 된다면 hiera 를 잘 활용하여 가능한한 관련된 팀에게 권한 위임을 하는 것이 좋음. 예를 들어 apache 설정을 하는데 virtual host 설정, dbms 설치시 메모리 설정 등 서비스별로 변화되는 부분은  DBMS 기반의 hiera 에 넣고 웹UI를 이용하여 해당 팀에서 마음대로 사용할 수 있도록 구성을 함. 그렇지만 apache module 등 기본 모듈은 중앙에서 관리를 해야 함.

 

Labels
  • No labels