SlideShare a Scribd company logo
1 of 28
Download to read offline
과
효율적인 시스템 관리

      클라우드기술팀
[pΛpit]
1. 인형
3. 꼭두각시
IT automation software that helps system
administrators manage infrastructure
throughout its lifecycle, from
provisioning and configuration to patch
management and compliance
두달새
20,000대
          50,000대가
          넘는 시스템
올해 1월
3천만 달러
왜?
기존에는...
                             머리 속의 지우개
                             한 명에게 올인

내 머리 속 혹은 네 머리 속
포스트잇・위키・텍스트・워드・엑셀 문서
현란한 쉘 스크립트                      여백이 충분하지 않아
                                  옮기지는 않는다
                                집 짓고 설계도 그리기
             :(){ :|:& };:
더 나은 방법

  Assembly        Shell Scripts


 Ruby, Python,
  Java, C, PHP

                 ※ 대체재 — 새로운 것이 아님
어떻게 생겼나?
특징
Ruby 기반
고유한 설정 명세 언어
다양한 OS 지원
Red Hat, Fedora, Debian, Ubuntu, CentOS, SuSE, Solaris, OS X, AIX,
HP–UX, OpenBSD, FreeBSD, Windows

HTTPS 기반의 Master/Agent
혹은 Standalone
Puppet Language
node colatech-dance-pool1 {             Node
    include colatech::music           역할 정의
    include colatech::puppetagent
}
class colatech::music {
    file { '/music': ensure => directory }
}
class colatech::puppetagent {                 Class
    cron { '/usr/bin/puppet agent':          의미를 갖는
        ensure => present,
        user => 'root',                      자원의 묶음
        hour => [ 4 ],
        minute => [ 22 ],
    }                         Resource
}                           최소 단위의 자원
리소스
file { '/music/dance': ensure => file }
user { 'bigboy': ensure => present }
group { 'bigbros': ensure => present }
package { 'mysql-server': ensure => installed }
service { 'mysql': ensure => running }
tidy { '/music/logs/night': age => '4w' }
cron { '/usr/bin/make': hour => '4', minute => '30' }
exec { '/usr/bin/make': creates => '/usr/bin/a.out' }
host { 'example.com': ip => '127.0.0.1' }
interface { ... }
router { ... }
mailalias { ... }
mount { ... }
sshkey { ... }
ssh_authorized_key { ... }
...
만들어 쓰는 리소스
define apache::vhost ($port, $docroot, $servername,
        $vhost_name = '*') {
    include apache
    include apache::params
    $vhost_dir = $apache::params::vhost_dir
    file { "${vhost_dir}/${servername}.conf":
        content => template('apache/vhost.conf.erb'),
        require => Package['httpd'],
        notify => Service['httpd'],
    }
}

apache::vhost { 'homepages':
    port    => 8081,
    docroot => '/var/www-testhost',
}
클래스
# directory layout
class colatech::bros {
    File {
        owner => 'bigboy',
        group => 'bigbros',
        ensure => directory
    }
    file {
        '/music/dance': ;
        '/dance':ensure => link, target => '/music/dance';
        '/dance/program': ;
        '/dance/logs': ;
        '/dance/resources': ;
        '/dance/service': ;
    }
}
클래스
# bigboy user for guard
class colatech::guard::bigboy {
    group { 'bigbros': ensure => present }

    user { 'bigboy':
        ensure => present,
        gid => 'bigbros',
        home => '/bigboy',
        shell => '/bin/bash',
    }
    file { '/bigbros':
        ensure => directory,
        owner => 'bigboy',
        group => 'bigbros',
    }
}
노드
node default {
    include colatech::puppetagent
}

node colatech-gate-pool1 inherits default {
    include colatech::guard
}
node colatech-gate-pool2 inherits default {
    include colatech::guard
    include colatech::cctv
}

node /^colatech-dance-poold+$/ inherits default {
    include colatech::hooker
    include colatech::dancer
}
Puppet Forge
서버 설정도 공유?
node default {
    include bigbros::hookd
}

