Yearly Archives: 2008

Holiday with Computer Lab Setup

It’s been a long holidays in Philippines.
I was able to visit a private school in my hometown again.
Last summer, I’ve setup their Edubuntu linux lab.

The 2 servers are compose of a LDAP and a NFS which contains a centralized
storage for students and teachers. Thirty client machines are running linux
validates through LDAP server which also acts an internet gateway.
There are two more servers replicated for standby purposes.

To setup LDAP, I’ve used http://www.majen.net/smbldap.
Install it on the server and for the clients.
The NFS server is simply an ldap client which is
capable to maintaining file permissions to its filesystem
when it is accessed by students from another machine.

The NFS exported its /home dir to each client machines and running backups
at the end of the week.

Several shell scripts were made for the admin user. These includes
enable/disable internet using IPTables, smbldap change password
(wrapped using expect), mass password change for students, and
backup scripts.

It’s cool to see these Linux lab running smoothly.

Just another part of my happy holidays.

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. 🙂