ReferencePlatforms/Test/Foopy
Set up a Snow Leopard foopy
Rescued from Aki's text file. Will probably change to be linux at some point.
Open Issues
Hal took a stab at doing this on foopy18 (also first use of osx 10.7 for foopy). Much updated, these questions remain as of 2012-12-13:
- Is a checkout of the tools repo needed (under /builds)? (done on foopy18, but not clear it should have been)
- Clarification needed on #helper scripts to populate /builds, see more questions there.
Todo: flesh this out further.
Initial setup
- Rev{1,2} mini -- install Snow Leopard
- File bug for DNS/static IP in DHCP with MAC address
Setup steps
If you're using a box set up by IT, you can skip to #Config changes from IT image:
- set up cltbld account; remove passwordless Mozilla Corporation account
- System Preferences -> Accounts
- Add cltbld account, check "Allow user to administer this computer"
- Make sure to turn off Automatic Login for Mozilla Corporation before logging out
- Log out, log in as cltbld
- This may log you in as moco again; turn off Automatic Login and try again
- Remove Mozilla Corporation account
- Disable Guest Account sharing (needed ?)
- Add Terminal to the dock. Not needed, just a preference.
- Finder -> Applications -> Utilities, drag Terminal into dock
- remote login
- System Preferences -> Sharing
- Set computer name
- Enable Remote Login
Config changes from IT image
Log in via GUI to account 'cltbld' for these actions:
- remote desktop
- Still in System Preferences -> Sharing
- Enable Remote Management
- Click all checkboxes
- Computer Settings
- VNC viewers may control screen with password: (enter cltbld pass)
- turn off bluetooth
- System Preferences -> Bluetooth
- Uncheck "On".
- click "Advanced" button
- uncheck "Open Bluetooth Setup Assistant at startup if no keyboard is detected"
- uncheck "Open Bluetooth Setup Assistant at startup if no mouse or keyboard
- note - if the bluetooth setup assistant runs, it re-enables bluetooth (so helpful)
- turn off energy saver
- System Preferences -> Energy Saver
- Computer sleep: Never
- Uncheck Put the hard disk(s) to sleep when possible
- Start up automatically after power failure
- Kill spotlight
- System Preferences -> Spotlight -> Privacy
- Click "+" button; add the entire hard drive to the list of folders not to search
- System Preferences -> Spotlight -> Privacy
- xcode (use 3.x only to avoid requiring app store setup)
- Aki has scp'd XCode 3.2.2 to the various foopys and installing (since that's the dmg I have), and depending on the following software update to bring me up to date.
- Installed defaults (do not install 10.4 SDK)
- verify Xcode stars up okay: open /Developer/Applications/Xcode.app
- on lion, you'll be prompted to install java - do so
- software update, then turn off updates
- Close the prompted software update, then recheck after installing XCode
- Apple menu -> Software Update
- System Preferences -> Software Update
- Uncheck 'Check for updates'
- macports - download & install one of:
sudo port selfupdate sudo port install mercurial wget py26-lint py26-virtualenv py26-yaml sudo port select --set python python26
cd ~/ hg clone http://hg.mozilla.org/build/buildbot cd ~/buildbot hg up -r production-0.8 sudo su - cd /Users/cltbld/buildbot/master /opt/local/bin/python setup.py install # (need to sudo su -; sudo python setup.py won't work) cd ../slave /opt/local/bin/python setup.py install # (need to sudo su -; sudo python setup.py won't work) exit
The buildslave install above didn't seem to create a /opt/local/bin/twistd symlink so I had to run the following manually (all 1 line):
sudo ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/twistd /opt/local/bin/twistd
helper scripts to populate /builds
Locate the tools/buildfarm/mobile/ directory on your laptop and run:
Hwine several key files used in setting up ssh are not checked in. Should they be, or where are the authoritative copies found (foopy_authorized_keys, id_rsa, id_rsa.pub, possibly others)
- Bear the ssh files I did not want checked-in (not for any good reason TBH) - they will eventually become part of the puppet setup but foopy's don't exist in the realm of puppet yet
./foopies.sh ssh ## ./foopies.sh ##
where ## is the foopy number. The ssh step can only be run once, so run it seperately from the others.
After the above has been run, it's time to setup the cronjobs:
Hwine where does this occur? on new foopy or from "master"
- Bear they are designed to be run from your computer when it's connected to the buildvpn
cd /builds crontab crontab.foopy ./tegra_stats.sh
Running tegra_stats.sh manually once allow you to check that it is working :), but more importantly it also allows you to answer "yes" to the ssh question about connecting to the remote host.
Future reference
Rev 1 mini foopy port list
For future reference:
foopy02:~ cltbld$ sudo port list active Warning: port definitions are more than two weeks old, consider using selfupdate bzip2 @1.0.6 archivers/bzip2 db46 @4.6.21 databases/db46 expat @2.0.1 textproc/expat gdbm @1.8.3 databases/gdbm gettext @0.18.1.1 devel/gettext gperf @3.0.4 devel/gperf libiconv @1.13.1 textproc/libiconv libidn @1.19 mail/libidn mercurial @1.7.2 devel/mercurial ncurses @5.7 devel/ncurses ncursesw @5.7 devel/ncursesw openssl @1.0.0c devel/openssl py26-distribute @0.6.14 python/py26-distribute py26-lint @0.22.0 python/py26-lint py26-logilab-astng @0.21.0 python/py26-logilab-astng py26-logilab-common @0.53.0 python/py26-logilab-common py26-virtualenv @1.5.1 python/py26-virtualenv py26-yaml @3.09 python/py26-yaml python26 @2.6.6 lang/python26 readline @6.1.002 devel/readline sqlite3 @3.7.3 databases/sqlite3 wget @1.12 net/wget zlib @1.2.5 archivers/zlib