From 798f3a062a471a248b0f9131b5651660f431fbd5 Mon Sep 17 00:00:00 2001 From: davidjchou Date: Tue, 18 Jul 2017 05:31:50 -0700 Subject: Add real time kvm feature from kvmfornfv project JIRA: COMPASS-549 1. Add rt_kvm plugin and os-nosdn-kvm-ha scenario in vm_enviroment 2. Add rt_kvm in compass4nfv playbook 3. Disable kernel update in KVM scenarios Signed-off-by: davidjchou Change-Id: Ie164fe7ea28ebcb1e41299e92dc51b8ec16310eb Signed-off-by: chigang --- plugins/rt_kvm/plugins.desc | 50 +++++++++++++++++++++++++++++++++++++++++++ plugins/rt_kvm/tasks/kvm.yml | 40 ++++++++++++++++++++++++++++++++++ plugins/rt_kvm/tasks/main.yml | 11 ++++++++++ plugins/rt_kvm/vars/main.yml | 16 ++++++++++++++ 4 files changed, 117 insertions(+) create mode 100644 plugins/rt_kvm/plugins.desc create mode 100644 plugins/rt_kvm/tasks/kvm.yml create mode 100644 plugins/rt_kvm/tasks/main.yml create mode 100644 plugins/rt_kvm/vars/main.yml (limited to 'plugins') diff --git a/plugins/rt_kvm/plugins.desc b/plugins/rt_kvm/plugins.desc new file mode 100644 index 00000000..0dd2680b --- /dev/null +++ b/plugins/rt_kvm/plugins.desc @@ -0,0 +1,50 @@ +# This rt_kvm plugin adds real time kvm feature from kvmfornfv project +# into Compass4nfv together with scenarios. +# +# +# More details can be found in the development document. +# ############################################################## +--- +plugin: + # plugin name,it is also as the switch to enable/disable plugin in scenario + # files + name: rt_kvm + + description: real time kvm based on kvmfornfv + + maintainers: + - david.j.chou@intel.com + + # host os type: ubuntu/centos + os_version: ubuntu + + # true: this plugin is deployed separately on a new node + # false: this plugin is deployed on controller or compute node + independent_hosts: false + + # artifact: packege download url for this plugin + artifacts: + url: http://artifacts.opnfv.org/kvmfornfv/kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb + + # orchestration + # A plugin can have mutiple components, each component may need to be + # installed on different inventory or have its own configuration. + # due to Compass4nfv currently only supports ansible, so each component + # of the installation and configuration script need to be use ansible. + # cm : congfiguration management tool : only ansible support + # role: each component corresponds to ansible script that locates in the same + # directory as plugin.desc. + # phrase: pre_openstack -- the component is installed after the OS + # provisioning, before the OpenStack deployment. + # phrase: post_openstack -- the component is installed before the OpenStack + # deployment. + # inventory: if the phrase is pre_openstack, inventory can be controller and + # compute. if the phrase is post_openstack, inventory can be get from the file + # openstack-ansible.inventory + orchestration: + cm: ansible + roles: + - role: install real time kvm + phrase: pre_openstack + inventory: + - compute diff --git a/plugins/rt_kvm/tasks/kvm.yml b/plugins/rt_kvm/tasks/kvm.yml new file mode 100644 index 00000000..5d3ca7bc --- /dev/null +++ b/plugins/rt_kvm/tasks/kvm.yml @@ -0,0 +1,40 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- name: create workspace directory + file: + path: "{{ workspace }}" + state: directory + mode: 0755 + +- name: download rt_kvm kernel package + get_url: + url: "{{ rt_kvm_url }}" + dest: "{{ workspace }}/{{ rt_kvm_pkg }}" + +- name: install rt_kvm kernel + command: dpkg -i "{{ workspace }}/{{ rt_kvm_pkg }}" + +- name: update the grub + command: grub-mkconfig -o /boot/grub/grub.cfg + +- name: wait a moment + command: sleep 5 + +- name: reboot the node + shell: sleep 2 && shutdown -r now 'Reboot required' + become: true + async: 1 + poll: 0 + ignore_errors: true + +- name: wait for reboot + local_action: + module: wait_for + host={{ ansible_eth0.ipv4.address }} port=22 delay=1 timeout=600 diff --git a/plugins/rt_kvm/tasks/main.yml b/plugins/rt_kvm/tasks/main.yml new file mode 100644 index 00000000..e79fe9ff --- /dev/null +++ b/plugins/rt_kvm/tasks/main.yml @@ -0,0 +1,11 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- include: kvm.yml + when: rt_kvm is defined and rt_kvm == "Enable" diff --git a/plugins/rt_kvm/vars/main.yml b/plugins/rt_kvm/vars/main.yml new file mode 100644 index 00000000..9f32d13c --- /dev/null +++ b/plugins/rt_kvm/vars/main.yml @@ -0,0 +1,16 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +workspace: /tmp/plugin + +# yamllint disable rule:line-length +rt_kvm_url: http://artifacts.opnfv.org/kvmfornfv/kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb +# yamllint enable rule:line-length + +rt_kvm_pkg: kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb -- cgit 1.2.3-korg