Versions Compared

Key

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

...

There are an estimated 200-300 Linux desktop users at SLAC.  This project aims to provide a basic managed and maintained building block desktop from which users may customize to their specific needs.  At this writing, either Ubuntu or CentOS are available options.  This is very much a work in progress....

 

Table of Contents

To-Do

  •   consider should the  user  have the netboot file remain active and have the user manually remove the link that makes it active  with
    echo "get Kickstart_end" | /usr/bin/tftp lnxpapa  or do this for them automatically after the first build. Make this an attribute for the node build ?  Consider this for ubuntu too - And ubuntu and kickstart are not great together, unless this is very, very dated https://help.ubuntu.com/community/KickstartCompatibility
  • Decide if we want the pxekicktit to by default run chef on the node. As of 2018-09-27, a build with ks.cfg.centos7.linux_desktop_2 does not run chef. I suggest we do run chef in the default installation, and one picks ks.cfg.centos7.linux_desktop_2.no_chef_run  If one does not want to run chef.
  • decide is this only for SLAC owned equipment or can users with non-SLAC equipment use the chef cookbooks - what does that mean for slac_motd - the content of that message does it change at all?

 

Current Pilot Machine Status

  • A test machine, named comet2 (Dell Optiplex 9010, PC90105), was setup in Tom G's office, bldg 48/rm 248, on 7/13/2018.  Linux (centos7) was installed over the network.  Andrew set up the "old style" kerberos authentication to allow site-wide logins.  This is expected to change in the near future to a Windows authentication scheme.
  • At this time, comet2 is considered available for reboot with little or no notification as experts continue their development of the deployment software.  Rebuilding from scratch becomes increasingly painful as more and more software is installed.
  • As of 9/23/2018, a 2nd machine, ppa-pc89438-l, is also running centos7 in Warren Focke's office, bldg 48/rm 249, using Andrew's latest net install.

List of candidate add-on software to be included in CentOS 7 network-install image. 

(The initial network-install might not have all this - but one can add it with post install step(s). A status of 'required' does not mean that configuration management can do that, as of  , but that is it considered a requirement by a user community at SLAC. The user communities represented here include LSST Camera, DESC and Fermi  )

 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

37     
38     

...

  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.

     

Configuration Hints

Desktop

The default desktop manager is gnome.  A large number of desktop settings are stored in the dconf database.  There are several ways to view/set these settings:

...

Code Block
$ gsettings set org.gnome.desktop.session idle-delay 3600
$ gsettings get org.gnome.desktop.session idle-delay
uint32 3600


and
 
$ gsettings set org.gnome.desktop.screensaver lock-delay 0
$ gsettings get org.gnome.desktop.screensaver lock-delay
uint32 0

 

 

OS Updates

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

 

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.)

...

commandfunctionexample
lsblkshow disk partitioning$ lsblk
smartctlshow disk monitoring and health$ sudo smartctl -AH /dev/sda1
hdparmshow detailed storage device info$ sudo hdparm -I /dev/sda

 

On a new build, old or new hardware

  1.  check if firmware updates need to happen

    - BIOS, IDRAC, DISK/PERC

  2. NETDB needs for the node:

    a. NetDB must have the MAC address

    b. NetDB must have these dhcp-opt  options:  --options filename=pxelinux.0,next-server=lnxpapa,tftp-server-name=lnxpapa

    c. NetDB must have dhcp enabled

    d. Determine the pxeboot-kickstart to use. There are many!  and we should agree on which one to use. I'd recommend we make that part of the netdb record the way we do with some newer builds - I think it helps. See for instance comet2 pxekickit: CentOS7/default.netboot.CentOS7.linux_desktop_2  


    NOTE I would like to change the attribute name on the netdb record from 'pxekickit' to 'netboot'  I came up with the pxekickitit name, it made sense sorta at that time, but now that we will expect to have more than just kickstart builds, think Ubuntu, I think it better to just change this naming convention to netboot. 

    e. NetDB must have the MAC address

  3. Determine is there anything special about this machine that needs to be considered

    If this is rhel[56] node with a taylor.opts take a look and see if there is a one to one correspondence between what taylor.opts is doing on the node and what we can do in chef.  For example, if the pre-cheffed node is using automounter, then all parties ( unix platform, the user)  need to know that no NFS native mounts are supported.

 

User Log

The first part of the log concerns the first build up on comet2.

...

Expand
titleCurrent Log (starting Feb 2019)

2/19/2019 - Install 1 TB SSD in comet2 using partitioning scheme above. Andrew activates kerberos and adds me to sudo list. Then begin process of installing needed software all over again!

2/20/2018 -

  • New CR 2032 battery installed in comet2 for RTC
  • X11 install appears successful, but causes screen freeze early on. Also SELinux complaints...but Karl fixes:
Code Block
    sudo semanage fcontext -a -t abrt_var_log_t '/var/adm'
    sudo restorecon -v '/var/adm'
    sudo systemctl restart rsyslog
  • And adds me to the 'wheel' group so I may use the GUI s/w installer tools.
