Deployment
For our first pass, we would like to set up 3 machines as shown in the diagram above. We expect that we'll have to do some experimenting to get these "right". Once we are happy with these 3 VMs (the "application assembly") we plan to clone the VMs to create a QA, and a PROD environment. Our general plan for managing changes is to make changes to DEV. After DEV is stable, we will "promote" the assembly to QA. After QA passes all testing, we will "promote" QA to PROD. Is this the right way to do things in VMWare land? Is there a way to clone the entire assembly? Will we have to tweak the firewall settings each time we clone to a new environment?
Our primitive datacenter BCP plan is as follows. Whenever we change a VM configuration, we take copy the VM and store it offsite (at the city?). Should the datacenter fail badly (fire, etc), we provide carinet with the VMs, and carinet brings up the VMs at another location. Does this sound sane? Note that we handle DB backups separately.
We plan to move these VMs to our data center by midyear 2011. We want to insure that these VMs are portable. The chips in our data center will be Intel Xeon. We expect to do a simple VM copy and do not need v-motion. Does this all seem right?
We're planning to use VMware vSphere Essentials Kits to manage the VMs. This will be a Carinet responsibility to setup the Essential Kits on all VMs, SFGov should be able to connect to the VMs remotely via vSphere Client.
Carinet Responsibilities
- Provision hardware
- Provide 3 VMs
- VMWare version 4.1
- install Centos 5 64-bit on each VM
- install Apache web server on the web server VM only
- install package manager (yum or Apt-get)
All other software will be installed by city employees.
Security
We assume the following.
- The data center is physically secure.
- VMware installation has latest kernel updates/patches
Please let us know if any of these assumptions is incorrect.
SE Linux
Do not enable SE Linux.
SSH Access
All VMs shall be accessible via ssh.
The city will provide public keys for those that will have linux root access.
Services
All services shall be disabled unless otherwise requested.
Specifically, the following shall be disabled
- NFS
- FTP
- incoming mail
And the following shall be enabled
- outgoing mail
- SSH
- firewall (see below)
Firewall Configuration
Allow access to the web server VM from
- ssh
- port 80
Allow access to the geo server VM from
- ssh
- port 8080 from web server
Allow access to the db server VM from
- ssh
- port 5432 from web server
- port 5432 from geo server
TCP Wrapper Configuration
Can we restrict port level access?
- web
- Allow request from all host on port 80
- Allow ssh request from all
- Deny requests on all other ports
- geo
- Allow request from web server on port 8080
- Allow ssh request from all
- Deny request from all other host on port 8080
- db
- Allow request from web & geo server on port 5432
- Allow ssh request from all
- Deny request from all other host on port 5432
Is there anything we missed?
Any changes that you recommend?
SFGov Responsibilites
Install application software including the following.
You (city employees) will need to see the EAS SVN readme for all the excruciating details.
Geoserver
- java virutal machine
- tomcat
- geoserver
Database
- GEOS
- proj4
- postresql with postgis
- we want the DBA team and the postgresql consultant involved here
Web Server
- gdal
- python
- django
- geo-django
All VMs
- set up nagios
- what version?
- monitor and notify for the follow
- disk space
- what else?
linux admin
- set up appropriate new linux users
- Password & Access security
- use of public/private keys
- limit root access
- use sudo as needed
- provide file system security
- umask settings
- setting up appropriate file permissions
Tests
Test the following application/server connection pairs via SSH tunnel
- browser/geoserver - localhost:8080
- pgadmin/database- localhost:5432
Test the EAS application
0 Comments