diff options
author | John O Loughlin <john.oloughlin@intel.com> | 2018-01-22 13:57:05 +0000 |
---|---|---|
committer | John O'Loughlin <john.oloughlin@intel.com> | 2018-02-12 10:13:51 +0000 |
commit | 8b52c6a9ae605022d108b093bf4413d66aef3397 (patch) | |
tree | 15b232d632cd8e37c942734f5920f7c3b92f10f2 /ansible/roles/infra_create_vms/tasks/create_interfaces.yml | |
parent | 3eefef5baaad88b711d0ff639d49378b800a3ad0 (diff) |
Create host VMs configuration
Using xml files deploy the VM's using the virt plugin.
This code generates the user-data network-config meta-data
and the vm's xml. It also deploys the vm
JIRA: YARDSTICK-963
Change-Id: I97f2d20d0ab75a4444b8b8e6fb65e9e463870af7
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
Diffstat (limited to 'ansible/roles/infra_create_vms/tasks/create_interfaces.yml')
-rw-r--r-- | ansible/roles/infra_create_vms/tasks/create_interfaces.yml | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ansible/roles/infra_create_vms/tasks/create_interfaces.yml b/ansible/roles/infra_create_vms/tasks/create_interfaces.yml new file mode 100644 index 000000000..124421b56 --- /dev/null +++ b/ansible/roles/infra_create_vms/tasks/create_interfaces.yml @@ -0,0 +1,65 @@ +# 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: Add network-data + blockinfile: + path: "{{ network_config }}" + insertafter: 'ethernets:' + marker: "MARKER" + block: |2 + {{ 'enp0s%d:'| format( slot_address | int) }} + match: + mac_address: {{ '52:54:00:5d:7d:%02x'| format( mac_address_counter | int) }} + addresses: + - {{ interface_item.ip }}/{{ interface_item.netmask }} + + +- name: Remove the marker introduced in network-data + lineinfile: + dest: "{{ network_config }}" + state: absent + regexp: "MARKER" + +- name: Add new children nodes to "domain" node + xml: + path: "{{ xml_file }}" + xpath: /domain/devices + add_children: + - interface: + type: 'bridge' + pretty_print: yes + +- name: Add new children nodes to "domain" node + xml: + path: "{{ xml_file }}" + xpath: /domain/devices/interface + add_children: + - source: + bridge: "{{ interface_item.network }}" + - model: + type: 'virtio' + - address: + type: 'pci' + domain: '0x0000' + bus: '0x00' + slot: "{{ '0x%02x'| format( slot_address | int) }}" + function: '0x0' + - mac: + address: "{{ '52:54:00:5d:7d:%02x'| format( mac_address_counter | int) }}" + pretty_print: yes + +- set_fact: + slot_address: "{{ slot_address | int + 1 }}" +- set_fact: + mac_address_counter: "{{ mac_address_counter | int + 1 }}" |