ReferencePlatforms/Test/Foopy

From MozillaWiki
Jump to navigation Jump to search

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
  • 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