95 lines
3.1 KiB
YAML
95 lines
3.1 KiB
YAML
# SPDX-License-Identifier: BSD-3-Clause
|
|
---
|
|
- hosts: all
|
|
vars:
|
|
type: veth
|
|
interface: veth0
|
|
tasks:
|
|
- include_tasks: tasks/show_interfaces.yml
|
|
- include_tasks: tasks/manage_test_interface.yml
|
|
vars:
|
|
state: present
|
|
- name: Set up gateway ip on veth peer
|
|
shell: |
|
|
ip netns add ns1
|
|
ip link set peer{{ interface }} netns ns1
|
|
ip netns exec ns1 ip -6 addr add 2001:db8::1/32 dev peer{{ interface }}
|
|
ip netns exec ns1 ip link set peer{{ interface }} up
|
|
when:
|
|
# netns not available on RHEL/CentOS 6
|
|
- ansible_distribution_major_version != '6'
|
|
- block:
|
|
- name: >-
|
|
TEST: I can configure an interface with static ipv6 config
|
|
debug:
|
|
msg: "##################################################"
|
|
- import_role:
|
|
name: linux-system-roles.network
|
|
vars:
|
|
network_connections:
|
|
- name: "{{ interface }}"
|
|
type: ethernet
|
|
state: up
|
|
ip:
|
|
dhcp4: false
|
|
auto6: false
|
|
address:
|
|
- "2001:db8::2/32"
|
|
- "2001:db8::3/32"
|
|
- "2001:db8::4/32"
|
|
gateway6: "2001:db8::1"
|
|
- include_tasks: tasks/assert_device_present.yml
|
|
- include_tasks: tasks/assert_profile_present.yml
|
|
vars:
|
|
profile: "{{ interface }}"
|
|
- name: Get ip address information
|
|
command: "ip addr show {{ interface }}"
|
|
register: ip_addr
|
|
- name:
|
|
debug:
|
|
var: ip_addr.stdout
|
|
- name: Assert ipv6 addresses are correctly set
|
|
assert:
|
|
that:
|
|
- >-
|
|
'inet6 2001:db8::2/32' in ip_addr.stdout
|
|
- >-
|
|
'inet6 2001:db8::3/32' in ip_addr.stdout
|
|
- >-
|
|
'inet6 2001:db8::4/32' in ip_addr.stdout
|
|
- name: Get ipv6 routes
|
|
command: "ip -6 route"
|
|
register: ipv6_route
|
|
- name:
|
|
debug:
|
|
var: ipv6_route.stdout
|
|
- name: Assert default ipv6 route is set
|
|
assert:
|
|
that:
|
|
- >-
|
|
"default via 2001:db8::1 dev {{ interface }}"
|
|
in ipv6_route.stdout
|
|
- name: Test gateway can be pinged
|
|
command: ping6 -c1 2001:db8::1
|
|
when:
|
|
- ansible_distribution_major_version != '6'
|
|
always:
|
|
- name: "TEARDOWN: remove profiles."
|
|
debug:
|
|
msg: "##################################################"
|
|
- import_role:
|
|
name: linux-system-roles.network
|
|
vars:
|
|
network_connections:
|
|
- name: "{{ interface }}"
|
|
persistent_state: absent
|
|
state: down
|
|
ignore_errors: true
|
|
- include_tasks: tasks/manage_test_interface.yml
|
|
vars:
|
|
state: absent
|
|
- name: Clean up namespace
|
|
command: ip netns delete ns1
|
|
when:
|
|
- ansible_distribution_major_version != '6'
|