Overview of how it would work:
Assumptions:
* There is a user named `scap` that exists on all scap targets.
* Members of the release engineering team can `ssh scap@<target>` from deploy1002. Probably using keyholder.
* A relenger has tagged a commit in scap for a new release.
On deploy server:
* cd /srv/deployment/scap (which is a checkout of the scap git repo)
* git checkout <some tag>
* bin/scap install-scap
* `scap install-scap` then:
* Updates __pycache__ (however that works)
* runs some query to collect a list of hosts that should have scap installed
* rsync's/srv/deployment/scap/scap/ to scap@target:/home/scap/scap/ for each host.
Prereqs:
For this to work there must be a stub scap deb package preinstalled on all targets which contains a /usr/bin/scap which is a symlink to /home/scap/scap/bin/scap. This package would exclude the stuff currently in /usr/lib/python3/dist-packages/scap.
[] Find a way to query the list of scap targets. See https://phabricator.wikimedia.org/T302919#7748986 for a recent list. I assume that cumin is involved. Whatever we use needs to be accessible from deployment.eqiad.wmnet.
[] Need a user (maybe named `scap`, and assumed hereafter in this text) that can be ssh'd into on each of those hosts (similar to how deployers can ssh as mwdeploy to mediawiki targets during scap sync operations.. how is that set up?).
[] Change scap's deb to just include the /usr/bin/scap -> /home/scap/scap/bin/scap symlink.
[] What's the version number of this package? It needs to be something that won't be confusing.
[] Looks like /usr/share/bash-completion/completions/scap should a few other bits should be included as well. Those could be symlinks too.
[] Bootstapping the deploy server. Use git.
[] Transition plan