How to Create a New OSG Singularity Container

  1. create a repository on GitHub
    • must contain a Dockerfile in the top level
    • sufficient if not necessary: clone another such repository, e. g. JeffersonLab/gluex_docker_prod
    • call it my_account_github/my_container_github
  2. create a repository on DockerHub
    • from Dashboard (e. g. for account my_account_docker):
      • Use Create pull-down
      • Click on Create Automated Build
      • Click on Create Auto-build/Github (GitHub account must have been linked in advance)
      • Click on the GitHub repository created above (my_account_github/my_container_github)
      • Fill in the Create Automated Build form
        • choose Public for Visibility
        • give the repository a name for Docker
        • E. g., my_container_docker
    • new repository should show up on the Dashboard (my_container_docker)
      • Click on new repository, should see Source Repository box filled in with my_account_github/my_containter_github
  3. to trigger build, change Dockerfile on GitHub on the master branch
    • must be something other than comments
  4. Ask Richard to submit a pull request to list the new Docker repository on the OSG list
    • He needs to add the Docker repository (e. g., my_account_docker/my_container_docker) as a single line to the file docker_images.txt in the top level of the opensciencegrid/cvmfs-singularity-sync repository.
    • A corresponding singularity container (my_container_docker) will appear in the OSG cvmfs share (/cvmfs/singularity.opensciencegrid.org/my_account_docker/my_container_docker:latest)
    • Successful builds of the Docker container will refresh the Singularity container.
Advertisements

GlueX Bi-Weekly Meeting Report

March 13, 2018

  • New sim-recon release, version 2.24.0.
  • MCwrapper 1.13 has been released.
  • Open Science Grid open for business (OSG-OFB) for GlueX simulations for all collaborators
    • software and database update being done automatically
      • 3 new builds out there
      • calibration constants (CCDB) and run constants (RCDB) updated nightly
    • mechanism for random trigger distribution in place
    • access via MCwrapper transparently
    • N. B: you need to get a personal certificate from the OSG. See the preparation section of “Using the Grid” on the wiki.
  • Other container related work continues
    • Running at NERSC.
    • Container standardization/distribution.
    • Using GlueX software on your desktop via containers.
    • We are still meeting weekly on container-related topics.

 

Build_scripts on OSG

  • Timeline
    • Mon.: Richard puts in pull request for markito3/gluex_docker_devel
    • Tue.: Get hd_root help message on OSG
    • Wed: Successful run of MCwrapper rho simulation
    • Thu: Resources and fresh CCDB and RCDB uploaded
  • Features
    • environment setting, standard syntax works:
      bs=/group/halld/Software/build_scripts
      dist=/group/halld/www/halldweb/html/dist
      source $bs/gluex_env_jlab.sh $dist/version_2.26.xml
    • resources in standard location:
      export JANA_RESOURCE_DIR=/group/halld/www/halldweb/html/resources
    • sqlite databases in standard location:
      export JANA_CALIB_URL=sqlite:////group/halld/www/halldweb/html/dist/ccdb.sqlite
    • reduces load on halldweb.jlab.org
  • Modifications
    • Environment setting was removed from container
    • Oasis bound to container, connection to /group done with soft link:
      $ ls -l /group
      lrwxrwxrwx 1 981 668 44 Mar 2 08:48 /group -> /cvmfs/oasis.opensciencegrid.org/gluex/group
  • Container dance
    • go to Docker Hub, create a repository (think historical collection of Docker containers)
    • link to a “personal” GitHub repository that has a Dockerfile
    • submit a pull request on OSG GitHub repository to add Docker repository to list of Docker repositories
    • wait…Singularity container will appear on OSG’s Singularity CVMFS:
      > ls -l /cvmfs/singularity.opensciencegrid.org/markito3/
      total 1
      lrwxrwxrwx 1 cvmfs cvmfs 112 Mar 2 08:48 gluex_docker_devel:latest -> /cvmfs/singularity.opensciencegrid.org/.images/71/71051c12b2d682bad4d96b8b2f1861486842b29d45a8be9baf3f8d38c32537
    • Changes to the container:
      • Push new Dockerfile to personal GitHub repository.
      • Docker Hub automatically builds a new instance of the Docker container.
      • OSG automatically creates a new Singularity container and updates CVMFS.
      • All OSG nodes automatically see new version of container.
  • Minor Issues
    • Standard CentOS7 build at JLab will not work in “naive” container.
      • Non-standard container or non-standard build?
    • /group binding mechanism does not work for non-CVMFS /group directory.
      • Different container or better CVMFS binding scheme?
    • Finalize rsync scheme for code/databases/resources

Singularity Work: CentOS7 container

February 6, 2018

in /home/marki/swork/images

 

OSG notes

November 14, 2017

  • gsissh username should be gluex
  • proxy is created in /tmp:
