SMEServer as a Build Server
This article is about using a bare SME Server as a development server for SME Server packages or contributed packages.
This is what I did after reading a number of older wiki articles re: developing and amending packages as well as development environment setup.
I started with a standard SME Server 10.x install (as a VM)
- 1 CPU
- 4GB Ram
- 16MB Video
- 8GB disk (partitioned without LVM so that any future upgrades are easier)
- 1 LAN card
I then configured the server as:
- Server Only (I don't want any build tools on my gateway.....)
- Static IP (my preference)
- Do NOT supply dhcp
Log into the server manager panel to
- configure ssh
- add a developer user
Now we ssh into our server as root, to finish setting up our developer user:
db accounts setprop <userid> Shell /bin/bash
chsh -s /bin/bash <userid>
and install the tools they'll need
yum --enablerepo=smeaddons install smeserver-extrarepositories-epel
yum install cvs rsh rpm-build
yum --enablerepo=smedev,epel,extras install plague-client mock python-ctypes glances e-smith-devtools smeserver-mock
signal-event post-upgrade; signal-event reboot
Now you need to login as your developer and set them up: You will need to tweak their shell for CVS access and whilst there, why not make it a little friendlier :)
cat <<_EOT > ~/.bashrc
# .bashrc
# Developer environment
export CVS_RSH=ssh # tell CVS to use ssh
# DO NOT set CVSROOT
alias rm='rm -i'
alias cp='cp -i --preserve=timestamps'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
_EOT
cat <<_EOT > ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
_EOT
You will have to log out and back in for this to take effect. Create their working directories
mkdir -p ~/{smeserver,smecontribs}
If they have koozali shell and buildsys access, you'll need to set this up
# add key stuff
cat <<_EOT > ~/.ssh/config
Host shell.koozali.org koozalishell
Hostname shell.koozali.org
User <userid>
IdentityFile ~/.ssh/<my_id_file>
ForwardAgent yes
Port 222
Host buildsys
Hostname buildsys.koozali.org
User <userid>
IdentityFile ~/.ssh/<my_id_file>
ForwardAgent yes
Port 222
_EOT
# add .buildsys stuff
If you didn't have an existing ~/.ssh/config file you may need to change the permissions
chmod 0600 ~/.ssh/config
You will have to log out and back in for this to take effect.