Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 PackageStatusDate installedInstall ToolNotes
1Linuxrequired7/13/2018 and 8/28/2018pxe bootBasic CLI
2X11required7/17/2018 and 9/28/2018note 1 belowX11+gnome+gazillion dependencies
3window managerrequired7/17/2018 and 9/28/2018"gnome based - working on conf file
4desktoprequired7/17/2018 and 9/28/2018"(various convenience apps)
5chef-clientrequired11/13/2018(installed by KSA)Needed for installing YFS
6Windows Active Directory   new authentication model (old=kerberos)
7printingrequired[10/4/2018]sudo system-config-printerPrinting will be via Windows AD IP based printing. In the meantime, configure locally using built-in printing system. Configure B048F2COPIER as a generic postscript printer. This probably needs to be rethought. A better fix involves downloading "BrightQ" Canon drivers from codehost.com. Their drivers come with instructions.
8YFSrequired11/14/2018chef-client -o slac_yfs-clientAuristor's YFS (AFS) client. Use "kinit [<userID>]" followed by "aklog" to get a token
9emacsrequired7/19/2018 and 9/28/2018gnome-software 
10

chrome

required9/28/2018d/l + yum install 
11thunderbirdrequired7/19/2018 and 9/28/2018gnome-software 
12NXrequired9/28/2018d/l + yum install

NoMachine client for use with NERSC

$ sudo rpm -i <nomachine...rpm>

or

$ sudo yum localinstall <nomachine...rpm>

13citrix client   TESTING INC0211099 not sure if it will work
14fastxrequired9/28/2018d/l + tar -xvf

https connection fails, but ssh connection works. KSA has opened ticket with vendor

15slackrequired9/28/2018d/l + yum install$ sudo yum localinstall <slack...rpm>
16zoomrequired9/28/2018d/l + yum install(implies support for microphone, camera and speakers)
17LibreOfficerequired7/19/2018 and 9/28/2018gnome-softwarecalc,writer,base,draw,impress,CAD
18python v3required9/28/2018yum install 
19sshfsrequired12/19/2018

yum install

sudo yum install fuse-sshfs
commands include: sshfs, fusermount
20dev tools (gcc)required9/28/2018yum installsudo yum group install 'Development Tools'
21filezillarequired10/1/2018gnome-softwareGUI file transfer between comet2 and SLAC servers
22Ksnapshotrequired10/1/2018gnome-softwarescreen shot utility
23DbVisrequired4/8/2019yum install$ sudo yum localinstall dbvis_linux_10_0_18.rpm
https://www.dbvis.com/download/10.0
download RPM
24NetBeans   needed by Fermi/LSST app developers
25LSF clientconvenient10/25/2018requires slac_yfs-client

requires desktop is in the lsf configuration file and allowed to run batch commands,

if desktop name is not in LSF configuration, start a service now ticket to request addition

Needs YFS to do run command a link for /etc/lsf.conf  (likely a cookbook configured setting?)

26VPNrequired11/14/2018download

Must download from a current Cisco AnyConnect customer (question), e.g., NCSA

or SLAC (How to Connect to SLAC VPN)

27clamavnot needed sudo yum install clamavAnti-virus (needed to access SLAC VPN, but not necessary on machine connected to internal network)
28media codecsvery strongly desired12/14/2018Many steps -->Followed numerous "sudo yum install ..." commands from https://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS7
29htopvery strongly desired12/14/2018yum install htopin EPEL
30gimpelective12/17/2018desktop installerGnome installer accessed through the Window Manager menu: Applications -> System Tools -> Application Installer
31code42required112/20/2018(via SU web)Stanford supported disk backup (for local files)
https://stanford.app.box.com/v/SU-SemiCustomized-CPPe-Install
32nVidia driver/dashboardprobably not needed----Needed to run dual monitors. On comet2, two (DVI) monitors connected to the two displayPorts on the Quadro 2000 board work just fine with the built-in (nouveau) driver seems to work fine.
33GTK+ v3elective1/23/2019via KSAneeded to build galculator. (Also: gnome-software as gtk3-devel-3.22.20-3.el7)
34galculatorelective1/24/2019d/l from web and buildOne of the few decent RPN calculator apps available for linux
35Javarequired  Needed for Cisco VPN and other apps.
36hdparmelective yum install hdparm