Code Block
# usermod -a -G wheel dragon
  • The X11 freeze was "solved" by reseating the nVidia card. Will have to see if this is a long-term solution. If not, Karl suggests swapping out the nouveau video driver for the nVidia driver: nvidia-automatic-builds-via-dkms
  • Install AFS/YFS
  • Install google-chrome
  • Install thunderbird
  • Install emacs + git version control package
  • Install NX client (from NERSC)
  • Install FastX
  • Install python3
  • Install slack app
  • Install Zoom app
  • Install sshfs
  • Install dev tools
  • Install filezilla
  • NOTE: the following apps were already installed (or equivalents): libreOffice, ksnapshot
  • Install multimedia codecs and apps (including ffmpeg)
  • Install htop
  • Install gimp
  • Install gitg (GTK+ interfact to git)
  • Install galculator and GTK+ development files
  • Install BrightQ printer support for Canon ImageRunner Advance C5255
    • Driver package is recommended by Canon, https://www.codehost.com/canon/
    • One must "register" to download and then again to install the drivers (sad)
    • This system was installed to interface with CUPS (already installed)
    • A number of "BrightQ" apps appear in the gnome Applications->Office menu
    • It seems to work, including providing the printer-specific options (e.g., paper size, duplex, etc.)
  • Install Code42 CrashPlan, configure and start

2/21/2019 -

  • Install hdparm
  • Add shell extentions (Applications --> System Tools --> Application Installer --> Add-ons)
    • "system-monitor" – CPU/Network/Disk activity plots to gnome top bar
    • "No Topleft Hot Corner"
    • "Workspace Indicator"

4/10/2019 - After a flurry of "Important OS Update" notifications, and after three reboots did not clear the notifications, Karl manually intervenes due to an issue with YFS:


 

sudo yum clean all; sudo yum erase kmod-yfs; sudo yum install kmod-yfs; sudo yum upgrade

 

5/17/2019 - comet2 has been operating normally (no observed hardware hiccups)

 

Gotchas

Here is a list of gotchas or concerns that I stumbled into during these project investigations.

  • Tilde (~) does not work.  Remember that LD2.0 machines have their own user databases which are not the same as the SLAC site unix user database.  If you are accustomed to typing "$ ls ~lsstprod/workflows", that will no longer function.  It is not clear how to implement a good, reliable work-around.
  • Absolute NFS file paths will be different.  Using sshfs means every remote file system must have a local mount point.  On central SLAC machines, "/nfs" works.  However, sshfs documentation recommends that mount points be r/w by the user and, usually, /nfs is not such a candidate.  So any scripts or aliases that use the "/nfs" path must be changed. [AFS/YFS is different in that if you elect to have the client installed, the absolute paths will look identical with that on a public SLAC machine.]
    ** WORKAROUND: On a single-user workstation in the SLAC network, the following example shows how to allow a customary absolute NFS path using a symbolic link:

    Code Block
    sudo ln -s /nfs /home/dragon/nfs
    mkdir -p /home/dragon/nfs/farm/g/lsst
    sshfs dragon@rhel6-64:/nfs/farm/g/lsst /nfs/farm/g/lsst
  • Access to AFS home directories can proceed either via an absolute path, e.g., `/afs/slac/u/...` or one can create a symbolic link to recover the familiar `/u/ec/dragon/...` path.

    Code Block
    sudo ln -s /afs/slac.stanford.edu/u /u
  • Lots of SLAC-written and SLAC-specific commands are no longer available locally, e.g., everything in /usr/local/bin
    ** WORKAROUND: Create an alias in your .bashrc to prefix your favorite SLAC command(s) with "ssh rhel6-64 ", e.g.

    Code Block
    alias person='ssh rhel6-64 person '
  • Printing is currently possible via the unix print server, but I've heard rumors that this service might be deprecated and replaced with a Windows-based system.  Also, the current print config in use on comet2 is very rudimentary and needs further thought.  It does not, for example, know about printer-specific functions & capabilities, such as faxing, duplex printing, oddball paper sizes, etc.
    ** FIX: The "BrightQ" print drivers for Canon printers are straight-forward to install, interface seamlessly with CUPS, and offer all the features of my printer (a Canon C5255).  There is a bit of a rigamorole involved (one must "register" twice, once for download and again for installation), but in the end it worked well.  Get the drivers here: https://www.codehost.com/canon/
  • Many users will need a moderately-to-highly customized application repertoire to work well for them.  The application list above is acceptable for my (TG) work needs. But there are items that even I need only rarely and it is not clear it is better to seek them out and install locally, or to simply log into a public login machine to use.  Here I am thinking of database tools, advanced development tools, TeX (and friends), more sophisticated printing capabilities, etc.
  • While for may activities it is desirable to work locally, one will still need to log onto a public SLAC login machine (think licensed software, certain computing resource management functions, dealing with PPI,  etc.) There are certain files and directories that I would like synchronized between the desktop machine and my SLAC environment (such as ssh keys, personal logbook, app configurations).  Possibly a trscron job would do the trick, but then which copy becomes the master?  I would like a smart synchronizer that allows either environment to make changes that will then be reflected in the other environment.

 

References:

  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

...