これは、Subversion が Version Control として使用され、puppet が tomcat、Jboss などのパッケージだけでなく、perl ベースのアプリケーションやその CPAN モジュール、JBoss ベースの Web サービスなどのアプリケーションを管理するために使用されるシナリオに関連しています。 Mysqlおよびデータとともになど。
開発者の仮想マシンの提案されたワークフローは次のとおりです。
Every Virtual Machine ( VMware based) has : /extra/puppet_dev/modules (maintained under svn)
The complete application runs with the following puppet apply :
sudo puppet apply --modulepath=/extra/puppet_dev/modules/ -e "include company::local"
That will apply the puppet module company, manifests local.pp:
vim /extra/puppet_dev/modules/company/manifests/local.pp, which basically is just calling the company module:
include standards, company
The structure of the whole company application is in its init file:
vim /extra/puppet_dev/modules/company/manifests/init.pp:
class company($instance_name='developer',$cpan_mirror='dite_cpan01'){
include params, install
if ( $kernelpageloc =="true" ){ include patches, config, catalyst, catalyst_patch
}
include company::index
include company::jboss
include webapp_structure, svn_instances, jdk, maven
class {"apache" : mods => ["rewrite","fastcgi","ssl","jk","ldap","authnz_ldap"], site => "company-ssl-jk",}
Class['webapp_structure'] -> Class['svn_instances'] -> Class['apache'] -> Class['jdk'] -> Class['company::index'] -> Class['company::jboss'] -> Class['maven']
}
From there we only work on the svn_instances module for svn:
/extra/puppet_dev/modules/svn_instances/manifests/init.pp :
class svn_instances ($instance_name='developer', $instance_level='dev', $build='RC3-1'){
After making your changes just run puppet apply again:
sudo puppet apply --modulepath=/extra/puppet_dev/modules/ -e "include company::local"
Test it and if if you want to apply to all developers virtual machines, just commit changes, you can test general configurations by running:
sudo puppet agent --test
私が探しているのは、puppet と svn の境界を定義する方法と、それらがどのように連携するか、または puppet 用の subversion モジュールのようなものを使用し、puppet を使用して subversion コマンドを実行する方法です。Jenkins は svn コミットの監視にも使用されており、ビルドとテストを開始することに注意してください。