Iptables error when installing v4 using ansible

In the past I have installed Chirpstack v3 dozens of times using the ansible playbook method of performing a remote (non-Vagrant) installation and it always just worked.

So - I figured I’d give the v4 ansible installer a try today:

ansible-playbook -i inventory deploy.yml
[WARNING]: Could not match supplied host pattern, ignoring: vagrant

PLAY [install python] ************************************************************************************************

TASK [install python-minimal] ****************************************************************************************
changed: [v4testchirp]

PLAY [single-server ChirpStack setup] ********************************************************************************

TASK [Gathering Facts] ***********************************************************************************************
ok: [v4testchirp]

TASK [base : upgrade installed packages] *****************************************************************************
ok: [v4testchirp]

TASK [base : install packages] ***************************************************************************************
ok: [v4testchirp] => (item=apt-transport-https)
ok: [v4testchirp] => (item=iptables-persistent)
ok: [v4testchirp] => (item=sudo)
ok: [v4testchirp] => (item=gpg)
ok: [v4testchirp] => (item=golang-cfssl)

TASK [base : import ChirpStack gpg key] ******************************************************************************
ok: [v4testchirp]

TASK [base : add ChirpStack deb repository] **************************************************************************
ok: [v4testchirp]

TASK [chirpstack-ca : create directory] ******************************************************************************
ok: [v4testchirp]

TASK [chirpstack-ca : copy configuration] ****************************************************************************
ok: [v4testchirp] => (item=ca-config.json)
ok: [v4testchirp] => (item=ca-csr.json)

TASK [chirpstack-ca : generate chirpstack ca] ************************************************************************
ok: [v4testchirp]

TASK [iptables : allow connections on configured ports] **************************************************************
fatal: [v4testchirp]: FAILED! => {"msg": "'iptables' is undefined"}

PLAY RECAP ***********************************************************************************************************
v4testchirp                : ok=9    changed=1    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

I’m assuming it is complaining about something in my
group_vars/single_server.yml

However - it looks OK to me:

# iptable configuration
#
# all ports will be blocked, except the ports listed below
iptables:
  accept:
    -
      port: 22
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 80
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 443
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 1883
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 1884
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 3001
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 8083
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 8883
      source: 0.0.0.0/0
      protocol: tcp
    -
      port: 1700
      source: 0.0.0.0/0
      protocol: udp

# Mosquitto configuration (MQTT)
mosquitto:
  # the full domain by which the MQTT broker is reachable
  # e.g. subdomain.example.com
  fqdn: v4testchirp.(removed)

# ChirpStack Gateway Bridge configuration
chirpstack_gateway_bridge:
  # Region.
  # This is used as MQTT topic prefix, and must match one of the available
  # regions that are configured in the chirpstack.toml configuration file.
  region: us915

# ChirpStack configuration.
chirpstack:
  # The full domain by which ChirpStack is reachable.
  # e.g. subdomain.example.com
  fqdn: v4testchirp.(removed)

  # If enabled, a Let's Encrypt certificate will be configured. Else a
  # self-signed certificate will be used.
  letsencrypt:
    email: (removed)
    request: true

  # API configuration.
  api:
    # You must replace this value!
    # To generate random secret:
    # openssl rand -base64 32
    secret: ppzBJbseqPD9wKTrapjntrL8N3E54ZwcIdTIEwIeb8M=

  # PostgreSQL database credentials.
  # The role and database will be created by Ansible.
  postgresql:
    db: chirpstack
    user: chirpstack
    password: (removed)
    host: localhost