| 1 | # install Squeeze | 
|---|
| 2 | # Configure each drive with a 1G partition and a rest-of-the-space partition, as RAID | 
|---|
| 3 | # Create a RAID1 for the 1G partitions | 
|---|
| 4 | # Create a RAID1 for each pair of rest-of-the-space partitions | 
|---|
| 5 | # Create an ext3 /boot on the 1G RAID1 | 
|---|
| 6 | # Create an LVM volume group named after the machine's short hostname | 
|---|
| 7 | # Create an LV called "swap" that is the same size as the machine's physical RAM | 
|---|
| 8 | # Create an LV called "root" that is 50G ext4 | 
|---|
| 9 |  | 
|---|
| 10 | # ??? F11 will suggest ext4, DON'T USE IT. | 
|---|
| 11 | #   - New filesystem, so it's scary | 
|---|
| 12 | #   - The hosts can't mount it | 
|---|
| 13 | #   - Grub can't cope with it | 
|---|
| 14 |  | 
|---|
| 15 | # install useful utility packages | 
|---|
| 16 | aptitude install htop ipmitool emacs23-nox vim memtest86 memtest86+ ntp ntpdate git smartmontools kpartx apticron bwm-ng bzip2 ethtool i2c-tools lm-sensors mii-diag molly-guard mtr-tiny nbd-client nbd-server rlwrap strace tcpdump tree | 
|---|
| 17 | git config --global color.ui auto | 
|---|
| 18 |  | 
|---|
| 19 | # install Xen | 
|---|
| 20 | aptitude install xen-linux-system | 
|---|
| 21 |  | 
|---|
| 22 | # download Debathena archive key, verify | 
|---|
| 23 | (aptitude install debian-keyring && | 
|---|
| 24 | cd /tmp && | 
|---|
| 25 | wget http://debathena.mit.edu/apt/debathena-archive.asc && | 
|---|
| 26 | kcr_fingerprint=$(gpg --keyring /usr/share/keyrings/debian-keyring.gpg --no-default-keyring --list-keys --with-colons kcr@debian.org | grep ^pub | cut -f 5 -d :) && | 
|---|
| 27 | gpg --primary-keyring /tmp/debathena.gpg --no-default-keyring --import debathena-archive.asc && | 
|---|
| 28 | gpg --primary-keyring /tmp/debathena.gpg --no-default-keyring --refresh-keys && | 
|---|
| 29 | gpg --primary-keyring /tmp/debathena.gpg --no-default-keyring --keyring /usr/share/keyrings/debian-keyring.gpg --check-sigs --with-colons debathena@mit.edu | grep '^sig:!' | cut -d: -f5 | grep -q $kcr_fingerprint && | 
|---|
| 30 | gpg --primary-keyring /tmp/debathena.gpg --no-default-keyring --export debathena@mit.edu | apt-key adv --import) | 
|---|
| 31 |  | 
|---|
| 32 | # add Debathena repos to etc/apt/sources.list.d | 
|---|
| 33 | cat <<EOF > /etc/apt/sources.list.d/debathena.list | 
|---|
| 34 | deb http://debathena.mit.edu/apt squeeze debathena debathena-config debathena-system openafs | 
|---|
| 35 | deb-src http://debathena.mit.edu/apt squeeze debathena debathena-config debathena-system openafs | 
|---|
| 36 | EOF | 
|---|
| 37 |  | 
|---|
| 38 | # install host keytab | 
|---|
| 39 | cp $keytab /etc/krb5.keytab | 
|---|
| 40 | k5srvutil change | 
|---|
| 41 | k5srvutil delold | 
|---|
| 42 | # install ~/.k5login | 
|---|
| 43 | # install Debathena software (hit enter to take the defaults at the | 
|---|
| 44 | # configuration prompts) | 
|---|
| 45 | aptitude update | 
|---|
| 46 | aptitude install debathena-clients debathena-ssh-server-config | 
|---|
| 47 | # compare packages with another server | 
|---|
| 48 | dpkg -l | 
|---|
| 49 | # reconfigure so that we can get an MTA, although we don't | 
|---|
| 50 | # want the hosts to accept mail (mail sent by smarthost; no local mail) | 
|---|
| 51 | # outgoing.mit.edu | 
|---|
| 52 | dpkg-reconfigure exim4-config | 
|---|
| 53 | # answer questions properly | 
|---|
| 54 | # change root alias in /etc/aliases to be the same as scripts server | 
|---|
| 55 | # reload it | 
|---|
| 56 | newaliases | 
|---|
| 57 | # clone the xen config (/etc/xen) | 
|---|
| 58 | git clone -b squeeze ssh://scripts@scripts.mit.edu/mit/scripts/git/xen.git /etc/xen | 
|---|
| 59 | # copy conserver config (we need to version this) | 
|---|
| 60 | aptitude install sudo conserver-{server,client} | 
|---|
| 61 | # setup conserver | 
|---|
| 62 | cat <<EOF > /etc/conserver/conserver.cf | 
|---|
| 63 | config * { | 
|---|
| 64 | sslrequired no; | 
|---|
| 65 | } | 
|---|
| 66 | default full { | 
|---|
| 67 | rw *; | 
|---|
| 68 | } | 
|---|
| 69 | default * { | 
|---|
| 70 | logfile /var/log/conserver/&.log; | 
|---|
| 71 | timestamp "1lab"; | 
|---|
| 72 | include full; | 
|---|
| 73 | sslrequired no; | 
|---|
| 74 | options reinitoncc; | 
|---|
| 75 | } | 
|---|
| 76 | default xen { | 
|---|
| 77 | type exec; | 
|---|
| 78 | exec sudo xm console f; | 
|---|
| 79 | execsubst f=cs; | 
|---|
| 80 | } | 
|---|
| 81 | access * { | 
|---|
| 82 | trusted 127.0.0.1; | 
|---|
| 83 | } | 
|---|
| 84 | EOF | 
|---|
| 85 | visudo # add conservr to sudoers list with: | 
|---|
| 86 | conservr ALL=(ALL) NOPASSWD: /usr/sbin/xm console * | 
|---|
| 87 |  | 
|---|
| 88 | # setup munin and nagios | 
|---|
| 89 | aptitude install munin-node | 
|---|
| 90 | cat <<EOF >> /etc/munin/munin-node.conf | 
|---|
| 91 | allow ^18\.187\.1\.128$ | 
|---|
| 92 | allow ^18\.181\.0\.65$ | 
|---|
| 93 | allow ^18\.181\.0\.51$ | 
|---|
| 94 | EOF | 
|---|
| 95 |  | 
|---|