Using Puppet to install Tomcat,MySQL, SVN and Java

In the last blog which features creating a basic module in Puppet here and here, this is a sample init.pp I’ve created to install, tomcat,mysql,subversion,java1.5 and load a database from a dump file. Notice that JDK is installed while accepting the license by using debconf-utils package. Tested in Ubuntu hardy which is launch from Amazon EC2.

Hope this will help some of my friends in their Puppet configurations.

class hostmanager::server {
     file { "/root/db.sql":
         source=> "puppet://$servername/hostmanager/db.sql"
     }
     file { "/etc/init.d/tomcat5.5":
         source=> "puppet://$servername/hostmanager/tomcat5.5"
     }
     $wantedpackages = ["debconf-utils", "mysql-server", "subversion"]
     package { $wantedpackages: ensure => installed }
     package { ["sun-java5-jdk"] :
                   ensure => installed,
                   require => Exec ["accept-license"]
     }
     package { ["tomcat5.5"] :
                   ensure => installed,
                   require => Package["sun-java5-jdk"]
     }
     exec { "informdb-load":
                 command => "mysql < /root/db.sql",
                 path =>"/bin:/usr/bin",
                 subscribe => File["/root/db.sql"],
                 subscribe => Service["mysql"],
                 unless => "mysql informdb -e 'quit'"
                }
      exec { "accept-license":
               command => "echo 'sun-java5-bin   shared/accepted-sun-dlj-v1-1    boolean true<br /> sun-java5-jdk   shared/accepted-sun-dlj-v1-1    boolean true
               sun-java5-jre   shared/accepted-sun-dlj-v1-1    boolean true
               sun-java5-jre   sun-java5-jre/stopthread        boolean true
               sun-java5-jre   sun-java5-jre/jcepolicy note
               sun-java5-bin   shared/present-sun-dlj-v1-1     note
               sun-java5-jdk   shared/present-sun-dlj-v1-1     note
               sun-java5-jre   shared/present-sun-dlj-v1-1     note
               '|debconf-set-selections",

               path =>"/bin:/usr/bin",
               subscribe =>Package["debconf-utils"]
          }
          service { "tomcat5.5":
                ensure => running,
                hasstatus => true,
                hasrestart => true,
                require => Package["tomcat5.5"],
                require => File["/etc/init.d/tomcat5.5"],
               restart => true
         }
         service { "mysql":
               ensure => running,
               hasstatus => true,
               hasrestart => true,
               require => Package["mysql-server"],
               restart => true
        }
}

Let’s start learning more about puppet. 🙂

2 thoughts on “Using Puppet to install Tomcat,MySQL, SVN and Java

Leave a Reply

Your email address will not be published. Required fields are marked *