> ls -l /tmp/x509up_u2191
-rw------- 1 marki halld-1 6241 Aug 4 13:35 /tmp/x509up_u2191
  • GOC = Grid Operations Center
  • There are GOC problem tickets and Help Desk problem tickets. They are separate systems.

Working with Oasis

logging into the grid submit host

ssh scosg16

check for a proxy, create one, the wrong one first, destroy it, then the right one

scosg16:marki:marki> voms-proxy-info

Couldn't find a valid proxy.

scosg16:marki:marki> voms-proxy-init
Enter GRID pass phrase for this identity:
Your identity: /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
key values mismatch
Function: X509_check_private_key
Creating proxy ............................................................................................................................ Done

Your proxy is valid until Sat Sep 16 02:41:55 2017
scosg16:marki:marki> voms-proxy-info
subject   : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104/CN=2073856599
issuer    : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
identity  : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
type      : RFC compliant proxy
strength  : 1024 bits
path      : /tmp/x509up_u2191
timeleft  : 11:59:50
scosg16:marki:marki> voms-proxy-destroy
scosg16:marki:marki> voms-proxy-info

Couldn't find a valid proxy.

scosg16:marki:marki> voms-proxy-init -voms Gluex
Enter GRID pass phrase for this identity:
Your identity: /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
key values mismatch
Function: X509_check_private_key
Creating temporary proxy ....................... Done
Contacting  gryphn.phys.uconn.edu:15014 [/DC=org/DC=opensciencegrid/O=Open Science Grid/OU=Services/CN=voms/gryphn.phys.uconn.edu] "Gluex" Done
Creating proxy .................... Done

Your proxy is valid until Sat Sep 16 02:47:14 2017
scosg16:marki:marki> voms-proxy-info
subject   : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104/CN=4260201169
issuer    : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
identity  : /DC=org/DC=opensciencegrid/O=Open Science Grid/OU=People/CN=Mark Ito 1104
type      : RFC compliant proxy
strength  : 1024 bits
path      : /tmp/x509up_u2191
timeleft  : 11:59:52

documentation accessing oasis is here: https://twiki.grid.iu.edu/bin/view/Documentation/Release3/UpdateOasis
gsissh into oasis server

scosg16:marki:marki> gsissh -o GSSAPIDelegateCredentials=yes oasis-login.opensciencegrid.org
Last login: Thu Sep 14 22:26:33 2017 from gluey.phys.uconn.edu
[0] 18:48:42 UTC [ouser.gluex@oasis-login:~]$ pwd
/home/login/ouser.gluex
  • To update the Oasis files:
    go to gluex staging area: /stage/oasis/gluex
    make the mods to the files
    Issue the command: osg-oasis-update
[ouser.gluex@oasis-login gluex]$ osg-oasis-update
Submitting job(s).
1 job(s) submitted to cluster 2536.
You can use condor_q to check on the status of your update
[ouser.gluex@oasis-login gluex]$ condor_q

-- Schedd: oasis-login.grid.iu.edu : <129.79.53.147:24122?...  ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD                2536.0   ouser.gluex     9/15 18:59   0+00:00:11 R  0   0.0  oasis-batch-worker 1 jobs; 0 completed, 0 removed, 0 idle, 1 running, 0 held, 0 suspended 

remote commands can be run:

 scosg16:marki:marki> gsissh -o GSSAPIDelegateCredentials=yes oasis-login.opensciencegrid.org hostname
oasis-login.grid.iu.edu

scp works

scosg16:marki:git_test> gsiscp -o GSSAPIDelegateCredentials=yes a.txt oasis-login.opensciencegrid.org:/stage/oasis/gluex/test/
a.txt                                                                                                      100%  127     0.1KB/s   0.1KB/s   00:00

rsync works

scosg16:marki:marki> rsync -ruvt --delete -e 'gsissh -o GSSAPIDelegateCredentials=yes' /home/marki/git_test/ oasis-login.opensciencegrid.org:/stage/oasis/gluex/test/git_test/
sending incremental file list
created directory /stage/oasis/gluex/test/git_test
./
README.md
a.tt
a.txt
aa.txt
b.txt
c.txt
d.txt
e.txt
j.txt
k.txt
.git/
.git/COMMIT_EDITMSG
.git/COMMIT_EDITMSG~
.git/FETCH_HEAD
...
.git/refs/remotes/origin/idea2
.git/refs/remotes/origin/master
.git/refs/tags/
dir/
dir/l.txt
dir/m.txt

sent 43791 bytes  received 1222 bytes  12860.86 bytes/sec
total size is 39107  speedup is 0.87

and after modifying j.txt

scosg16:marki:marki> rsync -ruvt --delete -e 'gsissh -o GSSAPIDelegateCredentials=yes' /home/marki/git_test/ oasis-login.opensciencegrid.org:/stage/oasis/gluex/test/git_test/
sending incremental file list
./
j.txt

sent 2215 bytes  received 71 bytes  304.80 bytes/sec
total size is 39128  speedup is 17.12