From 33189462c6fd60496ae1afec093fb9803d23a18b Mon Sep 17 00:00:00 2001 From: John O Loughlin Date: Thu, 15 Feb 2018 18:24:52 +0000 Subject: Allow VMs to access internet Add option to the config file for default network. Check to see if 1 default network is defined. Enable nat on all defined networks. Add default gateway to VM JIRA: YARDSTICK-1016 Change-Id: Ie943a7c7b4f1a9673774cf8fedaba0af352cd7f4 Signed-off-by: John O Loughlin --- .../infra_create_network/tasks/create_xml.yaml | 106 ----------------- .../infra_create_network/tasks/create_xml.yml | 126 +++++++++++++++++++++ ansible/roles/infra_create_network/tasks/main.yml | 2 +- 3 files changed, 127 insertions(+), 107 deletions(-) delete mode 100644 ansible/roles/infra_create_network/tasks/create_xml.yaml create mode 100644 ansible/roles/infra_create_network/tasks/create_xml.yml (limited to 'ansible/roles/infra_create_network') diff --git a/ansible/roles/infra_create_network/tasks/create_xml.yaml b/ansible/roles/infra_create_network/tasks/create_xml.yaml deleted file mode 100644 index a01c7974a..000000000 --- a/ansible/roles/infra_create_network/tasks/create_xml.yaml +++ /dev/null @@ -1,106 +0,0 @@ -# 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 }}" - - bridge - - ip - pretty_print: yes - -- name: Add "name" attribute to "bridge" node - xml: - path: "{{ xml_file }}" - xpath: /network/bridge - attribute: name - value: "{{ item.name }}" - pretty_print: yes - -- name: Add "stp" attribute to "bridge" node - xml: - path: "{{ xml_file }}" - xpath: /network/bridge - attribute: stp - value: "on" - pretty_print: yes - -- name: Add "delay" attribute to "bridge" node - xml: - path: "{{ xml_file }}" - xpath: /network/bridge - attribute: delay - value: "0" - pretty_print: yes - -- name: Add "address" attribute to "ip" node - xml: - path: "{{ xml_file }}" - xpath: /network/ip - attribute: address - value: "{{ item.host_ip }}" - pretty_print: yes - -- name: Add "netmask" attribute to "ip" node - xml: - path: "{{ xml_file }}" - xpath: /network/ip - attribute: netmask - value: "{{ item.netmask }}" - 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 diff --git a/ansible/roles/infra_create_network/tasks/create_xml.yml b/ansible/roles/infra_create_network/tasks/create_xml.yml new file mode 100644 index 000000000..1632e591c --- /dev/null +++ b/ansible/roles/infra_create_network/tasks/create_xml.yml @@ -0,0 +1,126 @@ +# 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 + - ip + 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: Add "name" attribute to "bridge" node + xml: + path: "{{ xml_file }}" + xpath: /network/bridge + attribute: name + value: "{{ item.name }}" + pretty_print: yes + +- name: Add "stp" attribute to "bridge" node + xml: + path: "{{ xml_file }}" + xpath: /network/bridge + attribute: stp + value: "on" + pretty_print: yes + +- name: Add "delay" attribute to "bridge" node + xml: + path: "{{ xml_file }}" + xpath: /network/bridge + attribute: delay + value: "0" + pretty_print: yes + +- name: Add "address" attribute to "ip" node + xml: + path: "{{ xml_file }}" + xpath: /network/ip + attribute: address + value: "{{ item.host_ip }}" + pretty_print: yes + +- name: Add "netmask" attribute to "ip" node + xml: + path: "{{ xml_file }}" + xpath: /network/ip + attribute: netmask + value: "{{ item.netmask }}" + 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 diff --git a/ansible/roles/infra_create_network/tasks/main.yml b/ansible/roles/infra_create_network/tasks/main.yml index eba4a3a49..025a775a1 100644 --- a/ansible/roles/infra_create_network/tasks/main.yml +++ b/ansible/roles/infra_create_network/tasks/main.yml @@ -18,5 +18,5 @@ name: infra_deploy_vars - name: Create XML file - include_tasks: create_xml.yaml + include_tasks: create_xml.yml with_items: "{{ infra_deploy_vars.networks }}" -- cgit 1.2.3-korg