더북(TheBook)

모듈 디렉터리에서 새로 추가된 apt, stdlib 모듈을 확인할 수 있습니다.

administrator@vmgate:~$ cd code/environments/production/
administrator@vmgate:~/code/environments/production$ ls modules
apt  base  stdlib

이제 기본 모듈 base에 apt 모듈이 제공하는 기능을 추가합니다.

administrator@vmgate:~/code/environments/production$ vi modules/base/manifests/init.pp

apt 클래스를 include 함수로 참조하는 대신 base 클래스 안에 apt 클래스를 삽입했습니다. 이렇게 하면 apt 모듈에 들어 있는 클래스를 참조합니다. 클래스에 자료를 넘기려고 할 때 이렇게 작성합니다.

apt 클래스로 넘긴 update는 패키지 목록 업데이트를 어떻게 처리할지 결정합니다. frequency는 업데이트 주기를 설정하는 속성입니다. 사용 가능한 값으로 always, weekly, daily가 있으며 각각 퍼팻 에이전트를 실행할 때마다 매주 또는 매일 한 번씩 apt update 명령을 실행할 것입니다.

이렇게 다른 사람이 작성한 모듈을 사용하면 모듈 내에서 진행하는 과정은 신경 쓰지 않아도 됩니다. 매뉴얼대로 값만 넘겨도 원하는 결과를 얻을 수 있기 때문입니다.

# /home/administrator/code/environments/production/modules/base/manifests/init.pp
# base 모듈의 기본 매니페스트
class base {

  include base::install
  include base::vim
  include base::ssh

  class { 'apt':
    update => {
      frequency => 'daily',
    },
  }

  notify { '===== base =====': }

}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.