Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
In order to migrate a business' custom web infrastructure to a more modern environment, I need to come up with a complete inventory of the services and so on. The "Migration Environment Survey" given to me by one company that specializes in this type of work seems to actually be a bit cursory in my estimation -- but then again they don't want to get into the hairy details on the initial scoping. They offer to do the assessment for you (for $100/host), but I think everyone should know how to assess their environment themselves. So, here are the questions and my comments on how to do this: 1. List the name(s) and total number of all domain name(s) being migrated - if there are sub-domains/forwards, please list them as separate domains ? use a separate attachment if necessary The domains being hosted are (normally) a function of Apache's virtual host configuration. ?Apache has tools built-in to tell you about itself. On our old RedHat system, that tool is apachectl issue the command with the -h option to get an overview of what it can tell you. sudo /usr/sbin/apachectl -S On newer systems, you'd find apache2ctl, which comes with the option to show modules A lot of people don't know about Apache's built-in tools, or prefer to dig more precisely. In that case, by grepping through Apache's conf files, you come up with a list. ?Unlike most folks who use Name Based virtual hosting, we're using IP-based hosting, so we can first come up with a list of the configuration files and their associated IP addresses and port assignments (ignoring Subversion control files if you happen to keep your configuration files in Subversion) : cd /etc/httpd/conf.d/vhosts egrep -r "<VirtualHost ([[:digit:]\.:]*)>" ./ | grep -v .svn | sort You can also?find all the configuration files; look for ServerName or ServerAlias directives and disregard any that are commented out find /etc/httpd/ -name '*.conf' -exec grep -E "\<(Server(Name|Alias) .*)\>" {} \; | grep -v \# If you have a bunch of configuration files and would like to look at them all at once, you could create a new document for that outfile=~/all.server4.vhosts.conf; for x in `ls -1 .`; do echo "### $x ###" >>$outfile; cat $x >>$outfile; done; 3. What programming languages are utilized with your current website/applications? (Please check any/all that apply) PHP___ ASP___ Python___ ASP.NET___ Perl___ DotNetNUKE___ I know of no better tool for this job than David Wheeler's sloccount (http://www.dwheeler.com/sloccount/). With sloccount, you get a complete analysis of the source code 4. What type, number and volume of databases are utilized with your current website/applications? MySQL ___ MS-SQL___ MS Access___ Other (please define)__________________________________________________________________________ No. of unique databases___ No. of unique databases___ No. of unique databases___ Since we use Postgres, I can tell you how to quickly get the size of your database: login as the Postgres user to the db host enter the psql client use this query: SELECT pg_size_pretty(pg_database_size('my-database')); 5. Type, OS and quantity of current, source server(s): Shared Server Dedicated Server VPS/Cloud Server Don?t Know/Unsure Type, OS and quantity of new, destination server(s): Shared Server Dedicated Server VPS/Cloud Server Don?t Know/Unsure IMPORTANT: If there are multiple servers utilized in your current hosting environment, please indicate the number of servers and role that each plays (web, database, email, application, etc.). 6. Is your current server(s) managed using a control panel? If so, please indicate: Plesk Webmin Hsphere CPanel Other None Don?t Know 7. Will the new destination server(s) utilize a control panel? If so, please indicate: Plesk Webmin Hsphere CPanel Other None Don?t Know 8. Has any of the existing website application software been added, custom compiled, and/or modified since the existing server was originally provisioned? Again, for Apache (modern) you can have apache2ctl tell you the loaded modules For an older Apache installation, you have to grep through the configuratin for LoadModule directives. Something like grep -e ^LoadModule conf/httpd.conf | sort I think this question needs to be more specific asking about the packages installed to meet requirements of applications... which could be anything from imagemagik to CPAN modules etc. These libraries and dependencies are often not part of the version control system, so wouldn't just come over in a git checkout. Of course a well managed product does have all dependencies somehow integrated into the product via make file, or built script etc. Speaking of Version Control, they surprisingly don't ask whether the existing application is managed through a version control, packaging and deployment or configuration engine. 9. Are there cron jobs in place and active on a current server? If so, please describe their function and frequency. For the root user's cronttab, you can list it's contents with sudo crontab -l You might also find other user's crontabs by inspecting /var/spool/cron Finally, on any production host, I prefer to put cron jobs into the /etc/cron.d directory and disallow user crons. Your System Administrator may too, so check there 10. Do any of the website(s) use an SSL certificate? ___ Please list here: 11. Will you require migration of existing email records and/or setup of email accounts or other user-based services (i.e. FTP accounts) at the new server? Greg Rundlett
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |