Program for transferring experiment folders from rig computers to an NFS filesystem, with subsequent automated analysis on an LSF cluster. Meant to be run from a cron job or similar.
Also provided is an executable Python script,
transfero-via-bsub-without-transfer, which runs Transfero on-demand,
but with transfer from the rigs disabled. (So only analysis is
enabled.)
Requires Python >=3.6. (The system Python in Oracle Linux 8.4 works.)
-
Have the Systems groups set up a "robot" user for the lab. E.g.
wilsonrobotmight be the robot user for the Wilson Lab. Have them add your ssh key to the list of keys that can log in to this account. -
Add e.g. a
wilsonrobot_configuration.yamlto the repo. Use one of the existing*_configuration.yamlfiles as a template.
(Next few steps are on the rig computer(s).)
-
If the rig computer has a local
labadminuser, use that. Otherwise, create a e.g.localwilsonrobotuser, and add it to the Administrators group. -
Login as the user from step 3.
-
Install cygwin. Add openssh, emacs packages.
-
Start a cygwin terminal with ”Run as Administrator”
-
Run ”ssh-host-config” and when prompted enter:
strict mode: no
install sshd as a service: yes
value of CYGWIN: <LEAVE THIS EMPTY>
-
Either start the service with
cygrunsrv --start cygsshdor let it start automatically after a reboot. -
Will likely have to open port 22 on Windows Firewall.
-
If you created a user in step 3, then to ssh into that account you will have to do e.g.
ssh wilsonlab-ww7+localwilsonrobot@wilsonlab-ww7.hhmi.org
-
From e.g. submit.int.janelia.org, use
ssh-copy-idto enable passwordless login into the rig machine. -
ssh into submit.int.janelia.org as (e.g.) wilsonrobot, and use \ssh-keygen
andssh-copy-id` to enable the wilsonrobot user to login to the rig machine without using a password. Use an empty passphrase when you create the keys. -
Now that you've configured things for passwordless login from your account(s) and from wilsonrobot, disable passwordful login. To do this, launch a cygwin terminal as administrator, and edit the /etc/sshd_config file. Find the PasswordAuthentication line and uncomment it if needed. Make it so it reads:
PasswordAuthentication no
-
Back on your normal workstation, find your local transfero repo or clone a fresh copy. Create a e.g. wilsonrobot_configuration.yaml, using one of the existing
*_configuration.yamlfiles as a template. Set that up appropriately. -
Edit the
copy_into_production.pyfile, adding a new e.g. wilsonrobot entry to theusername_from_user_indexlist. -
Commit your changes, push, tag it, then run the
copy_into_production.pyscript. -
If you're setting up Transfero to launch FlyDiscoAnalysis, update the
copy_into_production.pyfile for FlyDiscoAnalysis. -
If you're setting up Transfero to launch FlyDiscoAnalysis, create a new e.g. wilsonrobot_configuration.m in the FDA repo, and set the fields appropriately.
-
If you're setting up Transfero to launch FlyDiscoAnalysis, commit, tag, and push the updated FDA repo.
-
If you're setting up Transfero to launch FlyDiscoAnalysis, run the
copy_into_production.pyscript for it. -
On submit, as e.g. wilsonrobot, run the
transfero/turn_on_transfero.pyscript to set up the cron job to run at 10 pm every evening.
That should do it.