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 08: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.