Installing go-ipfs with puppet

I am looking for advice or existing code to install IPFS with puppet on CentOS 7.

IPFS is not available in most package managers (separate discussion on that here), so I guess I will be creating a puppet module to install IPFS. The “canonical” install instructions don’t fit very well with puppet’s idempotent philosophy, but there are also multiple alternative installation procedures in the project readme. I will summarize the options here:

  1. ensure prebuilt package tarball on machine, exec unzip, exec install
  2. ensure ipfs_update on machine, exec ipfs_update install
  3. snap package installed using an exec, or else implementing snap provider for package (see here)
  4. vcsrepo the IPFS source code, install go… not packaged either?!? - ok so using this golang module I guess, exect go get, exec make install

None of these look great to me. Perhaps (1) or (2) really are the best way to go?

My first pass at install module using approach (2) seems to be working, but it’s pretty kludgey.

1 Like