1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VagrantでUbuntu18.04のVMを作り、そのVMの中にDevStackでOpenStackを作成する作業

Last updated at Posted at 2021-04-23

目的

OpenStackの勉強のために、Virtualbox (Vagrant) のGuest OS (ubuntu18.04)に、OpenStackをDevStackを使ってinstallする。

Ref.

https://docs.openstack.org/devstack/latest/
https://qiita.com/feifo/items/0fde474005589afcff68
https://github.com/rafiror/openstack/wiki/Devstack%E5%85%A5%E9%96%80

VagrantでUbuntu18.04のVMを作成

cpuは2個、memoryは5Gを割り当て。virutalboxのpublic_networkを使う。

bash
### vagrant用のdirectoryを作成
$ mkdir devstack && cd devstack

### Vagrantfileを生成
$ vagrant init bento/ubuntu-18.04

### Vagrantfileを編集。メモリ量とhost OS側からguest OS(ubuntu18.04)へのアクセス用のIP addressを設定。
$ vi Vagrantfile
### 以下を修正
  ### 以下をコメントイン (VirtualboxのPublic Networkを使う)
  config.vm.network "public_network"

  ### 以下をコメントイン
  config.vm.provider "virtualbox" do |vb|

  ### 以下を追加
     vb.memory = "5120"
     vb.cpus = 2
  ### 以下をコメントイン
  end

### VMを立ち上げる
$ vagrant up

### VMに接続
$ vagrant ssh

### network IFのip addressを確認しておく (後ほどdevstack install時にHost OS側からアクセス可能なeth1を使う)
vagrant@vagrant:~$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.10.3  netmask 255.255.255.240  broadcast 172.20.10.15
        inet6 fe80::a00:27ff:feed:f7dd  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:ed:f7:dd  txqueuelen 1000  (Ethernet)
        RX packets 4469  bytes 480623 (480.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5407  bytes 7605086 (7.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
vagrant@vagrant:~$

Ubuntu上でOpenStackをinstallする

devstackの本家サイトに従ってinstallしていく

bash
### aptのrepogitryを最新化
vagrant@vagrant:~$ sudo apt-get update

### gitをinstall
vagrant@vagrant:~$ sudo apt-get install git

### 本家サイトに従ってstackユーザを作る
vagrant@vagrant:~$ sudo useradd -s /bin/bash -d /opt/stack -m stack

### stackユーザを、sudoでpasswordを聞かれないようにする
vagrant@vagrant:~$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
stack ALL=(ALL) NOPASSWD: ALL

### stackユーザになる
vagrant@vagrant:~$ sudo su - stack
stack@vagrant:~$

### devstackをgitで取ってくる
stack@vagrant:~$ git clone https://opendev.org/openstack/devstack
stack@vagrant:~$ cd devstack/

### local.confをsampleから作成
stack@vagrant:~/devstack$ cp samples/local.conf .

### local.confを編集
stack@vagrant:~/devstack$ vi local.conf 
### ADMIN_PASSWORDを設定。
### DATABASE_PASSWORDやRABBIT_PASSWORDはADMIN_PASSWORDと同じに設定。
### HOST_IPのコメントアウト解除。
### 値は仮想マシンのIPアドレス(172.20.10.3)を設定。
### FLAT_INTERFACE=eth1を設定。

### 設定結果の確認
stack@vagrant:~/devstack$ diff local.conf samples/local.conf
28,30c28,30
< ADMIN_PASSWORD=secret
< DATABASE_PASSWORD=$ADMIN_PASSWORD
< RABBIT_PASSWORD=$ADMIN_PASSWORD
---
> ADMIN_PASSWORD=nomoresecret
> DATABASE_PASSWORD=stackdb
> RABBIT_PASSWORD=stackqueue
40c40
< HOST_IP=172.20.10.3
---
> #HOST_IP=w.x.y.z
43d42
< FLAT_INTERFACE=eth1
stack@vagrant:~/devstack$

### devstackをinstall
stack@vagrant:~/devstack$ ./stack.sh

### CLIのopenstackコマンドを使う際の環境変数を読み込み。
stack@vagrant:~/devstack$ source openrc 

openstackへアクセス

http://172.20.10.3へアクセス
ID: admin Password: secret

login画面

image.png

login後の画面

image.png

networkの状態の確認

image.png

key pairの作成

virtualboxのguest osのubuntu18.04側で鍵を生成

bash
### sshの鍵生成 (とりあえずstackユーザで作った)
stack@vagrant:~$ ssh-keygen
stack@vagrant:~$ cat .ssh/id_rsa.pub
# ここに出力される公開鍵をコピー

以下のように、鍵をopenstackに登録する。
image.png

image.png

security groupの作成

以下のようにsecurity groupを作成する。
image.png

instanceを作ってみる。

以下の様な流れでinstanceを作ってみる。
image.png

イメージはdefaultで登録されているcirrosを使う
image.png

フレーバーを選ぶ
image.png

VMが所属するネットワークを選ぶ。privateを選択。
image.png

VMに当てるセキュリティグループを選ぶ。先ほど作ったtestを選ぶ。
image.png

VMに登録するsshの公開鍵を選ぶ。先ほどopenstackに登録した鍵を選択する。
image.png

以下の様にVMが作成できた。
image.png

作ったVMにfloating IPを割り当てる。
image.png

以下の様な感じ。もしfloating IPがなければ、プラスボタンを押して新たにfloating ipを作る。
image.png

以下の様にfloating IPが設定できた。
image.png

作ったVMにssh接続(floating IPにssh)

bash
stack@vagrant:~$ ssh cirros@172.24.4.202
$ # 接続できた。

まとめ

以上です。残課題として、VirtualboxのHostOS (自分の場合はMac OS)からOpenStackで作成したVMにアクセスできてないです。誰かやり方がわかる方がいらっしゃったら教えてもらえると幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?