vyos登録

OpenStackのインスタンスにVyos欲しいから登録する。

1. isoイメージ取得
公式から取得。

2. KVM上にインストールしてイメージ変換する方法もあるのだが,自分のレベルではESXのvmdkを変換かけるほうがお手軽そうなので,ESX側でvyosをインストールしてVMを作る。

3. データストア上にあるvmdkファイルをCentOSへ持って行き(vyos-flat.vmdkとvyos.vmdk2つ)

qemu-imgコマンドを使う。
使い方はRedHatのページを参考。

qemu-img convert -f vmdk -O qcow2 ./vyos.vmdk ./vyos-1.1.7.qcow2
qemu-img convert -f vmdk -O qcow2 ./vyos.vmdk ./vyos-1.1.7.qcow2  0.79s user 3.79s system 20% cpu 22.574 total
# ls -lrt
-rw-r–r–  1 root     root    1073741824  4月 24 18:13 vyos-flat.vmdk
-rw-r–r–  1 root     root                496  4月 24 18:13 vyos.vmdk

-rw-r–r–  1 root     root      249102336  4月 24 18:20 vyos-1.1.7.qcow2

4. OpenStackのホストOS上でイメージ登録

# glance image-create --name vyos-1.1.7 --visibility public --disk-format qcow2 --progress --file ./vyos.qcow2  --container-format bare
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | dbeddf1559bd9642241379b2ed835a1b     |
| container_format | bare                                 |
| created_at       | 2016-04-24T09:27:45Z                 |
| disk_format      | qcow2                                |
| id               | 684a2629-4257-4862-aa7a-cd9312e8047c |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | vyos-1.1.7                           |
| owner            | f734caeac646458cb7c8d38ce8ee4522     |
| protected        | False                                |
| size             | 249102336                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2016-04-24T09:27:46Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+

5. 終わり。
試しに起動してみる。
一応動くには動くが,インタフェースでNG。
ドライバあたりかな?
interfaceがadmin downなだけでした。
FloatingIPを設定して無事Pingもとおるところまで確認できました。

# set interface ethernet eth2
# set interface ethernet eth2 address dhcp
# set service ssh port 22

これでSSHまでOK。

—–

こちらのサイトを参考にさせてもらってKVMでやったほうが順当なのか。

インスタンスのリサイズができねー

と,思ったらConfig修正が必要であった。

参考)
https://ask.openstack.org/en/question/80600/resize-image-issue/

編集した後,nova-computeをリスタートしろと。

自分の場合,computeだけでは反映されなかったので,nova系はひとしきりrestartしたら出来た。

■ /etc/nova/nova.conf 編集
~以下2行追加~
allow_resize_to_same_host=True
allow_migrate_to_same_host = True

プロセス再起動
# systemctl restart openstack-nova-api.service
openstack-nova-cert.service openstack-nova-compute.service
openstack-nova-conductor.service openstack-nova-consoleauth.service
openstack-nova-scheduler.service

プロセスは多分全部やらんでいいんだと思う。
api, compute, scheduler くらいでいけんじゃないのかなんて勝手に思っています。

shutdown/reboot失敗

なんだかshutdown -h now とかrebootとかやるとたまーに落ちなくなる。

メッセージとしては

mdadm: Cannot remove ‘/lib/dracut/hooks/shutdown/30-dm-shutdown.sh’: Read-only filesystem or active volume grup?

というのが出まくって,それはもう “#cat 数Tのファイル”をやった時のような状態に陥って永遠と画面が流れ続ける。

色々とぐぐってみるのだが,fake raidで/boot領域をマウントしているからだーとか情報が出てくるのだが,イマイチしっくり来ない。

ただ,こちらのサイトで対処策が出ていたので試しにやってみるとうまくいった。
バグ情報にもっぽいのが出ているし,きっとそうなのだろう。
1年近く解消していないのね。

GRE

interface tunnel **

ではデフォルトでtunnel mode gre ip ですってよ。
えぇ,今日知りましたよ。えぇ・・・今までぜんっぜん意識していませんでしたよ。
どーせ最近はVTIでしょ。
※ VTIも同じ

