ipfs
IPFS
Features:
- Automatic
Peering.Peers
generation. - Configuration is applied via
ipfs config
using custom module. Supports idempotence and generating diffs. - Allows to specify custom IP public address, if running behind router.
- Downloads binaries for updates via local IPFS gateway, if already installed.
- Runs
ipfs repo gc
as a separate service. - Supports x86_64 and aarch64.
Requirements
- Target system uses systemd
Role Variables
ipfs_ansible_group
: Ansible group, that contains managed ipfs nodes. Default:all
.ipfs_home_dir
: default/var/lib/ipfs
ipfs_version
: (it's obvious)ipfs_init_profile
: Profile to apply when initializing ipfs (see Configure profile)ipfs_gc_when
: When to runipfs repo gc
. Systemd time (seeman systemd.time
).ipfs_force_https_download
: Force downloading binary archive from https, even when service is running. Default:no
.ipfs_force_migration
: Force runningipfs repo migrate
. Implies unconditionally stopping the service. Default:no
.ipfs_swarm_port
: 4001ipfs_public_addresses
: Public swarm addresses. Default:/ip4/{{ ansible_default_ipv4['address'] }}/tcp/{{ ipfs_swarm_port }}
/ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic
/ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1
/ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1/webtransport
ipfs_private_addresses
: Formatted likeipfs_public_addresses
. Used for direct connection between IPFS nodes. May be useful when connecting over LAN on VPN.ipfs_config_extra
: Additional IPFS node config. The yaml structure is converted to json and sent toipfs config
. Default value is
This results in runningipfs_config_extra: Gateway.PublicGateways: localhost: null
which comes from https://github.com/ipfs/kubo/blob/master/docs/config.md#implicit-defaults-of-gatewaypublicgatewaysipfs config --json Gateway.PublicGateways '{"localhost": null}'
Dependencies
None
Example Playbook
Just:
- hosts: ipfs
roles: [ipfs]
License
Author Information
Adam "etam" Mizerski adam@mizerski.pl https://etam-software.eu
About
Sets up IPFS nodes, fills "Peering.Peers" and contains custom ansible module that talks with "ipfs config".
Install
ansible-galaxy install etam/ansible-role-ipfs
License
gpl-3.0
Downloads
102
Owner
Doing a bit of programming, a bit of Linux sysadmin, a bit of openSUSE packaging, and most importantly enjoying free weekends.