# Ansible and ip6tables

**URL:** <https://forum.ansible.com/t/ansible-and-ip6tables/29174>\
**Category:** Ansible Project\
**Created:** [December 2, 2018, 7:43pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174 "2018-12-02T19:43:48Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anurag\_Bhatia](https://avatars.discourse-cdn.com/v4/letter/a/e0b2c6/32.png) [@Anurag\_Bhatia](https://forum.ansible.com/u/Anurag_Bhatia)\
**Post date:** [December 2, 2018, 7:43pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/1 "2018-12-02T19:43:48Z")

</div>

Hi

Has anyone been able to make ansible work with ip6tables (for IPv6 firewall) ?

As per module documentation:  
[https://docs.ansible.com/ansible/2.5/modules/iptables\_module.html](https://docs.ansible.com/ansible/2.5/modules/iptables_module.html)

This is the same as the behaviour of the iptables and ip6tables command which this module uses internally.

But if I do:

- name: Allow traffic from loopback  
ip6tables:  
chain: INPUT  
in\_interface: lo  
jump: ACCEPT  
comment: Allow traffic from loopback

The playbook throws an error:

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to have been in ‘firewall-ipv6.yml’: line 6, column 9, but may  
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

# Start of basic config for firewall to make system work

- name: Allow traffic from loopback  
^ here

Thanks.

---

<div class="post-metadata">

**Author:** ![Michael\_M1](https://avatars.discourse-cdn.com/v4/letter/m/e274bd/32.png) [@Michael\_M1](https://forum.ansible.com/u/Michael_M1)\
**Post date:** [December 2, 2018, 8:00pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/2 "2018-12-02T20:00:08Z")

</div>

Anurag,

If this is your entire playbook, you are missing the ‘tasks:’ directive.

---

<div class="post-metadata">

**Author:** ![Anurag\_Bhatia](https://avatars.discourse-cdn.com/v4/letter/a/e0b2c6/32.png) [@Anurag\_Bhatia](https://forum.ansible.com/u/Anurag_Bhatia)\
**Post date:** [December 2, 2018, 8:02pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/3 "2018-12-02T20:02:01Z")

</div>

Hi

That was not the entire playbook. I just took the specific portion out.

Here’s entire playbook (which includes tasks for your reference):

---

<div class="post-metadata">

**Author:** ![Karl\_Auer](https://avatars.discourse-cdn.com/v4/letter/k/cc9497/32.png) [@Karl\_Auer](https://forum.ansible.com/u/Karl_Auer)\
**Post date:** [December 2, 2018, 8:06pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/4 "2018-12-02T20:06:15Z")

</div>

Double check your indentation.

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [December 2, 2018, 8:09pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/5 "2018-12-02T20:09:45Z")

</div>

There is no Ansible module called ip6tables, if you read the documentation you linked in your first post you'll see how to use ipv6.

---

<div class="post-metadata">

**Author:** ![Anurag\_Bhatia](https://avatars.discourse-cdn.com/v4/letter/a/e0b2c6/32.png) [@Anurag\_Bhatia](https://forum.ansible.com/u/Anurag_Bhatia)\
**Post date:** [December 2, 2018, 8:17pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/6 "2018-12-02T20:17:57Z")

</div>

Just re-read but still can’t make out what to use for IPv6.

Can you share a sample playbook? All examples linked on the module page are for IPv4.

Thanks.

---

<div class="post-metadata">

**Author:** ![Karl\_Auer](https://avatars.discourse-cdn.com/v4/letter/k/cc9497/32.png) [@Karl\_Auer](https://forum.ansible.com/u/Karl_Auer)\
**Post date:** [December 2, 2018, 8:38pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/7 "2018-12-02T20:38:29Z")

</div>

Use the same module - just provide IPv6 addresses, networks etc. Also, see the “ipversion” attribute in the module.

---

<div class="post-metadata">

**Author:** ![Pshem\_Kowalczyk](https://avatars.discourse-cdn.com/v4/letter/p/e480ec/32.png) [@Pshem\_Kowalczyk](https://forum.ansible.com/u/Pshem_Kowalczyk)\
**Post date:** [December 2, 2018, 11:09pm UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/8 "2018-12-02T23:09:43Z")

</div>

Google seems to index not the most recent version of the docs. Here’s the current version: [https://docs.ansible.com/ansible/latest/modules/iptables\_module.html](https://docs.ansible.com/ansible/latest/modules/iptables_module.html)

Here’s an example:

- iptables:  
chain: INPUT  
protocol: tcp  
destination\_port: 8080  
jump: ACCEPT  
rule\_num: 5  
ip\_version: “ipv6”

kind regards  
Pshem

```auto

```

---

<div class="post-metadata">

**Author:** ![Anurag\_Bhatia](https://avatars.discourse-cdn.com/v4/letter/a/e0b2c6/32.png) [@Anurag\_Bhatia](https://forum.ansible.com/u/Anurag_Bhatia)\
**Post date:** [December 3, 2018, 8:44am UTC](https://forum.ansible.com/t/ansible-and-ip6tables/29174/9 "2018-12-03T08:44:46Z")

</div>

Hi Pshem

The addition of ip\_version: “ipv6” works perfectly.

Thanks for your help.
