ROSE Compiler Framework/System Administration
Manual restart process
editIn case the @reboot cron jobs were not properly saved on [hudson-rose-30], please
- Start Jenkins
$ ssh hudson-rose@hudson-rose-30
$ cd ~/JENKINS
$ ./start.sh
- Start Redmine
$ ssh hudson-rose@hudson-rose-30
$ cd ~/opt/redmine
$ ./redmine.sh start
Both scripts should start a screen for each service.
- Check status
$ screen –ls
- Github
Please also ensure that Github is started on [rose-git]. I'd imagine you may have to start the VM again.
Apache Tomcat
editThe Apache Tomcat servlet is run locally on hudson-rose-30.
Startup
editstartup.sh calls catalina.sh start which sources our custom jenkins-env.sh.
hudson-rose-30 $ /export/tmp.hudson-rose/applications/apache/tomcat/bin/startup.sh
On @reboot
edit hudson-rose-30 $ crontab -e
@reboot /export/tmp.hudson-rose/applications/apache/tomcat/bin/startup.sh
Shutdown
edithudson-rose-30 $ /export/tmp.hudson-rose/applications/apache/tomcat/bin/shutdown.sh
Backup
editThe local installation is synced by Jenkins to the NFS at /home/hudson-rose/Applications/apache/tomcat/.
Ruby
editRVM (Ruby Version Manager)
editRuby Version Manager (RVM), https://rvm.io/.
1. Download rvm-installer:
# Download
$ wget --no-check-certificate https://get.rvm.io
...
Saving to: `rvm-installer'
100%[====================================================================>] 9,439 --.-K/s in 0s
2012-07-05 17:09:08 (20.5 MB/s) - `rvm-installer' saved [9439/9439]
# Change permissions to make it executable
$ chmod +x ./rvm-installer
2. Install RVM to a local user location (i.e. not to a root/sudo location like /usr or /bin):
First, disable the SSL certificate check for cURL, used in the rvm-installer, since it could be a problem when behind a firewall. You can do this step manually (recommended), or using this ad-hoc script:
$ sed -i 's/curl -/curl --insecure -/g' rvm-installer
Second, set the rvm_path environment variable to specify your installation location (similar to --prefix for Autoconf projects):
$ export rvm_path=$(pwd)/rvm
Finally, install RVM:
$ ./rvm-installer
Downloading RVM from wayneeseguin branch master
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1047k 100 1047k 0 0 322k 0 0:00:03 0:00:03 --:--:-- 740k
Installing RVM to /export/tmp.hudson-rose/opt/ruby/rvm/
RVM PATH line found in /home/hudson-rose/.zshrc.
RVM sourcing line found in /home/hudson-rose/.bash_profile /home/hudson-rose/.zlogin.
# RVM: Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm
# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'
Installation of RVM in /export/tmp.hudson-rose/opt/ruby/rvm/ is almost complete:
* To start using RVM you need to run `source /export/tmp.hudson-rose/opt/ruby/rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
# hudson-rose,
#
# Thank you for using RVM!
# I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne
rvm 1.14.5 () by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
3. Use RVM: Now, we can use RVM (as instructed by the above RVM installation message):
$ source /export/tmp.hudson-rose/opt/ruby/rvm/scripts/rvm
For example,
[hudson-rose@hudson-rose-31]which rvm
/export/tmp.hudson-rose/opt/ruby/rvm/bin/rvm
Install Ruby:
# Nothing is installed yet...
[hudson-rose@hudson-rose-31]rvm list
rvm rubies
# No rvm rubies installed yet. Try 'rvm help install'.
# Check what's available...
[hudson-rose@hudson-rose-31]rvm list known | grep "\[ruby-"
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p370]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2-p180
[ruby-]1.9.2-p290
[ruby-]1.9.2-p318
[ruby-]1.9.2[-p320]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3-p0
[ruby-]1.9.3-p125
[ruby-]1.9.3[-p194]
[ruby-]1.9.3-head
# Install Ruby version 1.9.2-p320
[hudson-rose@hudson-rose-31]rvm install ruby-1.9.2-p320
...
ruby-1.9.2-p320 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.2-p320 - #importing default gemsets (/export/tmp.hudson-rose/opt/ruby/rvm/gemsets/)
Install of ruby-1.9.2-p320 - #complete
[hudson-rose@hudson-rose-31]rvm list
rvm rubies
=* ruby-1.9.2-p320 [ x86_64 ]
# => - current
# =* - current && default
# * - default
Boost
editGCC 4.2.4
=========
$ source /nfs/apps/gcc/4.2.4/setup.sh
$ source /nfs/apps/gmp/4.2.4/setup.sh
$ source /nfs/apps/mpfr/2.3.2/setup.sh
Python 2.6.5
============
$ source /nfs/apps/python/latest/setup.sh
$ python --version
Python 2.6.5
$ ./bootstrap.sh --prefix=/export/tmp.hudson-rose/opt/boost_64bit_install/boost_X_XX_X-inst
$ ./b2 install --prefix=/export/tmp.hudson-rose/opt/boost_64bit_install/boost_X_XX_X-inst -j24
Gitolite
editSitaramc's Gitolite software (https://github.com/sitaramc/gitolite/) "allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features." See the documentation for more details.
Here are some benefits of Gitolite-hosted Git repositories compared to filesystem-hosted repositories:
- Authorized access only: SSH key-pairs for authentication purposes
- Only Git operations permitted: nobody is allowed to modify the Git repositories on the server (e.g. change permissions, manually manipulate the bare repository's index, etc.). This is achieved by restricting remote commands over SSH using the command keyword in the ${HOME}/.ssh/authorized_keys file of the Gitolite user account on the Gitolite server. See this brief guide for more details.
Note: Gitolite is purely a software tool to host Git repositories. It does not provide code review, issue tracking, a web interface, or repository wikis, etc.