Procedure for new Ubuntu-based webapp dev box
These documents describe the instantiation of a standalone Jetty container server, for use by JAVA developers testing their webapps in an environment similar to production. This includes using an LDAP server for user accounts and an Apache frontend. The server exists inside a VPS on a server in the company LAN, in the engineering subnet.
These are manual instructions for a developer to use once his VPS has been installed. This might take place in lieu of provisioning automation software, such as Puppet.
The following assumptions were made:
- bare ubuntu 8.04 VPS server instance provisioned
- root password is known to us for login via ssh
- tasked with setup and configuration of the system
- specific software packages to be installed
- some specifics for configuration were requested
- documentation required for full reproducibility
The system should be set up "securely," but this is left up to developers to determine the particulars of the test environment.
- bootstrap
Initial Configuration and Bootstrap. System will be bootstrapped with a basic configuation to support the remaining services specified.
- slapd
LDAP server software configuration. Provide RFC2307 users and groups, meaning that they will support the schema necessary to base full user accounts and GECOS info out of LDAP. The webapp will use LDAP to store its user account information.
- ldapauth
Configure the host for LDAP auth using pam_ldap and nss_ldap. The system library's user/group database API, supported by the Name Service Switch, will base its data on the RFC2307 groups supported by the configured LDAP server.
- apache
The Apache HTTP server is configured to serve users' public_html/ directories with a special write-access public_html/private/ sub-directory using LDAP auth.
- jetty
Java web server and Servlet container install. Does not need configuration beyond initial installation. For developers to manage post-install.
- postfix
Postfix MTA configuration. Setup: (1) relay mail to offhost SMTP entities for all local users; (2) accept mail for local (unqualified) users; (3) deliver any local mail to a local mail spool.