Difference between revisions of "SMEServer as a Build Server"

From SME Server
Jump to navigationJump to search
(Setup a development server using smeserver v10.x)
 
(Add initial content)
Line 1: Line 1:
 
This article is about using a bare SME Server as a development server for SME Server packages or contributed packages.
 
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.1 install (as a VM)
 +
 +
* 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:<syntaxhighlight lang="bash">
 +
db accounts setprop <userid> Shell /bin/bash
 +
chsh -s /bin/bash <userid>
 +
</syntaxhighlight>and install the tools they'll need<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>Now you need to login as your developer and set them up with all the right access<syntaxhighlight lang="bash">
 +
# add key stuff
 +
 +
cat <<_EOT > ~/.ssh/config
 +
Host shell.koozali.org koozalishell
 +
Hostname shell.koozali.org
 +
User <userid>
 +
IdentityFile ~/.ssh/id_rsa
 +
ForwardAgent yes
 +
Port 222
 +
 +
Host buildsys
 +
Hostname buildsys.koozali.org
 +
User <userid>
 +
IdentityFile ~/.ssh/id_rsa
 +
ForwardAgent yes
 +
Port 222
 +
_EOT
 +
 +
# add .buildsys stuff
 +
</syntaxhighlight>and create their working directories<syntaxhighlight lang="bash">
 +
mkdir -p work/{smebase,smecontribs}
 +
</syntaxhighlight>You may want to tweak their shell to make it a little friendlier<syntaxhighlight lang="bash">
 +
cat <<_EOT > ~/.bashrc
 +
# .bashrc
 +
 +
# User specific aliases and functions
 +
 +
alias rm='rm -i'
 +
alias cp='cp -i'
 +
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
 +
 +
</syntaxhighlight>You will have to log out and back in for this to take effect.

Revision as of 09:11, 20 March 2023

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.1 install (as a VM)

  • 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 with all the right access

# add key stuff 

cat <<_EOT > ~/.ssh/config
Host shell.koozali.org koozalishell
Hostname shell.koozali.org
User <userid>
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
Port 222

Host buildsys
Hostname buildsys.koozali.org
User <userid>
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
Port 222
_EOT

# add .buildsys stuff

and create their working directories

mkdir -p work/{smebase,smecontribs}

You may want to tweak their shell to make it a little friendlier

cat <<_EOT > ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
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.