Cisco IOS バナー小技

最近知ったんだけど,バナーにホスト名を入れたい時に変数使えるのね。
常識なのかしら・・・。
設定で入れるのはHostnameを入れたいところに$(hostname)を入れるだけ。

///////////////////////////////////////////////
     Model         C841M-4X-JSEC/K9
     Hostname   $(hostname)
///////////////////////////////////////////////

H/WのシリアルNoも出せるとキッティングの時すげー楽になるね。
このやり方は知らない。出来ないかなぁ。

Ciscoのページを見る限り出来ないのね。残念。

packstack Liberty 入れなおし

packstackあまり考えずにインストールするとCinderのボリューム限度が20Gに縛られてしまうので,入れなおした。

やったことは以下の通り。
  1. Cinder向けにパーティション切って,Volume Groupを「cinder-volumes」という名前で作成
  2. linux Bridge設定(/etc/sysctl.conf 編集 → sysctl -p /etc/sysctl.conf)
  3. いつもの通りPackstackのインストール手順で実施
  4. NetworkManager停止,NW周り編集,再起動
  5. Cinder.conf 修正
  6. デフォルトのNWやらを削除して自分色に変える
answerfileは自分の環境向けにそこそこしっかり編集しておいたほうがいいということを学びましたとさ。
HorizonはHTTPS化するの後からでもできるけど,ここでやっておいたほうが簡単。
■ answerfile変えた所一覧

< # CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
< CONFIG_DEFAULT_PASSWORD=<適宜>
< CONFIG_MANILA_INSTALL=y
< CONFIG_HEAT_INSTALL=y
< CONFIG_NTP_SERVERS= <適宜>
< CONFIG_USE_EPEL=y
< CONFIG_MARIADB_PW=<適宜>
< CONFIG_KEYSTONE_DB_PW=<適宜>
< CONFIG_KEYSTONE_ADMIN_TOKEN=<適宜>
< CONFIG_KEYSTONE_ADMIN_PW=<適宜>
< CONFIG_KEYSTONE_DEMO_PW=<適宜>
< CONFIG_GLANCE_DB_PW=<適宜>
< CONFIG_GLANCE_KS_PW=<適宜>
< CONFIG_CINDER_DB_PW=<適宜>
< CONFIG_CINDER_KS_PW=<適宜>
< CONFIG_CINDER_VOLUMES_CREATE=n
< CONFIG_MANILA_DB_PW=<適宜>
< CONFIG_MANILA_KS_PW=<適宜>
< CONFIG_NOVA_DB_PW=<適宜>
< CONFIG_NOVA_KS_PW=<適宜>
< CONFIG_NEUTRON_KS_PW=<適宜>
< CONFIG_NEUTRON_DB_PW=<適宜>
< CONFIG_NEUTRON_METADATA_PW=<適宜>
< CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex
< CONFIG_HORIZON_SSL=y
< CONFIG_HORIZON_SECRET_KEY=<適宜>
< CONFIG_SWIFT_KS_PW=<適宜>
< CONFIG_SWIFT_STORAGE_SIZE=<適宜>
< CONFIG_HEAT_DB_PW=<適宜>
< CONFIG_HEAT_KS_PW=<適宜>
< CONFIG_HEAT_DOMAIN_PASSWORD=<適宜>
< CONFIG_CEILOMETER_KS_PW=<適宜>

< CONFIG_NAGIOS_PW=<適宜>

Cinderでエラーがでる

うまくいったと思ったが,インスタンス作成時に「イメージから起動(新しいボリュームを作成)」を選ぶとエラーになる。
同じくボリュームだけ作成しようとしても「作成中」のステータスから進捗なしとなり使えん。

なんじゃこりゃ。

原因わかりやした。

日本OpenStackユーザ会で質問したら(トピックスに相乗りした),速攻原因解明。
packstackのアンサーファイルでCinderのオプション指定しないと20Gに制限されるとな。

