From fee279119bfc51a21ac1ad77474f8ea31bd6fa03 Mon Sep 17 00:00:00 2001 From: José Pekkarinen Date: Mon, 30 May 2016 10:19:51 +0300 Subject: These changes are the initial support for kvmfornfv using compass. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I5ab2d7ad2f639d6673e0debd8f07f4f95c8bb476 Signed-off-by: José Pekkarinen --- build/build.conf | 1 + build/packages/make_kvmfornfv.sh | 65 ++++++++++++++++++++++ deploy/adapters/ansible/openstack/allinone.yml | 1 + deploy/adapters/ansible/openstack/compute.yml | 1 + .../ansible/roles/kvmfornfv/defaults/Debian.yaml | 16 ++++++ .../ansible/roles/kvmfornfv/defaults/RedHat.yaml | 18 ++++++ .../ansible/roles/kvmfornfv/defaults/main.yml | 16 ++++++ .../ansible/roles/kvmfornfv/tasks/main.yml | 27 +++++++++ 8 files changed, 145 insertions(+) create mode 100644 build/packages/make_kvmfornfv.sh create mode 100644 deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml create mode 100644 deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml create mode 100644 deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml create mode 100644 deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml diff --git a/build/build.conf b/build/build.conf index ad2a6b1b..352e70ef 100644 --- a/build/build.conf +++ b/build/build.conf @@ -35,6 +35,7 @@ export APP_PACKAGE=${APP_PACKAGE:-$PACKAGE_URL/packages.tar.gz} export LOADERS=${LOADERS:-$PACKAGE_URL/loaders.tar.gz} export CIRROS=${CIRROS:-$PACKAGE_URL/cirros-0.3.3-x86_64-disk.img} export SPECIAL_DEBIAN_PACKAGE=${SPECIAL_DEBIAN_PACKAGE-$PACKAGE_URL/debian-packages.tar.gz} +export KVMFORNFV=${kvmfornfv:-https://gerrit.opnfv.org/gerrit/p/kvmfornfv.git} export PIP_CONF="https://bootstrap.pypa.io/ez_setup.py \ diff --git a/build/packages/make_kvmfornfv.sh b/build/packages/make_kvmfornfv.sh new file mode 100644 index 00000000..3fa6efec --- /dev/null +++ b/build/packages/make_kvmfornfv.sh @@ -0,0 +1,65 @@ +############################################################################## +# Copyright (c) 2016 Nokia 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 +############################################################################## + +# TODO compile kernel and qemu in docker container + +WORK_PATH=$(cd "$(dirname "$0")"/..; pwd) +CACHE_DIR=$WORK_PATH/work/repo/temp +DST_DIR=$WORK_PATH/work/repo/packages/kvmfornfv/ +source $WORK_PATH/build/build.conf + +function prepare() +{ + sudo apt-get install -y libtool libglib2.0-dev autoconf automake + mkdir -p $CACHE_DIR + mkdir -p $DST_DIR + + if [ git ls-remote $KVMFORNFV ]; + then + git clone $KVMFORNFV $CACHE_DIR/kvmfornfv + mkdir -p $CACHE_DIR/kvmfornfv/build/{boot,usr} + fi +} + +function make_kernel() +{ + cd $CACHE_DIR/kvmfornfv/kernel + cp arch/x86/configs/opnfv.config .config + make -j8 + make -j8 modules + make INSTALL_PATH=$CACHE_DIR/kvmfornfv/build/boot install + make INSTALL_MOD_PATH=$CACHE_DIR/kvmfornfv/build modules_install +} + +function make_qemu() +{ + mkdir -p $CACHE_DIR/kvmfornfv/qemu/build + cd $CACHE_DIR/kvmfornfv/qemu/build + ../configure --prefix=$CACHE_DIR/kvmfornfv/build/usr --enable-system --enable-kvm + make -j8 + make install +} + +function make_kvmfornfv() +{ + pushd . + + prepare + make_kernel + make_qemu + + tar -czf $DST_DIR/kvmfornfv.tar.gz \ + -C $CACHE_DIR/kvmfornfv/build . + cd - + + popd +} + +make_kvmfornfv + diff --git a/deploy/adapters/ansible/openstack/allinone.yml b/deploy/adapters/ansible/openstack/allinone.yml index 4539e5fb..fabc6eb4 100644 --- a/deploy/adapters/ansible/openstack/allinone.yml +++ b/deploy/adapters/ansible/openstack/allinone.yml @@ -3,6 +3,7 @@ sudo: True roles: - common + - kvmfornfv - database - mq - keystone diff --git a/deploy/adapters/ansible/openstack/compute.yml b/deploy/adapters/ansible/openstack/compute.yml index 8f6100ca..d0c41c3e 100644 --- a/deploy/adapters/ansible/openstack/compute.yml +++ b/deploy/adapters/ansible/openstack/compute.yml @@ -4,5 +4,6 @@ sudo: True roles: - common + - kvmfornfv - nova-compute - neutron-compute diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml new file mode 100644 index 00000000..eef684f4 --- /dev/null +++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml @@ -0,0 +1,16 @@ +############################################################################## +## Copyright (c) 2015 Nokia 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 +############################################################################### +--- + +packages: + - qemu-kvm + - grub-pc + - zlib1g + - libglib2.0 + diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml new file mode 100644 index 00000000..c462bde2 --- /dev/null +++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml @@ -0,0 +1,18 @@ +############################################################################## +## Copyright (c) 2015 Nokia 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 +############################################################################### +--- + +packages: + - zlib + - glib2 + - gettext + - qemu-kvm + - grub2 + + diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml new file mode 100644 index 00000000..e5343ccc --- /dev/null +++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml @@ -0,0 +1,16 @@ +############################################################################## +## Copyright (c) 2015 Nokia 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 +############################################################################### +--- + +path: /tmp/kvmfornfv +kernel_path: "{{ path }}/kernel" +qemu_path: "{{ path }}/qemu" +qemu_build_dir: "{{ qemu_path }}/build" +package: kvmfornfv.tar.gz + diff --git a/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml b/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml new file mode 100644 index 00000000..380882bb --- /dev/null +++ b/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml @@ -0,0 +1,27 @@ +############################################################################## +## Copyright (c) 2015 Nokia 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: get package http server + shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf + register: http_server + +- name: download kvmfornfv package file + get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/kvmfornfv/{{ package }}" dest=/tmp/{{ package }} + +- name: extract kvmfornfv files + command: su -s /bin/sh -c "tar xzf /tmp/{{ package }} -C /" + +- name: Update grub on Centos + shell: grub2-mkconfig -o /boot/grub2/grub.conf + when: ansible_os_family == 'RedHat' + +- name: Update grub on Ubuntu + shell: grub-mkconfig -o /boot/grub/grub.conf + when: ansible_os_family == 'Debian' + -- cgit 1.2.3-korg