저는 Puppet의 초보자이며 Puppet으로 응용 프로그램을 배포하는 올바른 방법인지 알고 싶습니다.
applciations는 버전 번호를 가진 파일을 포함하는 tar.gz 파일에 있습니다. 따라서 배포를 위해이 작업을 수행합니다 (서버로 가서 클라이언트를 다시 시작하여 새 타르볼을 선택합니다).
nodes.pp
node 'server1.domain.com' inherits basenode {
apps { apps:
version => 56,
apps_name => "apps_tarball.tgz",
}
init.pp (modules)
exec {"apps_wget":
command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}",
unless => "test -f /tmp/${version}-${apps_name}",
require => [ Package["wget"] ],
}
exec {"apps_unzip":
cwd => "/usr/local/apps/path",
command => "/usr/bin/unzip /tmp/${version}-${apps_name}",
unless => "test -f /usr/local/apps/path/apps-version-${version}",
require => [ Package["unzip"], Exec["container_wget"] ],
}
그러나 업그레이드를 원할 때 Puppet이 이전 디렉토리를 삭제하라고 말하는 것을 모르십니까? 예를 들어, 버전 56을 57로 업그레이드하려면 56의 버전 디렉토리를 삭제해야합니다.
Capristrano에 대해 들었고 Managinig 패키지, 구성 파일 및 Capristrano를 사용하여 앱을 배포하는 데 Puppet을 사용하는 것이 더 나을 것 같습니다.
감사.