ansible.utils.in_network (4.0.0) — test

Test if IP address falls in the network

| "added in version" 2.2.0 of ansible.utils"

Authors: Priyam Sahoo (@priyamsahoo)

Install collection

Install with ansible-galaxy collection install ansible.utils:==4.0.0


Add to requirements.yml

  collections:
    - name: ansible.utils
      version: 4.0.0

Description

This plugin checks if the provided IP address belongs to the provided network

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

#### Simple examples

- name: Check if 10.1.1.1 is in 10.0.0.0/8
  ansible.builtin.set_fact:
    data: "{{ '10.1.1.1' is ansible.utils.in_network '10.0.0.0/8' }}"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# TASK [Check if 10.1.1.1 is in 10.0.0.0/8] ***********************************
# ok: [localhost] => {
#     "ansible_facts": {
#         "data": true
#     },
#     "changed": false
# }

- name: Check if 10.1.1.1 is not in 192.168.1.0/24
  ansible.builtin.set_fact:
    data: "{{ '10.1.1.1' is not ansible.utils.in_network '192.168.1.0/24' }}"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# TASK [Check if 10.1.1.1 is not in 192.168.1.0/24] ****************************
# ok: [localhost] => {
#     "ansible_facts": {
#         "data": true
#     },
#     "changed": false
# }

- name: Check if 2001:db8:a::123 is in 2001:db8:a::/64
  ansible.builtin.set_fact:
    data: "{{ '2001:db8:a::123' is ansible.utils.in_network '2001:db8:a::/64' }}"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# TASK [Check if 2001:db8:a::123 is in 2001:db8:a::/64] ****************************
# task path: /home/prsahoo/playbooks/collections/localhost_test/utils_in_network.yml:16
# ok: [localhost] => {
#     "ansible_facts": {
#         "data": true
#     },
#     "changed": false
# }

- name: Check if 2001:db8:a::123 is not in 10.0.0.0/8
  ansible.builtin.set_fact:
    data: "{{ '2001:db8:a::123' is not ansible.utils.in_network '10.0.0.0/8' }}"

Inputs

    
ip:
    description:
    - A string that represents an IP address
    - 'For example: C(10.1.1.1)'
    required: true
    type: str

network:
    description:
    - A string that represents the network address in CIDR form
    - 'For example: C(10.0.0.0/8)'
    required: true
    type: str

Outputs

data:
  description:
  - If jinja test satisfies plugin expression C(true)
  - If jinja test does not satisfy plugin expression C(false)