Changeset 1961


Ignore:
Timestamp:
Sep 4, 2011, 4:24:33 PM (10 years ago)
Author:
ezyang
Message:
Split up install instructions for different types.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/server/doc/install-howto.sh

    r1704 r1961  
    22# It is semi-vaguely in the form of a shell script, but is not really
    33# runnable as it stands.
     4
     5# Notation
     6# [PRODUCTION] Production server that will be put into the pool
     7# [WIZARD]     Semi-production server that will only have
     8#              daemon.scripts-security-upd bits, among other
     9#              restricted permissions bits, among other
     10#              restricted permissions bits, among other
     11#              restricted permissions bits, among other
     12#              restricted permissions
     13# [TESTSERVER] Completely untrusted server
    414
    515set -e -x
     
    2030# at localhost, and if our server is not setup at that point things
    2131# will break.
    22 source_server="cats-whiskers.mit.edu"
     32source_server="shining-armor.mit.edu"
    2333
    2434# 'branch' is the current svn branch you are on.  You want to
     
    4353    cd /root
    4454    ls -l .bashrc
    45     ls -l .ldapvirc
    4655    ls -l .screenrc
    4756    ls -l .ssh
    4857    ls -l .vimrc
    4958    ls -l .k5login
     59    # [PRODUCTION] This rc file has sensitive data on it and should only
     60    # be pushed onto production servers.
     61    ls -l .ldapvirc
    5062    # Trying to scp from server to server won't work, as scp
    5163    # will attempt to negotiate a server-to-server connection.
    5264    # Instead, scp to your trusted machine as a temporary file,
    5365    # and then push to the other server
    54 scp -r root@$source_server:~/{.bashrc,.ldapvirc,.screenrc,.ssh,.vimrc,.k5login} .
    55 scp -r {.bashrc,.ldapvirc,.screenrc,.ssh,.vimrc,.k5login} root@$server:~
     66scp -r root@$source_server:~/{.bashrc,.screenrc,.ssh,.vimrc,.k5login} .
     67scp -r {.bashrc,.screenrc,.ssh,.vimrc,.k5login} root@$server:~
     68# [PRODUCTION]
     69scp root@$source_server:~/.ldapvirc .
     70scp .ldapvirc root@$server:~
    5671
    5772# Install the initial set of credentials (to get Kerberized logins once
    5873# krb5 is installed).  Otherwise, SCP'ing things in will be annoying.
    59 #   o You probably installed the machine keytab long ago
     74#   o Install the machine keytab.
    6075    ls -l /etc/krb5.keytab
    6176#     Use ktutil to combine the host/scripts.mit.edu and
     
    7287#          2    3 host/scripts-vhosts.mit.edu@ATHENA.MIT.EDU
    7388#          3    2      host/scripts.mit.edu@ATHENA.MIT.EDU
    74 #   o Replace the ssh host keys with the ones common to all scripts servers (real servers only)
     89#   o [PRODUCTION] Replace the ssh host keys with the ones common to all
     90#     scripts servers (real servers only)
    7591    ls -l /etc/ssh/*key*
    7692#     You can do that with:
     
    85101    chmod 0440 /etc/sudoers
    86102
    87 # If this is the first time you've installed this hostname, you will
    88 # need to update a bunch of files to add support for it. These include:
     103# [PRODUCTION] If this is the first time you've installed this hostname,
     104# you will need to update a bunch of files to add support for it. These
     105# include:
    89106#   o Adding all aliases to /etc/httpd/conf.d/scripts-vhost-names.conf
    90107#     (usually this is hostname, hostname.mit.edu, h-n, h-n.mit.edu,
     
    141158    chkconfig syslog-ng on
    142159
    143 # Fix the openafs /usr/vice/etc <-> /etc/openafs mapping.
     160# [PRODUCTION/WIZARD] Fix the openafs /usr/vice/etc <-> /etc/openafs
     161# mapping.
    144162    echo "/afs:/usr/vice/cache:10000000" > /usr/vice/etc/cacheinfo
    145163    echo "athena.mit.edu" > /usr/vice/etc/ThisCell
    146164
    147 # [TEST SERVER] If you're installing a test server, this needs to be
     165# [TESTSERVER] If you're installing a test server, this needs to be
    148166# much smaller; the max filesize on XVM is 10GB.  Pick something like
    149167# 500000. Also, some of the AFS parameters are kind of retarded (and if
    150168# you're low on disk space, will actually exhaust our inodes).  Edit
    151169# these parameters in /etc/sysconfig/openafs
     170    echo "/afs:/usr/vice/cache:500000" > /usr/vice/etc/cacheinfo
     171    XXX TODO COMMANDS
    152172
    153173# Test that zephyr is working
     
    176196    # here's a cute script that removes all extra packages
    177197    yum erase -y $(grep -Fxvf packages.txt newpackages.txt)
     198    # 20101208 - Mysteriously we manage to get these extra packages
     199    # from kickstart: mcelog mobile-broadband-provider-info
     200    # ModemManager PackageKit
    178201
    179202# We need an upstream version of cgi which we've packaged ourselves, but
     
    219242#   want to be able to write to ~/.python-eggs.  (Also makes sourcediving
    220243#   easier.)
    221 cat /usr/lib/python2.6/site-packages/easy-install.pth | grep "^./" | cut -c3- | cut -f1 -d- . egg.txt
     244cat /usr/lib/python2.6/site-packages/easy-install.pth | grep "^./" | cut -c3- | cut -f1 -d- > egg.txt
    222245    cat egg.txt | xargs easy_install -Z
    223246# - Look at `gem list` for Ruby gems.
     
    244267    echo 'import site, os.path; site.addsitedir(os.path.expanduser("~/lib/python2.6/site-packages"))' > /usr/lib/python2.6/site-packages/00scripts-home.pth
    245268
    246 # Install the credentials.  There are a lot of things to remember here.
    247 # Be sure to make sure the permissions match up (ls -l on an existing
    248 # server!).
    249 scp root@$source_server:{/etc/{sql-mit-edu.cfg.php,daemon.keytab,pki/tls/private/scripts.key,signup-ldap-pw,whoisd-password},/home/logview/.k5login} .
    250 scp daemon.keytab signup-ldap-pw whoisd-password sql-mit-edu.cfg.php root@$server:/etc
     269# [PRODUCTION] Install the credentials.  There are a lot of things to
     270# remember here.  Be sure to make sure the permissions match up (ls -l
     271# on an existing server!).
     272scp root@$source_server:{/etc/{sql-mit-edu.cfg.php,pki/tls/private/scripts.key,signup-ldap-pw,whoisd-password},/home/logview/.k5login} .
     273scp signup-ldap-pw whoisd-password sql-mit-edu.cfg.php root@$server:/etc
    251274scp scripts.key root@$server:/etc/pki/tls/private
    252275scp .k5login root@$server:/home/logview
    253     chown afsagent:afsagent /etc/daemon.keytab
    254 #   o The daemon.scripts keytab (will be daemon.scripts-test for test)
    255     ls -l /etc/daemon.keytab
    256276#   o The SSL cert private key (real servers only)
    257277    ls -l /etc/pki/tls/private/scripts.key
     
    263283    cat /home/logview/.k5login
    264284
     285# All types of servers will have an /etc/daemon.keytab file, however,
     286# different types of server will have different credentials in this
     287# keytab.
     288#   [PRODUCTION] daemon.scripts
     289#   [WIZARD]     daemon.scripts-security-upd
     290#   [TESTSERVER] daemon.scripts-test
     291k5srvutil list -f daemon.keytab
     292scp daemon.keytab root@$server:/etc
     293    chown afsagent:afsagent /etc/daemon.keytab
     294#   o The daemon.scripts keytab (will be daemon.scripts-test for test)
     295    ls -l /etc/daemon.keytab
     296
    265297# Spin up OpenAFS.  This will fail if there's been a new kernel since
    266298# when you last tried.  In that case, you can hold on till later to
    267299# start OpenAFS.  This will take a little bit of time;
    268300    service openafs-client start
    269 
    270 # Check that fs sysname is correct.  You should see, among others,
     301# Then, check that fs sysname is correct.  You should see, among others,
    271302# 'amd64_fedoraX_scripts' (vary X) and 'scripts'. If it's not, you
    272303# probably did a distro upgrade and should update /etc/sysconfig/openafs.
    273304    fs sysname
    274305
    275 # [TEST SERVER] If you are setting up a test server, pay attention to
    276 # /etc/sysconfig/network-scripts and do not bind scripts' IP address.
    277 # You will also need to modify:
     306# [WIZARD/TESTSERVER] If you are setting up a non-production server,
     307# there are some services that it won't provide, and you will need to
     308# make it talk to a real server instead.  In particular:
     309#   - We don't serve the web, so don't bind scripts.mit.edu
     310#   - We don't serve LDAP, so use another server
     311# This involves editing the following files:
     312#   o /etc/sysconfig/network-scripts/ifcfg-lo:0
     313#   o /etc/sysconfig/network-scripts/ifcfg-lo:1
     314#   o /etc/sysconfig/network-scripts/ifcfg-lo:2
     315#   o /etc/sysconfig/network-scripts/ifcfg-lo:3
     316       \rm /etc/sysconfig/network-scripts/ifcfg-lo:{0,1,2,3}
    278317#   o /etc/ldap.conf
    279318#       add: host scripts.mit.edu
    280 #   o /etc/nss-ldapd.conf
    281 #       replace: uri *****
     319#   o /etc/{nss-ldapd,nslcd}.conf
     320#       replace: uri ldapi://%2fvar%2frun%2fdirsrv%2fslapd-scripts.socket/
    282321#       with: uri ldap://scripts.mit.edu/
    283322#   o /etc/openldap/ldap.conf
     
    285324#            BASE dc=scripts,dc=mit,dc=edu
    286325#   o /etc/httpd/conf.d/vhost_ldap.conf
    287 #       replace: VhostLDAPUrl ****
     326#       replace: VhostLDAPUrl "ldap://127.0.0.1/ou=VirtualHosts,dc=scripts,dc=mit,dc=edu"
    288327#       with: VhostLDAPUrl "ldap://scripts.mit.edu/ou=VirtualHosts,dc=scripts,dc=mit,dc=edu"
    289328#   o /etc/postfix/virtual-alias-{domains,maps}-ldap.cf
    290 #       replace: server_host *****
     329#       replace: server_host ldapi://%2fvar%2frun%2fdirsrv%2fslapd-scripts.socket/
    291330#       with: server_host = ldap://scripts.mit.edu
    292331# to use scripts.mit.edu instead of localhost.
    293332# XXX: someone should write sed scripts to do this
    294333
    295 # [TEST SERVER] If you are setting up a test server, afsagent's cronjob
    296 # will attempt to be renewing with the wrong credentials
    297 # (daemon.scripts). Change this:
     334# [WIZARD/TESTSERVER] If you are setting up a non-production server,
     335# afsagent's cronjob will attempt to be renewing with the wrong
     336# credentials (daemon.scripts). Change this:
    298337    vim /home/afsagent/renew # replace all mentions of daemon.scripts.mit.edu
    299338
    300 # Set up replication (see ./install-ldap).
     339# [PRODUCTION] Set up replication (see ./install-ldap).
    301340# You'll need the LDAP keytab for this server: be sure to chown it
    302341# fedora-ds after you create the fedora-ds user
     
    310349    service nscd start
    311350    service postfix start
    312     service httpd start
    313     chkconfig dirsrv on
    314351    chkconfig nslcd on
    315352    chkconfig nscd on
    316353    chkconfig postfix on
     354
     355# [PRODUCTION]
     356    chkconfig dirsrv on
     357
     358# [PRODUCTION/TESTSERVER]
     359# (Maybe WIZARD too once we start doing strange things to autoupgrade
     360# installs behind firewalls.)
     361    service httpd start # will fail if AFS is not running
    317362    chkconfig httpd on
    318363
     
    320365    chkconfig nrpe on
    321366
    322 # Check sql user credentials (needs to be done after LDAP is setup)
     367# [PRODUCTION] Check sql user credentials (needs to be done after LDAP
     368# is setup)
    323369    chown sql /etc/sql-mit-edu.cfg.php
    324370
     
    348394    # Some usual candidates for clobbering include nsswitch.conf and
    349395    # sysconfig/openafs
     396    # [WIZARD/TEST] Remember that changes you made should not get
     397    # reverted!
    350398
    351399# ThisCell got clobbered, replace it with athena.mit.edu
     
    360408#   o your lvm thingies; probably don't need to edit
    361409
    362 # [TEST SERVER] More stuff for test servers
    363 #   - You need a self-signed SSL cert.  Generate with:
     410# [TESTERVER]
     411#   - You need a self-signed SSL cert or Apache will refuse to start
     412#     or do SSL.  Generate with:
    364413    openssl req -new -x509 -keyout /etc/pki/tls/private/scripts.key -out /etc/pki/tls/certs/scripts.cert -nodes
    365 #     Also make /etc/pki/tls/certs/ca.pem match up
     414#     Also make /etc/pki/tls/certs/ca.pem match up (XXX what's the
     415#     incant for that?)
     416
     417# [TESTSERVER] More stuff for test servers
    366418#   - Make (/etc/aliases) root mail go to /dev/null, so we don't spam people
    367419#   - Edit /etc/httpd/conf.d/scripts-vhost-names.conf to have scripts-fX-test.xvm.mit.edu
Note: See TracChangeset for help on using the changeset viewer.