# Copyright (c) 2017-2018 Intel Corporation. # # 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: Define XML file name set_fact: xml_file: "{{ '/tmp/'+item.name+'.xml' }}" - name: Delete the file, if exists file: path: "{{ xml_file }}" state: absent - name: Create a new empty file file: path: "{{ xml_file }}" state: touch - name: Add root "network" node blockinfile: path: "{{ xml_file }}" marker: "" content: | - name: Add new children nodes to "network" node xml: path: "{{ xml_file }}" xpath: /network add_children: - name: "{{ item.name }}" - forward: mode: nat - bridge: name: "{{ item.name }}" stp: "on" delay: "0" - ip: address: "{{ item.host_ip }}" netmask: "{{ item.netmask }}" pretty_print: yes - name: Add new children nodes to "forward" node xml: path: "{{ xml_file }}" xpath: /network/forward add_children: - nat pretty_print: yes - name: Add new children nodes to "nat" node xml: path: "{{ xml_file }}" xpath: /network/forward/nat add_children: - port: start: "1024" end: "65535" pretty_print: yes - name: Define the networks virt_net: command: define name: "{{ item.name }}" xml: "{{ lookup('file', xml_file) }}" - name: Set autostart to yes virt_net: autostart: yes name: "{{ item.name }}" - name: Start the networks virt_net: command: start name: "{{ item.name }}" - name: Remove XML file file: path: "{{ xml_file }}" state: absent