--- # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later - name: set_fact: interfaces_testfile: '{{ remote_tmp_dir }}/interfaces' interfaces_testfile_3841: '{{ remote_tmp_dir }}/interfaces_3841' interfaces_testfile_7610: '{{ remote_tmp_dir }}/interfaces_7610' - name: Copy interfaces file copy: src: 'files/interfaces_ff' dest: '{{ interfaces_testfile }}' - name: Change IP address to 1.2.3.5 community.general.interfaces_file: dest: "{{ interfaces_testfile }}" iface: eno1 option: address value: 1.2.3.5 register: ifile_1 - assert: that: - ifile_1 is changed - name: Change IP address to 1.2.3.5 again community.general.interfaces_file: dest: "{{ interfaces_testfile }}" iface: eno1 option: address value: 1.2.3.5 register: ifile_2 - assert: that: - ifile_2 is not changed - name: 3841 - copy interfaces file copy: src: 'files/interfaces_ff_3841' dest: '{{ interfaces_testfile_3841 }}' - name: 3841 - floating_ip_interface_up_ip 2a01:a:b:c::1/64 dev eth0 interfaces_file: option: up iface: eth0 dest: "{{ interfaces_testfile_3841 }}" value: 'ip addr add 2a01:a:b:c::1/64 dev eth0' state: present register: ifile_3841_a - name: 3841 - floating_ip_interface_up_ip 2a01:a:b:c::1/64 dev eth0 (again) interfaces_file: option: up iface: eth0 dest: "{{ interfaces_testfile_3841 }}" value: 'ip addr add 2a01:a:b:c::1/64 dev eth0' state: present register: ifile_3841_b - name: 3841 - check assertions assert: that: - ifile_3841_a is changed - ifile_3841_b is not changed - name: 7610 - create file copy: dest: '{{ interfaces_testfile_7610 }}' content: | iface ens3 inet dhcp iface ens3 inet6 auto - name: 7610 - modify file interfaces_file: dest: '{{ interfaces_testfile_7610 }}' iface: ens3 address_family: "inet6" option: "{{ item.option }}" value: "{{ item.value }}" loop: - option: "method" value: "static" - option: "address" value: "1:2::3/48" - name: 7610 - read file slurp: src: '{{ interfaces_testfile_7610 }}' register: content_7610 - name: 7610 - check assertions assert: that: - content_7610.content | b64decode == expected_content vars: expected_content: | iface ens3 inet dhcp iface ens3 inet6 static address 1:2::3/48 - name: 7610 - modify file again interfaces_file: dest: '{{ interfaces_testfile_7610 }}' iface: ens3 option: method value: foobar - name: 7610 - read file slurp: src: '{{ interfaces_testfile_7610 }}' register: content_7610 - name: 7610 - check assertions assert: that: - content_7610.content | b64decode == expected_content vars: expected_content: | iface ens3 inet foobar iface ens3 inet6 foobar address 1:2::3/48