Useful HDD/SSD information:

$ lsblk

$ sudo hdparm -I /dev/sda1

37cvmfs clienthighly desired6/6/2019recipe

CERN-based remote file distribution system. This will access LSST software.

https://sw.lsst.eu/installation.html

38numpy,scipy,pandasrequired6/7/2019gnome-installerPython packages
39condarequired7/26/2019gnome-installerNeeded in preparation for Jupyter
40    matplotlib (python3)required10/11/2019cmd line and gnome-installer

$ sudo python3 -mpip install matplotlib

GUI installer for: python3-tkinter-3.6.8-10.el7

 

41     

 

Notes:

  1. X11 & GUI installed in this way:  

    Code Block
    titleX11 and GUI
    curl http://yum/centos-gui > /tmp/centos-gui
    /bin/sh /tmp/centos-gui

    (very large set of packages, takes a long time...)

  2. Software installed via the GUI, e.g., Thunderbird, emacs, LibreOffice

    Code Block
    sudo gnome-software
  3. Attempt to install FastX downloaded from www.starnet.com.  Code is unpacked from a tar.gz file and run without any special installation.  Attempt to configure SLAC but code fails with a relocation error associated with /lib64/libssl.so.10.  Karl to the rescue!  Use the "ssh" connection rather than "https" while he queries the vendor for a proper fix.

  4. TRS should not be used as it currently requires the use of DES enctypes that are insecure. WE have a todo to remove the ability for this weak-key to work. And are working to make TRS more secure so it can be used on Centos.

     

...

Dateuname -aNotes
7/13/20183.10.0-862.6.3.el7.x86_64 
8/8/20183.10.0-862.9.1.el7.x86_64 
8/28/20183.10.0-327.el7.x86_64Fresh install by ksa
8/29/20183.10.0-862.11.6.el7.x86_64 
10/4/20183.10.0-862.14.4.el7.x86_64 
12/7/20183.10.0-957.1.3.el7.x86_64 
2/19/20193.10.0.957.5.1.el7.x86_64Fresh net install on new SSD
4/1/20193.10.0-957.10.1.el7.x86_64 
5/15/20193.10.0-957.12.2.el7.x86_64

$ sudo yum upgrade ; failure of yfs, so (via ksa)...

$ sudo yum clean all;sudo yum erase kmod-yfs;sudo yum install kmod-yfs;sudo yum upgrade
$ sudo chef-client -o slac_yfs-client

6/14/20193.10.0-957.21.2.el7.x86_64Automatic upon reboot (after notifications)
9/24/20193.10.0-1062.1.1.el7.x86_64 

 

Disk Partitioning

The following table indicates a "standard" suggested disk partitioning for centos7 with a 1 TB SSD.  (Note: the machine, comet2, has 16 GB of RAM.)

...

  1. SLAC minimum security requirements:
    https://docs.slac.stanford.edu/sites/pub/Publications/701-I02-001-00_Min_Sec_Req_for_Comp.pdf
  2. Stanford minimum security requirements:  
    https://uit.stanford.edu/guide/securitystandards

  3. SLAC support for Linux:
    Ubuntu/CentOS 7 Desktop Scope of Support

 

 