んーーーもう一度デプロイしてもいいんだけど,既存のLVMを拡張する方法でなんとかならんもんかしら。

———————————————————————————

うはっ!!!
パーティション拡張作業ミスってOSぶっ飛んだ・・・orz

packstack Liberty インストール (続き)

さて, 続き。

ネットワークの作成だけど, とりあえず現状をチェック。

+--------------------------------------+---------+------------------------------------------------------+
| id | name | subnets |
+--------------------------------------+---------+------------------------------------------------------+
| 72973f3f-d8e9-42ec-9124-8cb9cdaf76bb | public | 284bfb53-6317-4659-a63a-80bc6f93eef4 172.24.4.224/28 |
| 8c962f73-821c-4608-8e1d-4fe58f095ddb | private | 9060eb48-5020-448d-bd0e-ac57bd031e85 10.0.0.0/24 |
+--------------------------------------+---------+------------------------------------------------------+

アドレスを修正するのもいいけど, とりあえずまっさらにして位置から作ってみる。

publicは 192.168.1.0/24
privateは 172.16.10.0/24

とする。

基本はここにならってコマンドをたたいていく。

■ ルータ作成
# neutron router-create Ext-Router

■ 外部ネットワーク作成
# neutron net-create Ext-Net  --router:external --shared   --provider:network_type flat 
  --provider:physical_network enp4s0
# neutron subnet-create Ext-Net 192.168.1.0/24 --name Ext-Subnet --gateway 192.168.1.1 
 --allocation-pool start=192.168.1.200,end=192.168.1.210 --disable-dhcp
# neutron router-gateway-set Ext-Router Ext-Net

■ 内部ネットワーク作成
# neutron net-create home-net
# neutron subnet-create --name home-subnet --gateway 172.16.10.1 
 --dns-nameserver 192.168.1.1 
 --allocation-pool start=172.16.10.100,end=172.16.10.120 home-net 172.16.10.0/24
# neutron router-interface-add Ext-Router home-subnet

ひとまず完了。

ネットワークトポロジの表示が変わったのね・・・。

前の方がよかったなぁー。ウニョウニョ動くのは面白いんだけど, まとまりが悪い。

イメージにCentOSとFedoraを登録したけど,テスト用にCirrosも入れとく。
参考はオフィシャルDoc

■ イメージゲッツ

# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
# # glance image-create --name "cirros" 
> --file cirros-0.3.4-x86_64-disk.img
> --disk-format qcow2 --container-format bare
> --visibility public --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
| container_format | bare |
| created_at | 2016-04-16T07:17:53Z |
| disk_format | qcow2 |
| id | 75b3a669-20c4-498a-9685-a80d6acd3c81 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | ac31029ab4af4d06a027529077595a4d |
| protected | False |
| size | 13287936 |
| status | active |
| tags | [] |
| updated_at | 2016-04-16T07:17:53Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+

登録された

インスタンス起動
Floating IP割当
Security Group設定
でSSHで接続して接続完了。

オッケ。

さて,次はESXのVMをこっちに移すかな。

と思ったけど, 本当はVLANを複数引き込んでそれぞれに割り当てるFloatingIPを分けたいんだけどさてさて・・・。どないしょ。

packstack Liberty インストール

Mitakaリリースされましたね。

さて, やっとこさ時間つくってpackstackでLibertyをAll in One でインストールしました。

OPCELに向けてKilo入れたかったんだけど, mongodbのあたりでエラーが出てインストールしきれなかったためとりあえずさくっと入ったLibertyにしといた。
# pupetとの整合性がなんたらかんたらってググッたら出てきたのだけど, それ対応してもエラーが消えることはなかったんだよね。

手順はWebで出てくる通り

■ リポジトリ登録(現時点ではLibertyなので, KiloがいいひとはFedorapeopleへ)

#   yum install https://www.rdoproject.org/repos/rdo-release.rpm

■ packstackインストール

# yum install openstack-packstack

■ UPDATE

# yum -y update

■ NetworkManager停止&Disable

