Getting started

Initial configuration

The default radvd installation does not set up any configuration file, and the service does not start correctly without proper configuration in place.

The debops.radvd role will try and autogenerate a radvd configuration based on the host environment. Any bridge interfaces with global IPv6 addresses will be enabled by default and included in the configuration. If you don't have any valid bridges with IPv6 addresses, the role execution will fail because the role will try and restart radvd service on configuration changes.

To avoid the issues with initial configuration, you should ensure that hosts on which you install radvd have proper network configuration. You can use the debops.ifupdown role to create a virtual network bridge or, alternatively, create radvd configuration for any existing interfaces. For example, to offer Router Advertisements on a private, internal network, you can add this configuration to your Ansible inventory:

radvd__interfaces:

  - name: 'eth1'
    options:
      - 'AdvSendAdvert': True
      - 'IgnoreIfMissing': True
    prefixes:
      - name: '::/64'
        options:
          - 'AdvOnLink': True
          - 'AdvAutonomous': True

See radvd__interfaces for information about interface configuration.

Example inventory

To enable radvd configuration on a host, it needs to be added to the [debops_service_radvd] Ansible inventory group:

[debops_service_radvd]
hostname

Example playbook

If you are using this role without DebOps, here's an example Ansible playbook that uses debops.radvd role:

---

- name: Configure Router Advertisement Daemon
  hosts: [ 'debops_service_radvd', 'debops_radvd' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'

  roles:

    - role: debops.radvd
      tags: [ 'role::radvd', 'skip::radvd' ]