import datetimeimport argparse
## These are the tracts of interest for the end-to-end data settracts = '3636,3637,3638,3639,3830,3831,3832,4028,4029,4030,4229,4230,4231,4232'#tracts = '3636'
## raftIDs are used when converting to/from detector numbersraftIDs = ['R01','R02','R03','R10','R11','R12','R13','R14','R20','R21','R22','R23','R24','R30','R31','R32','R33','R34','R41','R42','R43']
class overlap(object):    ## Table overlap contains: [id,tract,patch,visit,detector,filter,layer]    overlapSQL = "select distinct visit,detector,filter from overlaps where tract in ($1) order by visit,detector;"    #TEST#    overlapSQL = "select distinct * from overlaps order by visit,detector;"
    def __init__(self,dbfile='tract2visit.db',tractList=None):        print("Hello from overlap.init()")        ## Instance variables        self.dbfile = dbfile        self.tractList = tractList        print('dbfile = ',self.dbfile)        print('tractList = ',self.tractList)        self.dbInit = False        return
        def __del__(self):        ## Class destructor         self.con.close()        self.dbInit = False        return
        def initDB(self):        ## Open sqlite3 DB file and create cursor        self.con = sqlite3.connect(self.dbfile)      ## connect to sqlite3 file        self.con.row_factory = sqlite3.Row           ## optimize output format        self.cur = self.con.cursor()                 ## create a 'cursor'        self.dbInit = True        return

    def closeDB(self):        self.con.close()        self.dbInit = False        return

    def stdQuery(self,sql):        if self.dbInit == False: return        print('SQL = ',sql)        ## Perform a query, fetch all results and column headers        result = self.cur.execute(sql)        rows = result.fetchall()   # <-- This is a list of db rows in the result set        ## This will generate a list of column headings (titles) for the result set        titlez = result.description        ## Convert silly 7-tuple title into a single useful value        titles = []        for title in titlez:            titles.append(title[0])            pass        return rows,titles

    def run(self):        self.initDB()
        rows,titles = self.stdQuery(self.overlapSQL.replace('$1',tracts))
        self.closeDB()        return rows, titles



def d2rs(detector):    ## Convert a DM "detector number" to raft/sensor format, e.g.,    ## "R22" "S11"    det = int(detector)    if det > 189 or det < 0: raise Exception("Bad detector number")    raft = int(det/9)    raftID = raftIDs[raft]    s1 = det%9    s2 = int(s1/3)    s3 = s1 % 3    sensorID = f'S{s2}{s3}'    return raftID, sensorID

def rs2d(raftID,sensorID):    # Convert a raft sensor string of form "Rnn" and "Smm" to a DM    # "detector number" (int from 0 to 188)    raft = raftIDs.index(raftID)    det = int(raft)*9+int(sensorID[-2])*3+int(sensorID[-1])    return det


if __name__ == '__main__':
    ## Define defaults    defaultFile = 'tract2visit.db'        ## Parse command line arguments    parser = argparse.ArgumentParser(description='Generate sim file list based on tract overlap')    parser.add_argument('-o','--overlapsFile',default=defaultFile,help='Name of overlap db file (default = %(default)s)')    #    parser.add_argument('-n','--nth',default=0,type=int,help='Desired visit, counting from beginning of sorted list (default=%(default)s)')    parser.add_argument('-v','--version', action='version', version=__version__)    args = parser.parse_args()
    myo = overlap(dbfile='tract2visit.db',tractList=tracts)    rows,titles = myo.run()
    print('table columns = ',titles)    #xtract=titles.index('tract')    xvisit=titles.index('visit')    xdet=titles.index('detector')    xfilt=titles.index('filter')    print('#sensor-visits returned = ',len(rows))    # Sample sim FITS file naming     lsst_a_425529_R14_S00_y.fits    fileList = []    visitList = []    tractList = tracts.split(',')    print(tractList)    n = 0    simpre='/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test'    ## Write out a file of sim filenames    vz = open('vizList.txt','w')    for rowz in rows:        n += 1        row = list(rowz)        #print('row = ',row)
        viz = row[xvisit]        if row[xvisit] not in visitList:visitList.append(viz)        rr,ss = d2rs(row[xdet])        file = 'lsst_a_'+str(viz)+'_'+rr+'_'+ss+'_'+str(row[xfilt])+'.fits'        viz8 = f'{viz:08}'        if viz < 445379:            file = os.path.join(simpre,'00385844to00445379',viz8,file)        else:            file = os.path.join(simpre,'00445379to00497969',viz8,file)            pass        vz.write(file+'\n')        fileList.append(file)        if n<20:print(file)        pass
    vz.close()    print('There are ',len(visitList),' visits.')    print('There are ',len(fileList),' files.')
    #/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test/00385844to00445379/00425529/lsst_a_425529_R14_S00_y.fits    #/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test/00445379to00497969/00457716/lsst_a_457716_R10_S10_i.fits 


    # for file in fileList:    #     print(file)