ansible-role-systemd_networkd/tests/test.yml
Jonathan Rosser 63ad4cffac Use ansible_facts[] instead of fact variables
See https://github.com/ansible/ansible/issues/73654

Change-Id: I36a098e4b028bdf09b38e2f2c99f68f311ce9d32
2021-02-24 14:26:31 +00:00

187 lines
5.5 KiB
YAML

---
# Copyright 2018, Rackspace US, Inc.
# Copyright 2018, Logan Vig <logan2211@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Playbook for role testing
hosts: localhost
connection: local
become: true
gather_facts: true
roles:
- role: "systemd_networkd"
vars:
systemd_networkd_link:
MACAddressPolicy: "persistent"
NamePolicy: "kernel database onboard slot path"
systemd_run_networkd: yes
systemd_resolved:
DNS: "208.67.222.222"
FallbackDNS: "8.8.8.8"
Cache: yes
systemd_netdevs:
- NetDev:
Name: dummy0
Kind: dummy
- NetDev:
Name: dummy1
Kind: dummy
- NetDev:
Name: bond0
Kind: bond
Bond:
Mode: 802.3ad
TransmitHashPolicy: layer3+4
MIIMonitorSec: 1s
LACPTransmitRate: fast
- NetDev:
Name: br-dummy
Kind: bridge
- NetDev:
Name: dummy2
Kind: dummy
- NetDev:
Name: br-test
Kind: bridge
- NetDev:
Name: br-test2
Kind: bridge
systemd_networks:
- interface: "dummy0"
bond: "bond0"
mtu: 9000
- interface: "dummy1"
bond: "bond0"
mtu: 9000
- interface: "bond0"
bridge: "br-dummy"
mtu: 9000
- interface: "br-dummy"
address: "10.0.0.100"
netmask: "255.255.255.0"
gateway: "{{ ansible_facts['default_ipv4']['gateway'] | default('10.0.0.1') }}"
mtu: 9000
usedns: true
static_routes:
- gateway: "10.1.0.1"
cidr: "10.1.0.0/24"
config_overrides:
Network:
ConfigureWithoutCarrier: true
link_config_overrides:
Alias: "dummy-bridge0"
- interface: "dummy2"
bridge: "br-test"
- interface: "br-test"
address: "10.1.0.1"
netmask: "255.255.255.0"
- interface: "br-test2"
address: 10.2.0.1
netmask: "255.255.255.0"
ipforward: true
- name: Test networkd
hosts: localhost
connection: local
become: true
gather_facts: true
tasks:
- name: Interface check
assert:
that:
- ansible_facts['dummy0']['active']
- ansible_facts['dummy0']['type'] == 'ether'
- ansible_facts['dummy0']['mtu'] == 9000
- ansible_facts['dummy1']['active']
- ansible_facts['dummy1']['type'] == 'ether'
- ansible_facts['dummy1']['mtu'] == 9000
- ansible_facts['dummy2']['active']
- ansible_facts['dummy2']['type'] == 'ether'
- name: Bond check
assert:
that:
- ansible_facts['bond0']['active']
- ansible_facts['bond0']['type'] == 'bonding'
- ansible_facts['bond0']['mtu'] == 9000
- name: Bridge check
assert:
that:
- ansible_facts['br_dummy']['active']
- ansible_facts['br_dummy']['type'] == 'bridge'
- ansible_facts['br_dummy']['ipv4']['address'] == '10.0.0.100'
- ansible_facts['br_dummy']['ipv4']['netmask'] == '255.255.255.0'
- name: Bridge check
assert:
that:
- ansible_facts['br_test']['active']
- ansible_facts['br_test']['type'] == 'bridge'
- ansible_facts['br_test']['ipv4']['address'] == '10.1.0.1'
- ansible_facts['br_test']['ipv4']['netmask'] == '255.255.255.0'
- name: Check link config overrides
shell: 'grep -wo "Alias" /etc/systemd/network/*br-dummy.link'
changed_when: false
- name: Check general link config
shell: 'grep -wo "{{ item }}" /etc/systemd/network/*.link'
changed_when: false
with_items:
- MACAddressPolicy
- NamePolicy
- name: Check forwarding is enabled
shell: 'grep -wo ^1$ /proc/sys/net/{{ item }}'
changed_when: false
with_items:
- "ipv4/ip_forward"
- "ipv4/conf/all/forwarding"
- "ipv4/conf/br-test2/forwarding"
- name: Playbook for role testing with cleanup
hosts: localhost
connection: local
become: true
gather_facts: true
roles:
- role: "systemd_networkd"
post_tasks:
- name: Interface check
assert:
that:
- ansible_facts['br_test'] is defined
- ansible_facts['dummy2']['active']
- ansible_facts['dummy2']['type'] == 'ether'
- name: Bridge check
assert:
that:
- ansible_facts['br_test']['active']
- ansible_facts['br_test']['type'] == 'bridge'
- ansible_facts['br_test']['ipv4']['address'] == '10.1.0.1'
- ansible_facts['br_test']['ipv4']['netmask'] == '255.255.255.0'
vars:
systemd_interface_cleanup: true
systemd_run_networkd: yes
systemd_netdevs:
- NetDev:
Name: dummy2
Kind: dummy
- NetDev:
Name: br-test
Kind: bridge
systemd_networks:
- interface: "dummyX"
bridge: "br-test"
- interface: "br-test"
address: "10.1.0.1"
netmask: "255.255.255.0"