【OpenStack】Ocataでインスタンス作成エラー

AWSのインスタンスにOcataをPackstackで入れて見たんだけど, インスタンス作成時にエラーが出る。

 ERROR nova.conductor.manager [req-c532e549-5c8c-44b9-a1f6-728b6e8dccdf - - - - -] No host-to-cell mapping found for selected host packstack. Setup is incomplete. 

バグという情報もあり, Work Arroundに習って以下コマンドを実行することで回避出来た。

# nova-manage cell_v2 discover_hosts
# nova-manage cell_v2 list_cells
+---------+--------------------------------------+
| Name | UUID |
+---------+--------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |
| default | cd0248ed-7350-48d6-9239-236083c4d401 |
+---------+--------------------------------------+

新たにCellが出来たっぽい。
が, インスタンスを作ってみると

nternal error: process exited while connecting to monitor

という新たなエラーで起動せず。んー。
なんか足りない。

VyOSのイメージ作成

OpenStackでVyOSのイメージをESXからのイメージでなんとなく適当にやっていたけど, やっぱキレイなイメージ使いたいと思って今日やっとこさやった。

手順はこう。

  1. KVM上でVyOSのisoイメージから起動する用のCentOSを準備
  2. KVM on OpenStack(KVM)となるので, インスタンスをちょっといじる
  3. KVM用CentOSに必要なパッケージを入れる
  4. VyOSのisoをDL
  5. KVM上で起動
  6. MAC消してeth0をDHCPに設定したり自分色に染める
  7. qcow2をOpenStackにイメージとして登録で完了

実際の流れ。

CentOS7のインスタンスを立ち上げる。
KVM on KVMの設定をここを参考に実施。
必要なパッケージインストール。

sudo yum install -y qemu-kvm libvirt virt-manager libguestfs.x86_64

KVM上でVyOS起動

qemu-img create -f qcow2 ./vyos.qcow2 2G
virt-install --virt-type kvm --name VyOS --ram 1024
--cdrom=../vyos-1.1.7-amd64.iso
--disk ./vyos.qcow2,format=qcow2
--network default
--nographics

VyOSをウィザードに従ってインストール。
これはオフィシャルの手順のまま。
インストール完了後再起動。VyOSはCD-ROMデバイスを再起動後に勝手にデタッチするので, この手順はやらなくてOK。

VyOSのテンプレートとなる設定を好みで入れる。(MACは消しておく)

conf
delete interface ethernet eth0 hw-id xx:xx:xx:xx:xx
set interface ethernet eth0 address dhcp

これで出来上がったqcow2をopenstack nodeへscp。
OPENSTACKにイメージとして登録。

openstack image create --file vyos-1.7.7.qcow2 --public --disk-format qcow2 --container-format bare VyOS-1.1.7

あとはこのイメージをもとにインスタンス作成。

openstack server create --flavor m1.small --image VyOS-1.1.7_true --security-group default --nic net-id=172.20.30.0/24  vyos_true

やっとすっきり!

参考までに今回作成したイメージをここに置いておく。

Ocata入れてみた

Ocataがリリースされたので AWSにCentOSのインスタンス立てて入れてみた。
コンテナ周りが充実したとかでMagnumも入れてみた。

AWSでAllinoneって結構面倒なのね。ローカルのPCサーバでやるのとはちょっと手順やanswer-fileの編集が違う。そういうものかしらね。

入れたばかりで何も設定していないが, OpenStackのイメージが変わったのね。フラットデザインになった。

デザイン変わった直後ってどうしても「前のほうがよかったなー」ってなる

Docker・・・。指定なのかしら

そしてコンテナはインスタンスの種類でDockerって表示されるのか。ふーん。

あれ, openstack-statusコマンドが見当たらない。

→ yum install openstack-utils やってなかっただけだった。(3/22追記)

Ocata

OpenStackの15番目のリリースOcataが出ましたね。

バルセロナのビーチの名前だそうで, なんて発音するだろう。
オカタかしら。
https://wiki.openstack.org/wiki/Release_Naming

コンテナ周りが強化されたとか。今度バージョンあげてみようかな。まだコンテナつかったことないんだよなぁ。

スパツリとVLANの話

Elasticsearchやるやる詐欺になりつつ今日このごろ。ネットワークの基本中の基本, L2の話でハマったというか今更ながらに理解したことがあったので記録しとく。

スイッチ3台でRSTP+PVSTで三角形の構成を組んだんだけど, うち上位の1台の機器が作業範囲じゃなかったので構成がさっぱりわからなかった。
ベンダーも違うので, 情報が全く出てこないという責任区分できっぱりと情報も切れてしまっている現場でのこと。

STPに関してはこちら側でコントロールするように, 色々値をいじったけど2つあるうち, 1つのVLANが想定外のポートがブロッキングになった。
show spanning-tree ~~~で探ってみると, どーも対向がTransparentになっているっぽい。VLAN分けてないのかよ!とか思ったけど, ログ持ち帰ってSTPやBPDUについて新手眼て調べるとアクセスポートにしているためVLAN認識しないってのがわかった。

そらそうか。って思うんだけどVLANタグはトランクポートでしか付与されないよねとか, ポートVLANは対向のVLAN設定なんて意識しないよねとか, あまり気にせずにいたところで躓いたのでやっぱ基礎はしっかりせないかんよねと思いましたとさ。

ちょっとわかりづらいけど, 図かいて残しとく。

transparentの機器をHUBで代用。
2つのVLANがある構成。

設計上, VLAN10はSW AがRootBridge, VLAN20はSW BがRoot Bridgeになってほしい