# systemctl stop NetworkManager
# systemctl disable NetworkManager
# systemctl start network

一応Reboot。

■ answerfile編集後, packstack実行

# packstack –gen-answer-file=./ans.libertiy
# vi ./ans.libertiy
answer fileはRDOのページを参照のこと
# packstack –answer-file=./ans.libertiy

またまたReboot。

■ インタフェース編集

vi /etc/sysconfig/network-script/ifcfg-enp***
vi /etc/sysconfig/network-script/ifcfg-br-ex

ぶじにSuccessとなったらダッシュボードへアクセス。
完了!と思いきやneutorn-serverが死んでいるし, ボリュームがどーたらとなんかCinder関係でエラーが出ている。

neutronの方は/etc/neutron/neutron.conf内にrabbitmqの設定が間違っていた(というか, hostやportやらがコメントアウトされていた)から修正して復旧。

■ /etc/neutron/neutron.conf 修正
# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host=localhost

# The RabbitMQ broker port where a single node is used.
# (integer value)
rabbit_port=5672

# RabbitMQ HA cluster host:port pairs. (list value)
rabbit_hosts=$rabbit_host:$rabbit_port

この辺り修正してneutron-serverを再起動。

:

さて, Cinderはというと・・・。

こっちも/etc/cinder/cinder.confに記載漏れ。
こっちは認証系がごっそり無いというね。

■ /etc/cinder/cinder.conf 修正

[keystone_authtoken]

#
# From keystonemiddleware.auth_token
#

# Complete public Identity API endpoint. (string value)
#auth_uri = <None>
auth_uri = http://192.168.1.100:5000
auth_url = http://192.168.1.100:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = services
username = cinder
password = <適宜>

この辺り修正してcinder再起動。

:
さて, これで一通り無事に起動完了したのかしら?

■ 確認
# openstack-status
== Nova services ==
openstack-nova-api:                     active
openstack-nova-compute:                 active
openstack-nova-network:                 inactive  (disabled on boot)
openstack-nova-scheduler:               active
openstack-nova-cert:                    active
openstack-nova-conductor:               active
openstack-nova-console:                 inactive  (disabled on boot)
openstack-nova-consoleauth:             active
openstack-nova-xvpvncproxy:             inactive  (disabled on boot)
== Glance services ==
openstack-glance-api:                   active
openstack-glance-registry:              active
== Keystone service ==
openstack-keystone:                     inactive  (disabled on boot)
== Horizon service ==
openstack-dashboard:                    active
== neutron services ==
neutron-server:                         active
neutron-dhcp-agent:                     active
neutron-l3-agent:                       failed
neutron-metadata-agent:                 active
neutron-openvswitch-agent:              active
== Swift services ==
openstack-swift-proxy:                  failed
openstack-swift-account:                failed
openstack-swift-container:              failed
openstack-swift-object:                 failed
== Cinder services ==
openstack-cinder-api:                   active
openstack-cinder-scheduler:             active
openstack-cinder-volume:                active
openstack-cinder-backup:                active
== Ceilometer services ==
openstack-ceilometer-api:               failed
openstack-ceilometer-central:           active
openstack-ceilometer-compute:           active
openstack-ceilometer-collector:         active
openstack-ceilometer-alarm-notifier:    active
openstack-ceilometer-alarm-evaluator:   active
openstack-ceilometer-notification:      active
== Heat services ==
openstack-heat-api:                     active
openstack-heat-api-cfn:                 inactive  (disabled on boot)
openstack-heat-api-cloudwatch:          inactive  (disabled on boot)
openstack-heat-engine:                  active
== Support services ==
openvswitch:                            active
dbus:                                   active
target:                                 active
rabbitmq-server:                        active
memcached:                              active
== Keystone users ==

Warning keystonerc not sourced

ん。大丈夫かしら・・・。
色々failedしているけど, とりあえずは後回しだな。当面使わなそうだし。
これからあれか。Networkの設定しなきゃならんのか・・・。
眠いから今日は寝よう。