Tools for maintaining infrastructure for the IPFS community.
This repository contains the technical infrastructure of the IPFS community.
ipfs bootstrap
Infrastructure that isn't contained here:
We use a tool called Provsn to maintain the setup of hosts and services. The fundamental principle of Provsn is that hosts are in a certain state, and units of code are run to transition into a different state.
Provsn is a plain shell script, and each unit consists of shell scripts too:
env
script exposes variables and functions to the unit itself, and other units.build
script is run on the client and builds container images, config files, etc.install
script is run on the host and transitions it into the desired state.Note: there are a few bits of Ansible code left over, which are to be migrated to Provsn.
You can find them in the ansible/
directory.
To test whether you're all set up, execute a simple command on all hosts.
> ./provsn exec all 'whoami'
pluto: root
uranus: root
[...]
Two environment variables can be used to alter Provsn's operation:
PROVSN_JOBS
-- this controls the number of hosts to run on in parallel, and defaults to 4.PROVSN_TRACE
-- if set, this enables Bash tracing (set -x
) for extensive debugging information.
Note that this will contain sensitive information and secrets.Add you ssh-key to the list of keys available in base/env.sh
, like this: https://github.com/ipfs/infrastructure/blob/master/base/env.sh#L9 and then submit a PR with the changes.
More info in https://github.com/ipfs/community
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.
MIT