BPDUの動きをおっていく①

BPDUの動きをおっていく②

BPDUの動きをおっていく③

STP動かすときは接続機器の設定はしっかり手に入れておくべきよね。
(本来どのケースでもそうなんでしょうけどね・・・)

OpenStack認定試験

正直なところ,運半分って出来でしたが業務+自宅のALL-in-one環境で触り倒して理解を深めつつ,なんとかOPCEL受かりました。

ネットワークのエリアは理解できていたけど,全体を通して細かな設定内容を理解できていなく厳しかったです。


この教材をベースに試験対策をしていましたが,当然というかコレだけでは受かりっこない内容です。実際に運用している人は余裕なんでしょうが,ネットワークエンジニアから入った人はもう少し試験勉強期間を取らないと大変かもしれません。(一夜漬けはキツイ)

でもまぁ,とりあえず受かってよかった。

【OpenStack】インスタンス作成時にSubnetを指定したい

1つのネットワーク上に複数のサブネットがある場合, インスタンスへfixed-ipを指定しないで作成するとサブネットが指定できない。

まだ実装されていないらしい。(されるのか?)

オフィシャルにやり方があったけど, よーわからん。

https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/selecting-subnet-when-creating-vm.html

[splunk] timepikcerのデフォルト値変更方法

サーチ画面のデフォルト値は

Settings >> Server settings >> Search preferences の中で設定できる。

が,ダッシュボードに表示されるタイムピッカーの値はXMLで指定してあげないダメっぽい,いくらプルダウンでTodayとかに変更してもリフレッシュするとAll Timeに戻ってしまう。
過去一週間を指定したい場合は<earliest><lastest>を次のようにするとできる。

 <label>Traffic Report</label>
<description>geomap of dest_ip</description>
<fieldset submitButton="false" autoRun="false">
<input type="time" token="field1">
<label></label>
<default>
<earliest>-7d@h</earliest>
<latest>now</latest>
</default>
</input>
</fieldset>

この辺参考になる。
http://docs.splunk.com/Documentation/Splunk/6.5.1/Viz/PanelreferenceforSimplifiedXML
https://docs.splunk.com/Documentation/Splunk/6.5.1/SearchReference/SearchTimeModifiers

【OpenStack】Trunk Portをためす

Newtonで実装されたTrunk Portを試してみようかと。
わかりやすくVyOSでやってみる。

・Parent Port作成
・このParent PortのMac Addressを指定してChild Portを作成する
という流れのよう。

実際にやってみる。

<事前準備>
neutron.conf内のservice_pluginsにtrunkを追加。

# The service plugins Neutron will use (list value)
service_plugins=router,metering,firewall,trunk

neutronサービス再起動

# openstack-service restart neutron

<ネットワーク準備>

$ openstack network list
+--------------------------------------+----------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------------+--------------------------------------+
| 9911d560-cd64-41d9-aac2-f8637010b614 | 172.20.10.0/24 | de53ce0a-6604-46e7-a97c-f26323fc8823 |
| bae535af-298b-4987-be7f-9bb7bdab7afd | 172.20.30.0/24 | b026b305-2731-471b-b358-51693cbed255 |
| e0d4d1b6-b71f-4a51-98ec-96cb8d55d0e0 | 172.20.20.0/24 | 0697e15f-8595-4df3-8eec-324dfb6aa1a6 |
+--------------------------------------+----------------+--------------------------------------+

<親ポート作成>

openstack port  create --network 9911d560-cd64-41d9-aac2-f8637010b614 parent0

<子ポート作成>

parent_mac="$( openstack port show parent0 | awk '/ mac_address / { print $4 }' )"
openstack port create --network e0d4d1b6-b71f-4a51-98ec-96cb8d55d0e0 --mac-address "$parent_mac" childport1
openstack port create --network bae535af-298b-4987-be7f-9bb7bdab7afd --mac-address "$parent_mac" childport2

<Trunkポート作成>

openstack network trunk create --parent-port parent0 --subport port=childport1,segmentation-type=vlan,segmentation-id=110 trunk0
openstack network trunk set --subport port=childport2,segmentation-type=vlan,segmentation-id=120 trunk0

<Trunkポート確認>

openstack network trunk show trunk0
+-----------------+-------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------+-------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| created_at | 2016-11-22T05:21:34Z |
| description | |
| id | b1555b22-fdbe-42c1-bd0f-eced582451c1 |
| name | trunk0 |
| port_id | 9d0240c6-338d-4790-b806-589434371f81 |
| revision_number | 2 |
| status | DOWN |
| sub_ports | port_id='3e3f9ddf-4432-4952-8e2f-706dec3b2e14', segmentation_id='110', segmentation_type='vlan' |
| | port_id='d90a11ae-98f8-4484-b6ed-1a9ffc5acb10', segmentation_id='120', segmentation_type='vlan' |
| tenant_id | 75680dae0c7b4e6296a53543687a8b6a |
| updated_at | 2016-11-22T05:22:51Z |
+-----------------+-------------------------------------------------------------------------------------------------+

<インスタンス作成>

openstack server create --flavor 3 --image 17074b09-66da-4fcc-b4ee-d6522191d4a6 --nic port-id=9d0240c6-338d-4790-b806-589434371f81 --security-group 0db30ac7-e1de-4ea2-96b2-a5f4a68cd57f VyOS_Trunk

<VyOS設定>

set interface ethernet eth0 address 172.20.10.10/24
set interface ethernet eth0 vif 110 address 172.20.20.8/24
set interface ethernet eth0 vir 120 address 172.20.30.2/24

これでPing通ったので完成かな。