Version 9 (modified by 14 years ago) ( diff ) | ,
---|
Table of Contents
SysAdmins
We can always use SysAdmin support to help out with our infrastructure: developing tools & maintaining sites.
Deployment Cycle
Setting up a New Instance
Eden project have 2 servers kindly donated by Zen Internet.
These run KVM to provide different virtual machines.
We use Proxmox to manage these VMs:
- Type: Fully Virtualized (KVM)
- Installation media: Debian-503-amd64 (if not using the template)
- Disk Storage: Images (Host1) data (Host2)
- Start at Boot: tick
- Disk type: VIRTIO
- Disk size: 22GB
- Guest Type: Linux-2.6
- Network Card: virtio
- Bridge: vmbr0
These documents are secured - ask for access if you are going to contribute:
- IP Addresses/RAM Allocations for Eden Infrastructure
- Setting up a new VM instance on Eden Infrastructure
Copy from Template
We normally copy an instance from a predefined template rather than starting with a fresh OS build.
- consider changing this with scripts similar to ISO/VM builds?
- Turn off template VM instance if on
- SSH into the host machine
If using Host1:
cd /spare/images/images
cp 106/vm-106-disk-1.raw 1xx/vm-1xx-disk-1.raw
If using Host2:
3.
zcat /spare/template/vm_release.gz | dd of=/dev/data/vm-1xx-disk-1 bs=8M dd if=/dev/data/vm-106-disk-1 of=/dev/data/vm-1xx-disk-1 bs=8M
- That'll take a while. You can get it to notify progress by doing a kill -USR1 {process id of the dd}
- start your VM after the copy is complete
- Open VNC Console
- read /home/INSTALL in the vm
- Set the IP (using the spreadsheet)
Upgrading an Instance
Need to decide whether the site will be upgraded straight from Trunk, or whether upgrades are staged via a Test server.
We manage upgrades using Fabfile.
- Add the site to fabile.py
- If no keys generated yet, then generate some:
fab generate_keys
- deploy keys
fab <site> distribute_keys
- Run the upgrade (as/when required)
fab <site> deploy
References
ToDo
Windows Installer
See if we can upgrade to Python 2.7 to have Foreign-Key support (#900)
Infrastructure Virtual Machine Template
- Update shell aliases: compile/pull
- convert to scripts in
/usr/local/bin
(as per ISO/VM)
- convert to scripts in
- Change permissions on languages files (we don't want these being updated live by the server)
- Add maintenance site & HTML
- Rename site as xxxx.sahanafoundation.org
- To work with fabfile
- Provide a script to manage the MySQL root pw change
- change the password
- edit Eden's
000_config.py
- edit
/root/.my.cnf
- Update Eden
- Update Web2Py (as-required)
- Update OS (to Squeeze & then maintain patches)
- Increase swap to 2048Mb (from 750Mb)
- can we do this in image? Add an emergency swapfile?
- Add extra disk for those instances which need extra capacity
Test
- Set up an instance of Hudson to automatically run through our Selenium tests
Demo
- Have a set of reference data available
Pootle
- Upgrade to 2.1.4 (from 2.1.1)
Trac
- Upgrade to 0.12.1
- Check Plugin Dependencies
- Convert from sqlite to PostgreSQL (or MySQL) to improve performance
- Add Timing & Estmation Plugin
- Investigate a fix or alternative to http://trac-hacks.org/wiki/MathCaptchaPlugin for allowing Trac users to register bugs anonymously whilst not locking out our testing team.
- See if we can not send emails out to users for the updates they make themselves (maybe fixed in 0.12.x?)
- Investigate a fix for the last section edit doubling-up the footers (maybe fixed in 0.12.x?)
Release Process
- DeveloperGuidelinesReleaseProcess
- Bzr start-commit hook to check for existence of 'compiled' folder
Translation Process
- Bzr start-commit hook to update all languages (need a script rather than the current appadmin UI method)
cd web2py python web2py.py -S eden -R applications/eden/static/scripts/tools/languages.py
- Scripts to automate the conversion 2 PO & upload/download to/from Pootle: UserGuidelinesLocalisation