[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2045: Make the paths of the different folders configurable

Tahoe-LAFS trac at tahoe-lafs.org
Mon Sep 22 22:16:07 UTC 2014


#2045: Make the paths of the different folders configurable
-------------------------+-------------------------------------------------
     Reporter:  meskio   |      Owner:  leif
         Type:           |     Status:  new
  enhancement            |  Milestone:  undecided
     Priority:  normal   |    Version:  1.10.0
    Component:  code-    |   Keywords:  FHS unix daemon twistd review-
  nodeadmin              |  needed multiuser-gateway
   Resolution:           |
Launchpad Bug:           |
-------------------------+-------------------------------------------------

Comment (by warner):

 (sorry to be coming late to the party here)

 My current opinion: I'm happy to make it easier to be FHS-compliant, I
 absolutely want Tahoe in Debian, I'm +0 on enabling system-wide installs,
 I'm -1 on adding a bunch of `--blahdir=` options, and I'm -0 on extending
 tahoe.cfg to express the necessary directory paths.

 I guess I'd assumed that getting Tahoe into debian would just mean making
 `/usr/bin/tahoe` work, enabling users to create their own nodes (in
 `~/.tahoe`) and use them independently. I can see how that's not an ideal
 assumption: there are almost-reasonable ways to share access to a system-
 wide node among multiple users. Currently the main problem is that they'll
 all be forced to use the same grid, convergence secret, and encoding
 parameters. In the future, as we start building
 [wiki:Summit2Day1#AgentGatewaysplit Agents] and control panels and stuff,
 this will get more challenging. But right now I can see it working well
 enough.

 One option would be to merely change the Tahoe codebase to put the
 locations of all these directories into a single source file. The Debian
 /FHS-compliant version could patch this file to look in the appropriate
 places for that platform. The trunk version could stick with the existing
 NODEDIR-relative approach. That might be easiest for everybody, although
 it would mean a non-upstreamable patch for the debian folks.

 Another would be to have tahoe.cfg settings for these directories, and do
 something in the debian world to populate it appropriately for the FHS.
 Maybe ship a separate create-node script that puts everything into
 tahoe.cfg? Maybe add a `tahoe create-node --fhs` and have the debian
 postinst script run that if /etc/tahoe doesn't already exist?

 I guess one critical question is: to what extent is it appropriate to
 automatically create a node at install time? Tahoe nodes are useless
 without a specific grid to connect to, so the answer is probably "no, it's
 not appropriate". Which means really the package needs to point admins at
 the right tool to create this system-wide shared node some time *after*
 installation. How do we want them to do this? I like writing the docs
 first, before tests and code.. what instructions could we feel comfortable
 giving sysadmins to create their system-wide node, and how would it differ
 from what users would use to create a personal node?

 That said, how technically difficult would it be to use `tahoe.cfg` to
 drive this? Suppose we define BASEDIR as the thing that holds tahoe.cfg,
 and therefore put it in /etc/tahoe or something. Until we fix #1159 we
 also need the .tac file in there, but that's config-like and static, so
 that's fine. We read the config file before doing anything else. Logs are
 easy enough to write elsewhere. There are some FURLs that are generated on
 each node startup, but tahoe.cfg can instruct the node to use other
 directories for them (/var/lib ?) first. So probably doable.

 Or, should we go even narrower and just add a `tahoe --fhs` global option?
 One boolean that the node knows should change the configuration of all
 these paths to something that matches FHS? I'm less confident about that,
 because then running multiple nodes on a single box becomes really hard
 (you need to coordinate the various subdirs of /etc/tahoe ,
 /var/lib/something, etc).

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2045#comment:53>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list