node new-service inherits default {
    include bigboy::guard
    include dancer::dress
}

node new-service-test inherits new-service {
    include my::nightly-party
}
정말 좋아요?
그들이 언급하는 이점


Scale at
           Availability   Security   Auditability
 Speed
이점

설정의                      테스트
         확장성    리포팅
모듈화                      가능성




      실수 없이 정확하고 빠른 대응
RC2 확장 사례
언제 얼만큼이나                      ?
증설하게 될 지 모른다는 걱정
                        100
                   68
            48

        0

            12월    2월   3월    ?
RC2 확장 사례

                 설정 수정
서비스 배포




         결과 확인           가상 머신
RC2 확장 사례
node cache-pool-test inherits default {
    include colatech::guard::bigboy
    include colatech::dance
    class { 'colatech::dancer':
        rc3host => 'localhost' }
}

node colatech-dance-pool-stage inherits default {
    class { 'colatech::dancer':
        rc3host => 'dance.cloud.xx' }
}

node colatech-dance-pool inherits default {
    class { 'colatech::dancer':
        rc3host => 'pro.dance.cloud.xx' }
}
RC2 확장 사례

$ ssh new-host 
  "apt-get install puppet &&
   puppet agent"
$ cap deploy
$ curl new-host
요약

      은 설정 관리 소프트웨어
고유한 설정 명세 언어를 바탕으로
자원을 체계적으로 구성 및 관리
빠르게 변화하는 환경하에
정확하고 민첩한 대처를 위한 도구

More Related Content

What's hot

