LoginSignup
1
2

More than 5 years have passed since last update.

Install nested devstack(stable/mitaka) on KVM

Last updated at Posted at 2016-05-16

Install nested devstack(stable/mitaka) on KVM

本書の目的

  • KVM ホスト上にネストの devstack 環境を構築するための備忘録
  • とりあえず動かしはじめることを目的にしています

リファレンス

System 構成

KVM

  • Ubuntu 14.04.3 LTS
  • qemu-kvm 2.0.0
  • libvirt 1.2.2

Vagrant

  • Vagrant 1.8.1
  • vagrant-libvirt (0.0.32)

devstack

  • Mitaka
  • CentOS7 box
    • 4GB memory
    • 4 cpus
    • 100G disk
    • devstack ホストは ubuntu でも良かったのですが libvirt 版の公式 ubuntu box が無いので CentOS7 にしています

Check Host Requirements

~$ cat /sys/module/kvm_intel/parameters/nested
Y
~$ modinfo kvm_intel | grep nested
parm:           nested:bool

構築手順

1. Vagrant ファイルの作成

~$ cd working-dir
~$ mkdir -p vagrant/devstack
~$ cd vagrant/devstack
~$ vagrant box add centos/7
~$ vagrant init centos/7
~$ vagrant box update
~$ mv -iv Vagrantfile Vagrantfile.org
~$ cat << EOF > Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.define :vm1 do |vm1|
    vm1.vm.box = "centos/7"
    vm1.vm.network :private_network, :ip => "192.168.25.100"
    vm1.vm.provider :libvirt do |domain|
      domain.memory = 4096
      domain.cpus = 4
      domain.nested = true
      domain.machine_virtual_size = 100
    end
  end
end
EOF
~$ cat Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.define :vm1 do |vm1|
    vm1.vm.box = "centos/7"
    vm1.vm.network :private_network, :ip => "192.168.25.100"
    vm1.vm.provider :libvirt do |domain|
      domain.memory = 4096
      domain.cpus = 4
      domain.nested = true
      domain.machine_virtual_size = 100
    end
  end
end

2. Nested Host の起動とログイン確認

~$ vagrant up
~$ vagrant ssh

[vagrant@localhost ~]$
[vagrant@localhost ~]$ exit

~$ vagrant halt
~$ virsh list --all | grep devstack
 -     devstack_vm1                   shut off

3. VM’s libvirt XML の編集

~$ virsh edit devstack_vm1
before
  <cpu mode='host-model'>
    <model fallback='allow'/>
    <feature policy='optional' name='vmx'/>
    <feature policy='optional' name='svm'/>
  </cpu>
after
  <cpu mode='host-passthrough'>
  </cpu>
~$ vagrant up
~$ virsh list --all | grep devstack
 4     devstack_vm1                   running

4. Host OS の root パーティション拡張 (If needed)

~$ vagrant ssh

[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# fdisk /dev/vda
(snip)
Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
Selected partition 4
First sector (83886080-209715199, default 83886080):
Last sector, +sectors or +size{K,M,G} (83886080-209715199, default 209715199):
(snip)
Command (m for help): t
Hex code (type L to list all codes): 8e
(snip)
Command (m for help): w
(snip)
[root@localhost ~]# partprobe

[root@localhost ~]# pvcreate /dev/vda4
[root@localhost ~]# pvdisplay
[root@localhost ~]# vgextend VolGroup00 /dev/vda4
[root@localhost ~]# lvextend -l +100%FREE /dev/VolGroup00/LogVol00
[root@localhost ~]# lvdisplay /dev/VolGroup00/LogVol00

[root@localhost ~]# resize2fs /dev/mapper/VolGroup00-LogVol00
[root@localhost ~]# df -h

5. devstack のインストール

5-1. install git

[root@localhost ~]# yum -y update
[root@localhost ~]# yum install -y git yum-utils

5-2. install pip

[root@localhost ~]# rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
[root@localhost ~]# yum -y update
[root@localhost ~]# yum -y install python-pip
[root@localhost ~]# pip -V
pip 7.1.0 from /usr/lib/python2.7/site-packages (python 2.7)

[root@localhost ~]# pip install -U os-testr

5-3. git clone

[root@localhost ~]# useradd -d /opt/stack -m -s /bin/bash stack
[root@localhost ~]# echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
[root@localhost ~]# su - stack
[stack@localhost ~]$ git clone -b stable/mitaka https://git.openstack.org/openstack-dev/devstack
[stack@localhost ~]$ cd devstack/
[stack@localhost devstack]$ git branch
* stable/mitaka

5-4. create localrc

[stack@localhost devstack]$ cat << EOF > localrc
HOST_IP=192.168.25.100
DEST=/opt/stack

ADMIN_PASSWORD=secret
DATABASE_PASSWORD=\$ADMIN_PASSWORD
RABBIT_PASSWORD=\$ADMIN_PASSWORD
SERVICE_PASSWORD=\$ADMIN_PASSWORD
EOF
[stack@localhost devstack]$ cat localrc
HOST_IP=192.168.25.100
DEST=/opt/stack

ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

5-5. exec stack.sh

[stack@localhost devstack]$ ./stack.sh
(snip)
========================
DevStack Components Timed
========================

run_process - 46 secs
pip_install - 715 secs
restart_apache_server - 8 secs
wait_for_service - 16 secs
yum_install - 475 secs
git_timed - 301 secs



This is your host IP address: 192.168.25.100
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.25.100/dashboard
Keystone is serving at http://192.168.25.100:5000/
The default users are: admin and demo
The password: secret
2016-05-16 18:44:42.087 | stack.sh completed in 2603 seconds.
[stack@localhost devstack]$

6. 動作確認

[stack@localhost devstack]$ source openrc admin admin
WARNING: setting legacy OS_TENANT_NAME to support cli tools.
[stack@localhost devstack]$ nova list
+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+
[stack@localhost devstack]$
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2