From 44639660187d1b24f9000fd683a46c009cf35d65 Mon Sep 17 00:00:00 2001 From: Penny Leach Date: Tue, 15 Apr 2008 14:53:10 +1200 Subject: [PATCH] eduforge profile. --- profile/eduforge/aptsources | 16 ++ profile/eduforge/data/.bashrc | 60 ++++++++ profile/eduforge/data/.pgpass | 1 + profile/eduforge/data/.sh_aliases | 35 +++++ profile/eduforge/data/.sh_env | 17 +++ profile/eduforge/data/.sh_func | 44 ++++++ profile/eduforge/data/.vimrc | 166 +++++++++++++++++++++ profile/eduforge/data/eduforge.pgdump | 1 + profile/eduforge/data/eduforge_wiki.pgdump | 1 + profile/eduforge/data/fix1252 | Bin 0 -> 13942 bytes profile/eduforge/data/restoredb.sh | 17 +++ profile/eduforge/files | 5 + profile/eduforge/options | 1 + profile/eduforge/packages | 31 ++++ profile/eduforge/post-host | 10 ++ profile/eduforge/post-vserver | 67 +++++++++ profile/eduforge/pre-host | 22 +++ profile/eduforge/pre-vserver | 12 ++ profile/eduforge/profile.conf | 11 ++ profile/eduforge/remove-host | 11 ++ 20 files changed, 528 insertions(+) create mode 100644 profile/eduforge/aptsources create mode 100644 profile/eduforge/data/.bashrc create mode 100644 profile/eduforge/data/.pgpass create mode 100755 profile/eduforge/data/.sh_aliases create mode 100644 profile/eduforge/data/.sh_env create mode 100644 profile/eduforge/data/.sh_func create mode 100644 profile/eduforge/data/.vimrc create mode 120000 profile/eduforge/data/eduforge.pgdump create mode 120000 profile/eduforge/data/eduforge_wiki.pgdump create mode 100755 profile/eduforge/data/fix1252 create mode 100755 profile/eduforge/data/restoredb.sh create mode 100644 profile/eduforge/files create mode 100644 profile/eduforge/options create mode 100644 profile/eduforge/packages create mode 100644 profile/eduforge/post-host create mode 100644 profile/eduforge/post-vserver create mode 100644 profile/eduforge/pre-host create mode 100644 profile/eduforge/pre-vserver create mode 100644 profile/eduforge/profile.conf create mode 100644 profile/eduforge/remove-host diff --git a/profile/eduforge/aptsources b/profile/eduforge/aptsources new file mode 100644 index 0000000..106a2a4 --- /dev/null +++ b/profile/eduforge/aptsources @@ -0,0 +1,16 @@ +# Citylink Mirror +#deb http://ftp.nz.debian.org/debian/ sarge main non-free +#deb-src http://ftp.nz.debian.org/debian/ sarge main +deb http://debian.catalyst.net.nz/debian/ sarge main non-free +deb-src http://debian.catalyst.net.nz/debian/ sarge main + +# Catalyst Packages +deb http://debian.catalyst.net.nz/catalyst stable catalyst + +# Security Updates +deb http://security.debian.org/ sarge/updates main +deb-src http://security.debian.org/ sarge/updates main + +# To match manage.eduforge.org +deb http://www.backports.org/debian sarge-backports main contrib non-free +deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib non-free diff --git a/profile/eduforge/data/.bashrc b/profile/eduforge/data/.bashrc new file mode 100644 index 0000000..78e253c --- /dev/null +++ b/profile/eduforge/data/.bashrc @@ -0,0 +1,60 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples +shopt -s histappend + +. /etc/bash_completion +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history. See bash(1) for more options +export HISTCONTROL=ignoredups + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" -a -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in +xterm-color) + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' + ;; +*) + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' + ;; +esac + +[ -x ~/.sh_prompt ] && . ~/.sh_prompt + + +# enable color support of ls and also add handy aliases +if [ "$TERM" != "dumb" ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto' + #alias dir='ls --color=auto --format=vertical' + #alias vdir='ls --color=auto --format=long' +fi + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +#if [ -f /etc/bash_completion ]; then +# . /etc/bash_completion +#fi + +[ -r ~/.sh_aliases ] && . ~/.sh_aliases +[ -r ~/.sh_env ] && . ~/.sh_env +[ -r ~/.sh_func ] && . ~/.sh_func diff --git a/profile/eduforge/data/.pgpass b/profile/eduforge/data/.pgpass new file mode 100644 index 0000000..66d5127 --- /dev/null +++ b/profile/eduforge/data/.pgpass @@ -0,0 +1 @@ +*:*:*:gforge:wahP8xoo diff --git a/profile/eduforge/data/.sh_aliases b/profile/eduforge/data/.sh_aliases new file mode 100755 index 0000000..ff4be64 --- /dev/null +++ b/profile/eduforge/data/.sh_aliases @@ -0,0 +1,35 @@ +alias ..='cd ..' +alias ...='cd ../..' +alias acs='apt-cache search' +alias agi='sudo aptitude install' +alias agu='sudo aptitude update' +alias cgd='cg-diff' +alias cgfixtags='cg-restore -f tags' +alias cgl='cg-log' +alias cgs='cg-status' +alias cp='cp -v' +alias df='df -h' +alias dotdirs='perl -e '\''$,="\n"; print grep { -d && /\.[^. ]+/ } <.*>; print "\n";'\''' +alias du='du -h' +alias florida='lftp sftp://luke@florida.wgtn.cat-it.co.nz' +alias gk2w='gitk --all --since=2.weeks.ago' +alias grep='egrep' +alias home='ssh -Xt 60.234.149.239' +alias la='ls -AXF --color=always' +alias ll='ls -lhXF --color=always' +alias lla='ll -hAXF --color=always' +alias ls='ls -XF --color=always' +alias mach='ssh mach.catalyst.net.nz' +alias mv='mv -v' +alias now='date +"%Y%m%d-%H%M%S"' +alias phtags='ctags --langmap=php:+.inc.html.class -R *' +alias rm='rm -v' +alias silence='sudo mount -t smbfs -o guest //silence/music /media/silence' +alias ~='cd ~' +alias kgd='GIT_EXTERNAL_DIFF=~/bin/fakediff cgd' +#alias ssh='bcvim --wrap-ssh --' +alias mdinfo='grep -e '\''^\$CFG->db'\'' config.php' +alias gs='git-status' +alias gl='git-log' +alias gd='git-diff' +alias gco='git-checkout' diff --git a/profile/eduforge/data/.sh_env b/profile/eduforge/data/.sh_env new file mode 100644 index 0000000..aa27f39 --- /dev/null +++ b/profile/eduforge/data/.sh_env @@ -0,0 +1,17 @@ +# git development env +export GIT_AUTHOR_NAME=Luke\ Hudson +export GIT_COMMITTER_NAME=Luke\ Hudson +export GIT_COMMITTER_EMAIL=luke@catalyst.net.nz +export GIT_AUTHOR_EMAIL=luke@catalyst.net.nz +export PATH=$PATH:~/bin:~/code/perl:~/code/perl/pgtools:~/code/perl/moodle + +export EDITOR=/usr/bin/vim +export KARMDIR=~/.kde/share/apps/karm + +export CVS_RSH=ssh + +export GITSSH='git+ssh://git.catalyst.net.nz/var/git' +export GITHTTP='http://git.catalyst.net.nz/git' + +export PAPERSIZE="a4" +export PAPERCONF="/etc/papersize" diff --git a/profile/eduforge/data/.sh_func b/profile/eduforge/data/.sh_func new file mode 100644 index 0000000..0d67a28 --- /dev/null +++ b/profile/eduforge/data/.sh_func @@ -0,0 +1,44 @@ +function sbackup() { + if [ $# -eq 0 ] + then + echo -e "Usage:\n\tbackup(file)" + return + fi + bkp="$1.`now`" + sudo cp -v "$1" "$bkp" +} + +function backup() { + if [ $# -eq 0 ] + then + echo -e "Usage:\n\tbackup(file)" + return + fi + bkp="$1.`now`" + cp -v "$1" "$bkp" +} + +function cgc() { + if [ $# -lt 2 ] + then + echo -e "Uasge:\n\tcgc gitfile#branch targetdir" + return + fi + branch=$1 + dir=$2 + # echo "cloning from $branch to $dir" + cg-clone "git+ssh://git.catalyst.net.nz/var/git/$branch" "$dir" +} + +function q() { + [ $# -eq 0 ] && echo "Usage: q command" && return + $* >/dev/null 2>&1 & +} + +function finame () { + find . -iname '*'"$1"'*' +} +function firegex() { + find . -regextype egrep -regex "$1" +} + diff --git a/profile/eduforge/data/.vimrc b/profile/eduforge/data/.vimrc new file mode 100644 index 0000000..f799738 --- /dev/null +++ b/profile/eduforge/data/.vimrc @@ -0,0 +1,166 @@ +set history:50 " keep 50 lines of command line history +set ruler " show the cursor position all the time +set incsearch " do incremental searching +set number " Line numbering +set mouse=a " Full mouse usage +" Tabstuff +set expandtab +set shiftwidth:4 +set tabstop:4 +set guifont:Bitstream\ Vera\ Sans\ Mono\ Bold\ 10 +set vb " Visual bell instead of annoying beeps +set shellcmdflag=-ic +set nowrapscan + +if !has("gui_running") + set bg=dark +else + colorscheme darkblue +endif + +syntax on + +" Only do this part when compiled with support for autocommands. +if has("autocmd") + " Enable file type detection. + " Use the default filetype settings, so that mail gets 'tw' set to 72, + " 'cindent' is on in C files, etc. + " Also load indent files, to automatically do language-dependent indenting. + filetype plugin indent on + + " Put these in an autocmd group, so that we can delete them easily. + augroup vimrcEx + au! + + " For all text files set 'textwidth' to 78 characters. + autocmd FileType text setlocal textwidth=78 + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid or when inside an event handler + " (happens when dropping a file on gvim). + autocmd BufReadPost * + \ if line("'\"") > 0 && line("'\"") <= line("$") | + \ exe "normal g`\"" | + \ endif + + augroup END +else + set autoindent " always set autoindenting on +endif " has("autocmd") + +" Don't use Ex mode, use Q for formatting +map Q gq + +" Movement mapping +imap  b +" Maps C-LEFT to back-word in insert mode and cmdline etc. +imap  w +" Maps C-RIGHT to fwd-word in insert mode and cmdline etc. +map  b +" Maps C-LEFT to back-word in normal mode +map  w +" Maps C-RIGHT to fwd-word in normal mode + +map  [5~ +" Ctrl+Up == PageUp +map  [6~ +" C+Down = PageDn +map  gg +" C+Home = go-begin +map  G +" C+End = go-end +imap  [5~ +" Ctrl+Up == PageUp +imap  [6~ +" C+Down = PageDn +imap  gg +" C+Home = go-begin +imap  G +" C+End = go-end + +" map F5 to save+execute current file +"map :w :execute '!clear;' . getcwd() . '/' . bufname('%') +"imap :w :execute '!clear;' . getcwd() . '/' . bufname('%') + +" Use F6 and C-F6 to move between files +"map :bn +"map [17;5~ :bp +"map! [17;5~ :bp +"map! :bn + +" Control+S saves, due to long habit +imap  :w +map  :w + +" F12 shows browser window +"map :call VE() +"imap :call VE() + +" F3 does what I expect (find next) +"cmap n +"map n + +" F10 shows list of sub's in current file +map :execute "grep sub ".bufname('%')^M^M:cw^M +" Alt+Insert toggles mouse on/off + +map [2;3~ :call ToggleMouse() +map! [2;3~ :call ToggleMouse() + +" Another long habit - Ctrl+Space for completion +imap  + + +"-------------------------------------------------------------------------------- +" Functions and commands +"-------------------------------------------------------------------------------- +" +command Rz :call Resolve() + +function VE() + let g:explVertical=1 + let g:explStartRight=1 + let g:explWinSize=45 + S + let g:explVertical=0 + let g:explStartRight=0 + let g:explWinSize=15 +endfu + +function ToggleMouse() + if &mouse=="a" + let &mouse="" + echo "Mouse disabled" + else + let &mouse="a" + echo "Mouse enabled" + endif +endfu + +function SplitSwitch() + let path=bufname("%") +endfu + +function Resolve() + let orig=substitute( bufname('%'), '.rej','','') + execute ':sp ' . orig + set ft:php +endfu + + +function Comment() + '<,'>s/^/#/ +endfu + + +set t_Co=88 + +"if has("terminfo") +" set t_Co=16 +" set t_AB=[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm +" set t_AF=[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm +"else +" set t_Co=16 +" set t_Sf=[3%dm +" set t_Sb=[4%dm +"endif diff --git a/profile/eduforge/data/eduforge.pgdump b/profile/eduforge/data/eduforge.pgdump new file mode 120000 index 0000000..4431876 --- /dev/null +++ b/profile/eduforge/data/eduforge.pgdump @@ -0,0 +1 @@ +/home/luke/eduforge.pgdump \ No newline at end of file diff --git a/profile/eduforge/data/eduforge_wiki.pgdump b/profile/eduforge/data/eduforge_wiki.pgdump new file mode 120000 index 0000000..6c7bbff --- /dev/null +++ b/profile/eduforge/data/eduforge_wiki.pgdump @@ -0,0 +1 @@ +/home/luke/eduforge_wiki.pgdump \ No newline at end of file diff --git a/profile/eduforge/data/fix1252 b/profile/eduforge/data/fix1252 new file mode 100755 index 0000000000000000000000000000000000000000..f91ece5fa2c449577bc6994a76bac195597463c4 GIT binary patch literal 13942 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 EU-fH(umAu6 literal 0 HcmV?d00001 diff --git a/profile/eduforge/data/restoredb.sh b/profile/eduforge/data/restoredb.sh new file mode 100755 index 0000000..7143405 --- /dev/null +++ b/profile/eduforge/data/restoredb.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +cd /root +mkdir out +chmod a+rwX -R out +cd out +pg_restore -Ox ../eduforge.pgdump -f eduforge.sql +/root/fix1252 eduforge.sql eduforge_fixed.sql + +sudo -u postgres psql template1 -c "update pg_shadow set usesuper=true where usename='gforge'" + +psql -U gforge eduforge -f eduforge_fixed.sql 2>&1 > /root/eduforge_restore.log + +pg_restore -Ox -U gforge -d eduforge_wiki /root/eduforge_wiki.pgdump 2>&1 > /root/eduforge_wiki_restore.log + + +sudo -u postgres psql template1 -c "update pg_shadow set usesuper=false where usename='gforge'" diff --git a/profile/eduforge/files b/profile/eduforge/files new file mode 100644 index 0000000..4e075f2 --- /dev/null +++ b/profile/eduforge/files @@ -0,0 +1,5 @@ +eduforge.pgdump root +eduforge_wiki.pgdump root +fix1252 root +restoredb.sh root +.pgpass root diff --git a/profile/eduforge/options b/profile/eduforge/options new file mode 100644 index 0000000..27d7766 --- /dev/null +++ b/profile/eduforge/options @@ -0,0 +1 @@ +username diff --git a/profile/eduforge/packages b/profile/eduforge/packages new file mode 100644 index 0000000..6359835 --- /dev/null +++ b/profile/eduforge/packages @@ -0,0 +1,31 @@ +sudo +ssh +curl +locales +less +apache +libapache-dbi-perl +libapache-mod-choke +libapache-mod-perl +libapache-mod-ssl +libapache-mod-php4 +php4 +libphp-jpgraph +php4-cgi +php4-cli +php4-common +php4-domxml +php4-gd +php4-imagick +php4-ldap +php4-mcrypt +php4-mysql +php4-pear +php4-pgsql +php4-xslt +postgresql +postgresql-client +postgresql-contrib +cronolog +lsof + diff --git a/profile/eduforge/post-host b/profile/eduforge/post-host new file mode 100644 index 0000000..41f8f43 --- /dev/null +++ b/profile/eduforge/post-host @@ -0,0 +1,10 @@ +# Add a /etc/hosts entry on the HostOS +cat /etc/hosts > /etc/hosts.new +echo "${VSIPADDR} ${VSNAME}.$(hostname -f) ${VSNAME}" >> /etc/hosts.new +mv /etc/hosts.new /etc/hosts + +# Copy the user's password from the host +grep -v "^${PROFILEOPTION_username}" ${VSROOT}/etc/shadow > /vserver/.shadow +grep "^${PROFILEOPTION_username}" /etc/shadow >> /vserver/.shadow +mv /vserver/.shadow ${VSROOT}/etc/shadow + diff --git a/profile/eduforge/post-vserver b/profile/eduforge/post-vserver new file mode 100644 index 0000000..933f7df --- /dev/null +++ b/profile/eduforge/post-vserver @@ -0,0 +1,67 @@ +echo "${PROFILEOPTION_username} ALL=(ALL) ALL" >> /etc/sudoers +DEBIAN_PRIORITY=critical; dpkg-reconfigure locales + + + +# Setup links to eduforge src +ln -s /usr/share/eduforge/etc /etc/gforge +ln -s /usr/share/eduforge/etc/httpd.conf /etc/apache/conf.d/gforge.httpd.conf +ln -s /usr/share/eduforge /usr/lib/gforge + + +# Setup db user and pg_hba.conf, and empty databases +sudo -u postgres createuser -A -d gforge +sudo -u postgres createdb -E UTF8 -O gforge eduforge +sudo -u postgres createdb -E LATIN1 -O gforge eduforge_wiki + +# insert gforge user into pg_hba.conf, at line 91 (suits this version of file) +sed -ri '88s/.*/\0\nlocal all gforge md5\n/' /etc/postgresql/pg_hba.conf +/etc/init.d/postgresql restart + +# For command-line convenience +sudo -u postgres createuser -a -d root +sudo -u postgres createdb root -O root + +## In case tsearch2 needs adding -- shouldn't if doing pg_restore from eduforge db. +# #(cd /usr/share/postgresql/7.4/main/contrib; sudo -u postgres psql eduforge < tsearch2.sql) + +# Enable apache mods +apache-modconf apache enable mod_env +apache-modconf apache enable mod_vhost_alias +apache-modconf apache enable mod_ssl + +# Enable postgresql extension for php +sed -ri '539s/.*/\0\nextension=pgsql.so\n/' /etc/php4/apache/php.ini +sed -ri '539s/.*/\0\nextension=pgsql.so\n/' /etc/php4/cli/php.ini +/etc/init.d/apache restart + +# Add gforge nix user etc. +groupadd gforge +useradd -g gforge -m gforge + +mkdir /home/groups +mkdir /usr/share/eduforge/homedirs +ln -s /home/groups /usr/share/eduforge/homedirs/groups + +(cd /usr/share/eduforge; ./setup) + +updatedb + +(cd /root; ./restoredb.sh) +#pg_restore -Ox -U gforge -d eduforge /root/eduforge.pgdump 2>&1 >/root/eduforge_restore.log +#pg_restore -Ox -U gforge -d eduforge_wiki /root/eduforge_wiki.pgdump 2>&1 > /root/eduforge_wiki_restore.log + +/etc/init.d/apache restart + +# Now set the password for gforge dbuser. This isn't done earlier so that pg_restores work (I hope) +sudo -u postgres psql template1 -c "alter user gforge with encrypted password 'wahP8xoo';" + + +echo ' + +You will probably have to do the following manually inside the vserver. + +cd /root +./restoredb.sh + +' diff --git a/profile/eduforge/pre-host b/profile/eduforge/pre-host new file mode 100644 index 0000000..8cfea41 --- /dev/null +++ b/profile/eduforge/pre-host @@ -0,0 +1,22 @@ +mkdir /etc/vservers/${VSNAME}/scripts -p +mkdir /vserver/${VSNAME}/data -p + +echo '/home' > /etc/vservers/${VSNAME}/namespace-cleanup-skip + +if [ -d /home/${PROFILEOPTION_username}/src/${VSNAME}/ ]; then + cat >/etc/vservers/${VSNAME}/scripts/pre-start << EOF + #!/bin/bash + mkdir -p /vserver/${VSNAME}/usr/share/${VSNAME}/ + mount --bind /home/${PROFILEOPTION_username}/src/${VSNAME}/ /vserver/${VSNAME}/usr/share/${VSNAME}/ + +EOF + chmod 755 /etc/vservers/${VSNAME}/scripts/pre-start + + cat >/etc/vservers/${VSNAME}/scripts/post-stop << EOF + #!/bin/bash + + umount /vserver/${VSNAME}/usr/share/${VSNAME} +EOF + chmod 755 /etc/vservers/${VSNAME}/scripts/post-stop + +fi diff --git a/profile/eduforge/pre-vserver b/profile/eduforge/pre-vserver new file mode 100644 index 0000000..aeea058 --- /dev/null +++ b/profile/eduforge/pre-vserver @@ -0,0 +1,12 @@ +if [ "$VSRELEASE" = "sarge" ]; then + echo "running pwconv" + pwconv +fi +cp /usr/share/zoneinfo/NZ /etc/localtime +echo "${VSIPADDR} ${VSNAME}" >> /etc/hosts +echo 'locales locales/locales_to_be_generated select en_NZ ISO-8859-1, en_NZ.UTF-8 UTF-8' | debconf-set-selections + + +echo 'debconf debconf/priority select critical' | debconf-set-selections +echo 'exim4-config exim4/dc_eximconfig_configtype string mail sent by smarthost; no local mail' | debconf-set-selections +echo 'exim4-config exim4/dc_smarthost string smtp.catalyst.net.nz' | debconf-set-selections diff --git a/profile/eduforge/profile.conf b/profile/eduforge/profile.conf new file mode 100644 index 0000000..f1cf346 --- /dev/null +++ b/profile/eduforge/profile.conf @@ -0,0 +1,11 @@ +parent = +release = sarge +mirror = http://debian.catalyst.net.nz/debian +inherit-aptsources = yes +inherit-packages = yes +inherit-pre-vserver = yes +inherit-pre-host = yes +inherit-post-vserver = yes +inherit-post-host = yes +inherit-files = yes +inherit-templates = yes diff --git a/profile/eduforge/remove-host b/profile/eduforge/remove-host new file mode 100644 index 0000000..590c832 --- /dev/null +++ b/profile/eduforge/remove-host @@ -0,0 +1,11 @@ +# Remove /etc/hosts entry on the host OS +grep -v "^${VSIPADDR}" /etc/hosts > /etc/hosts.new +mv /etc/hosts.new /etc/hosts + +# this isn't set because we don't pass options to remove +# USR=$PROFILEOPTION_username +USR=penny + +grep -v "^${VSNAME}" /home/${USR}/.ssh/known_hosts > /home/${USR}/.ssh/known_hosts.new +chown ${USR}:${USR} /home/${USR}/.ssh/known_hosts.new +mv /home/${USR}/.ssh/known_hosts.new /home/${USR}/.ssh/known_hosts -- 2.39.5