[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
OpenStack Korea Community
 

What's hot (20)

Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
XECon2015 :: [3-4] 조정현 - Laravel with cloud
XECon2015 :: [3-4] 조정현 - Laravel with cloudXECon2015 :: [3-4] 조정현 - Laravel with cloud
XECon2015 :: [3-4] 조정현 - Laravel with cloud
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개
 
docker-based remote desktop
docker-based remote desktopdocker-based remote desktop
docker-based remote desktop
 
Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용Open stack의 vm개념을 통한 docker의 활용
Open stack의 vm개념을 통한 docker의 활용
 
[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집
 
What is chef - korean
What is chef - koreanWhat is chef - korean
What is chef - korean
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bash
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 
RancherOS Introduction
RancherOS IntroductionRancherOS Introduction
RancherOS Introduction
 
AWS + Docker in Vingle
AWS + Docker in VingleAWS + Docker in Vingle
AWS + Docker in Vingle
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 m
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
Devfair kubernetes 101
Devfair kubernetes 101Devfair kubernetes 101
Devfair kubernetes 101
 

Similar to Puppet과 자동화된 시스템 관리

Similar to Puppet과 자동화된 시스템 관리 (20)

Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
테스트
테스트테스트
테스트
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)
 
K8s in action02
K8s in action02K8s in action02
K8s in action02
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
셸 스크립트를 이용한 클라우드 시스템 운영
셸 스크립트를 이용한 클라우드 시스템 운영셸 스크립트를 이용한 클라우드 시스템 운영
셸 스크립트를 이용한 클라우드 시스템 운영
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
 
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
 

Puppet과 자동화된 시스템 관리

  • 1. 과 효율적인 시스템 관리 클라우드기술팀
  • 3. IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to patch management and compliance
  • 4.
  • 5. 두달새 20,000대 50,000대가 넘는 시스템
  • 8. 기존에는... 머리 속의 지우개 한 명에게 올인 내 머리 속 혹은 네 머리 속 포스트잇・위키・텍스트・워드・엑셀 문서 현란한 쉘 스크립트 여백이 충분하지 않아 옮기지는 않는다 집 짓고 설계도 그리기 :(){ :|:& };:
  • 9. 더 나은 방법 Assembly Shell Scripts Ruby, Python, Java, C, PHP ※ 대체재 — 새로운 것이 아님
  • 11. 특징 Ruby 기반 고유한 설정 명세 언어 다양한 OS 지원 Red Hat, Fedora, Debian, Ubuntu, CentOS, SuSE, Solaris, OS X, AIX, HP–UX, OpenBSD, FreeBSD, Windows HTTPS 기반의 Master/Agent 혹은 Standalone
  • 12. Puppet Language node colatech-dance-pool1 { Node include colatech::music 역할 정의 include colatech::puppetagent } class colatech::music { file { '/music': ensure => directory } } class colatech::puppetagent { Class cron { '/usr/bin/puppet agent': 의미를 갖는 ensure => present, user => 'root', 자원의 묶음 hour => [ 4 ], minute => [ 22 ], } Resource } 최소 단위의 자원
  • 13. 리소스 file { '/music/dance': ensure => file } user { 'bigboy': ensure => present } group { 'bigbros': ensure => present } package { 'mysql-server': ensure => installed } service { 'mysql': ensure => running } tidy { '/music/logs/night': age => '4w' } cron { '/usr/bin/make': hour => '4', minute => '30' } exec { '/usr/bin/make': creates => '/usr/bin/a.out' } host { 'example.com': ip => '127.0.0.1' } interface { ... } router { ... } mailalias { ... } mount { ... } sshkey { ... } ssh_authorized_key { ... } ...
  • 14. 만들어 쓰는 리소스 define apache::vhost ($port, $docroot, $servername, $vhost_name = '*') { include apache include apache::params $vhost_dir = $apache::params::vhost_dir file { "${vhost_dir}/${servername}.conf": content => template('apache/vhost.conf.erb'), require => Package['httpd'], notify => Service['httpd'], } } apache::vhost { 'homepages': port => 8081, docroot => '/var/www-testhost', }
  • 15. 클래스 # directory layout class colatech::bros { File { owner => 'bigboy', group => 'bigbros', ensure => directory } file { '/music/dance': ; '/dance':ensure => link, target => '/music/dance'; '/dance/program': ; '/dance/logs': ; '/dance/resources': ; '/dance/service': ; } }
  • 16. 클래스 # bigboy user for guard class colatech::guard::bigboy { group { 'bigbros': ensure => present } user { 'bigboy': ensure => present, gid => 'bigbros', home => '/bigboy', shell => '/bin/bash', } file { '/bigbros': ensure => directory, owner => 'bigboy', group => 'bigbros', } }
  • 17. 노드 node default { include colatech::puppetagent } node colatech-gate-pool1 inherits default { include colatech::guard } node colatech-gate-pool2 inherits default { include colatech::guard include colatech::cctv } node /^colatech-dance-poold+$/ inherits default { include colatech::hooker include colatech::dancer }
  • 19. 서버 설정도 공유? node default { include bigbros::hookd } node new-service inherits default { include bigboy::guard include dancer::dress } node new-service-test inherits new-service { include my::nightly-party }
  • 21. 그들이 언급하는 이점 Scale at Availability Security Auditability Speed
  • 22. 이점 설정의 테스트 확장성 리포팅 모듈화 가능성 실수 없이 정확하고 빠른 대응
  • 23. RC2 확장 사례 언제 얼만큼이나 ? 증설하게 될 지 모른다는 걱정 100 68 48 0 12월 2월 3월 ?
  • 24. RC2 확장 사례 설정 수정 서비스 배포 결과 확인 가상 머신
  • 25. RC2 확장 사례 node cache-pool-test inherits default { include colatech::guard::bigboy include colatech::dance class { 'colatech::dancer': rc3host => 'localhost' } } node colatech-dance-pool-stage inherits default { class { 'colatech::dancer': rc3host => 'dance.cloud.xx' } } node colatech-dance-pool inherits default { class { 'colatech::dancer': rc3host => 'pro.dance.cloud.xx' } }
  • 26. RC2 확장 사례 $ ssh new-host "apt-get install puppet && puppet agent" $ cap deploy $ curl new-host
  • 27.
  • 28. 요약 은 설정 관리 소프트웨어 고유한 설정 명세 언어를 바탕으로 자원을 체계적으로 구성 및 관리 빠르게 변화하는 환경하에 정확하고 민첩한 대처를 위한 도구