no about note

エンジニアのメモ書き

ESXi上の仮想マシンでPackstackマルチノードをインストールしたときにハマったこと

Openstackのマルチノード検証環境をVMware上で構築したときにハマった記録。

概要図

f:id:noabout:20160616214946p:plain

事象

  • 割り当てたFloatingIPに疎通ができない

インストールはうまくいって、FloatingIP割り当てまでうまくいったが、
Pingが通らない。iptablesかセキュリティグループを疑ったが、 最終的に以下の解決策に行き当たった。

解決策

仮想マシンの仮想NICを無差別モードに設定する

たったこれだけのことで数時間はまった。

↓同じところでハマっている人がいらして大変助かった。

【Neutron】 インスタンスの Floating IP アドレスへ Ping が通らない

VMware 上で OpenStack 環境を作る場合、1つやらなければならない設定があります。

VMware の仮想ネットワークは標準で、ポートセキュリティの為、違う MAC アドレスのパケットを仮想 NIC に流さないようになっています。 これが OpenStack の仮想ネットワーク機能の妨げになります。

よって、VMware のネットワーク設定で、問題のネットワークの標準スイッチのプロパティの「無差別モード」を「承認」(有効)に変更してください。 https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078928

参考

vSphere ESXi 上の仮想マシンで VT-x を有効化するには

こちらもよければ

noaboutsnote.hatenablog.com

CentOS6.xにstoneをインストールした

http://www.flickr.com/photos/28145073@N08/7356884346

stoneとはなにか?

stone は、アプリケーションレベルの TCP & UDP リピーターです。ファイアウォールの内から外へ、あるいは外から内へ、TCP あるいは UDP を中継します

ポートフォワーディングの例

  • 例えば、Local → Remote へRemoteDesktopしたい場合SSHのポートフォワード機能を使うと、ファイアウォールに22番ポートしか空いてない場合、22番ポートで接続すると余計な穴を空ける必要がない

stoneに置き換えられそうなもの

参考:
* ポートフォワーディング
* SSHポートフォワード(トンネリング)を使って、遠隔地からLAN内のコンピュータにログインするAdd Star

stoneをインストールする

Makeに必要なパッケージを入れる

# yum install gcc openssl-devel

stoneをダウンロード

# cd /usr/local/src
# wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz

# tar zxvf stone-2.3e.tar.gz

Makefileを編集

  • エラーを回避するために以下のようにmakefileを編集する
# cd stone-2.3d-2.3.2.7/

# cp -p Makefile Makefile.bak

# diff Makefile Makefile.bak
100c100
<       $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)" LIBS="-lpthread $(LIBS)" stone
---
>       $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL $(FLAGS)" LIBS="-lpthread $(LIBS)" stone
[root@router-test stone-2.3d-2.3.2.7]#

syslog以外にログを吐くように設定

# cd /usr/local/src/stone-2.3d-2.3.2.7
# cp -p stone.c stone.c.bk

stone.cを編集

# diff stone.c stone.c.bk
9988c9988
<       openlog(SyslogName, 0, LOG_LOCAL0);
---
>       openlog(SyslogName, 0, LOG_DAEMON);
10064c10064
<           openlog(SyslogName, 0, LOG_LOCAL0);
---
>           openlog(SyslogName, 0, LOG_DAEMON);

コンパイル

# make linux-ssl
make TARGET=linux ssl_stone LIBS="-ldl"
make[1]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります
make FLAGS="-DUSE_POP -DUSE_SSL " LIBS="-ldl -lssl -lcrypto" linux
make[2]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります
make FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE -DUSE_POP -DUSE_SSL " LIBS="-lpthread -ldl -lssl -lcrypto" stone
make[3]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' に入ります
cc  -O -Wall -DCPP='"/usr/bin/cpp -traditional"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE -DUSE_POP -DUSE_SSL  -o stone stone.c -lpthread -ldl -lssl -lcrypto
stone.c: In function ‘saDup’:
stone.c:1558: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘sendPairUDPbuf’:
stone.c:3023: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘freePair’:
stone.c:3644: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘doconnect’:
stone.c:3883: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘acceptPair’:
stone.c:4072: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘proto2fdset’:
stone.c:6239: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c:6300: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘dispatch’:
stone.c:6916: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘newMatch’:
stone.c:7070: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘freeMatch’:
stone.c:7084: 警告: キャストによってポインタから異なるサイズの整数となります
stone.c: In function ‘sslopts_default’:
stone.c:8875: 警告: assignment discards qualifiers from pointer target type
stone.c:8885: 警告: assignment discards qualifiers from pointer target type
stone.c: In function ‘sslopts’:
stone.c:8971: 警告: assignment discards qualifiers from pointer target type
stone.c:8972: 警告: assignment discards qualifiers from pointer target type
stone.c:8976: 警告: assignment discards qualifiers from pointer target type
stone.c:8977: 警告: assignment discards qualifiers from pointer target type
stone.c:8981: 警告: assignment discards qualifiers from pointer target type
stone.c:8982: 警告: assignment discards qualifiers from pointer target type
stone.c: In function ‘initialize’:
stone.c:10178: 警告: キャストによってポインタから異なるサイズの整数となります
make[3]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます
make[2]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます
make[1]: ディレクトリ `/usr/local/src/stone-2.3d-2.3.2.7' から出ます

→エラーがでなければOK

Pathの通る位置に配置

# cp -rfpa stone /usr/local/bin/

stoneコマンドで起動

# stone
Dec  2 18:19:22.812033 139932587710400 start (2.3e) [6991]
Dec  2 18:19:22.812184 139932587710400 stone 2.3e  http://www.gcd.org/sengoku/stone/
Dec  2 18:19:22.812204 139932587710400 Copyright(C)2007 by Hiroaki Sengoku <sengoku@gcd.org>
Dec  2 18:19:22.812214 139932587710400 using OpenSSL 1.0.1e-fips 11 Feb 2013  http://www.openssl.org/
Usage: stone <opt>... <stone> [-- <stone>]...
opt:  -h opt            ; help for <opt> more
      -h stone          ; help for <stone>
      -h ssl            ; help for <SSL>, see -q/-z opts

→動いたっぽい

CentOSでstone 2.3eのインストールと設定

ログの設定

# vim /etc/rsyslog.d/stone.conf

// 1行を追記
local0.* /var/log/stone.log

stoneのログを/var/log/messagesに出力しないようにするため、以下を修正

# vi /etc/rsyslog.conf
・・・

*.info;mail.none;authpriv.none;cron.none /var/log/messages
↓
*.info;mail.none;authpriv.none;cron.none,local0.none                /var/log/messages

ログファイル作成

# touch /var/log/stone.log

rsyslogを再起動

# /etc/init.d/rsyslog restart
システムロガーを停止中:                                    [  OK  ]
システムロガーを起動中:                                    [  OK  ]
[root@router rsyslog.d]#

rsyslog で local ファシリティで指定したログが /var/log/messages にも出力されるので出力させないようにした記録

専用アカウントを設定

グループとユーザ作成

# groupadd -g 10001 stone

# useradd -g stone -d /etc/stone -s /sbin/nologin -u 10003 stone

起動スクリプト作成

OPTIONS="-i $PID_FILE -C /etc/stone/stone.conf"

# vim /etc/init.d/stone
#!/bin/bash
#
# stone Start up the stone
#
# chkconfig: 2345 55 25
# description: stone is a simple packet repeater.
#
# processname: stone
# config: /usr/local/etc/stone.conf
# pidfile: /var/run/stone.pid

### BEGIN INIT INFO
# Provides: stone
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the stone
# Description: stone is a simple packet repeater.
### END INIT INFO

# source function library
. /etc/rc.d/init.d/functions

# pull in sysconfig settings
[ -f /etc/sysconfig/stone ] && . /etc/sysconfig/stone

RETVAL=0
prog="stone"
lockfile=/var/lock/subsys/${prog}

# Some functions to make the below more readable
STONE=/usr/local/bin/stone
PID_FILE=/var/run/${prog}.pid
#OPTIONS="-i $PID_FILE -C /usr/local/etc/stone.conf"
OPTIONS="-i $PID_FILE -C /etc/stone/stone.conf"

start()
{
 [ -x $STONE ] || exit 5

 echo -n $"Starting $prog: "
 $STONE $OPTIONS && success || failure
 RETVAL=$?
 [ $RETVAL -eq 0 ] && touch $lockfile
 echo
 return $RETVAL
}

stop()
{
 echo -n $"Stopping $prog: "
 killproc -p $PID_FILE $STONE
 RETVAL=$?
 [ $RETVAL -eq 0 ] && rm -f $lockfile
 echo
}

reload()
{
 echo -n $"Reloading $prog: "
 killproc -p $PID_FILE $STONE -HUP
 RETVAL=$?
 echo
}

restart() {
 stop
 start
}

case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 restart
 ;;
 reload)
 reload
 ;;
 *)
 echo $"Usage: $0 {start|stop|restart|reload}"
 RETVAL=2
esac
exit $RETVAL

起動スクリプト自動起動設定

# chmod 755 /etc/init.d/stone
# chkconfig stone on

起動する

/etc/init.d/stone start

stoneの動作確認

80番ポートを443に転送してみる

# stone 172.16.0.100:80 80 &
# stone 172.16.0.100:443 443 &

参考

esxcliの便利な使い方

CLI

概要

ESXiで使えるコマンドラインツール「esxcli」で便利だったコマンド。

1台ならいいけど、GUIで設定してもいいが、複数台あるとしんどいので。
GUIでポチポチしなくていいのは楽。

使用するにはsshログインかコンソールへのログイン(ESXi Shell)が必要

参考:
ESXi 5.x および 6.0 での ESXi Shell の使用 (2014831)

ESXiネットワーク情報取得

vSwich一覧取得

# esxcli network vswitch standard list

ポートグループ一覧

# esxcli network vswitch standard portgroup list

ESXiネットワーク設定

vSwitch設定

vSwitchに物理nicを接続する

# esxcfg-vswitch --link=vmnic0 vSwitch0

ManagementPortのVLAN ID変更

## 設定確認
# esxcli network vswitch standard portgroup list | head -3
Name                Virtual Switch  Active Clients  VLAN ID
------------------  --------------  --------------  -------
Management Network  vSwitch0                     1

## 設定変更
# esxcli network vswitch standard portgroup set -p "Management Network" --vlan-id 100

# esxcli network vswitch standard portgroup list | head -3
# esxcli network vswitch standard portgroup list
Name                Virtual Switch  Active Clients  VLAN ID
------------------  --------------  --------------  -------
Management Network  vSwitch0                     1      200

※物理スイッチがネイティブVLANになっている場合、
パケットがネイティブVLANからタグVLANになるので、このコマンドを打った時点でライアントと疎通が取れなくなる。
物理スイッチにVLANの設定をするまで疎通が取れないので注意。

PortGroup作成

「VLAN100」というPortGroupを作成

# esxcfg-vswitch --add-pg=VLAN100 vSwitch0

PortGroupにVLANID設定

「VLAN100」に「VLAN ID100」を設定

# esxcfg-vswitch --vlan=100 --pg=VLAN100 vSwitch0

ESXiストレージ設定

情報を取得

# esxcli storage
Usage: esxcli storage {cmd} [cmd options]

Available Namespaces:
  core                  VMware core storage commands.
  nfs                   Operations to create, manage, and remove Network Attached Storage filesystems.
  nmp                   VMware Native Multipath Plugin (NMP). This is the VMware default implementation of the Pluggable Storage Architecture.
  san                   IO device management operations to the SAN devices on the system.
  vflash                virtual flash Management Operations on the system.
  vmfs                  VMFS operations.
  filesystem            Operations pertaining to filesystems, also known as datastores, on the ESX host.
# esxcli storage nfs
Usage: esxcli storage nfs {cmd} [cmd options]

Available Namespaces:
  param                 Operations on volume parameters of NAS filesystems.

Available Commands:
  add                   Add a new NAS volume to the ESX Host and mount it with the given volume name.
  list                  List the NAS volumes currently known to the ESX host.
  remove                Remove an existing NAS volume from the ESX host.

nfsストレージを追加

## esxcli storage nfs add -H (NFS_IP|NFS_HOSTNAME) -s (Share_mount_point_on_the_NFS) -v (Volume-name)

# esxcli storage nfs add -H 192.168.1.1 -s /export/nfs/ -v nfsserver

## 確認
# esxcli storage nfs list

SNMP設定

## コミュニティ名に「public」を設定
# esxcli system snmp set --communities public

## SNMPを有効化
# esxcli system snmp set --enable true

## 確認
# esxcli system snmp get
   Authentication:
   Communities: public
   Enable: true
   Engineid: 00000063000000a100000000
   Hwsrc: indications
   Largestorage: true
   Loglevel: info
   Notraps:
   Port: 161
   Privacy:
   Remoteusers:
   Syscontact:
   Syslocation:
   Targets:
   Users:
   V3targets:

パッチの適用

## zipファイルのパッチファイルを適用する

# esxcli software vib install -d "/vmfs/volumes/datastore1/patch-directory/ESXi500-201111001.zip"

ESXi 5.x/6.x ホストにコマンド ラインからパッチをインストールする (2092895)

esxcliのコマンドリファレンス

コマンドリストを取得

# esxcli esxcli command list | head
Namespace                                           Command
--------------------------------------------------  -----------
esxcli.command                                      list
fcoe.adapter                                        list
fcoe.nic                                            disable
fcoe.nic                                            discover
fcoe.nic                                            list
hardware.bootdevice                                 list
hardware.clock                                      get
hardware.clock                                      set
~~~省略~~~~

参考

こちらもよければ。

noaboutsnote.hatenablog.com

noaboutsnote.hatenablog.com

PackstackでOpenstack(Mitaka)をAllinOneでインストールする

RDOとは

  • Redhat/FedoraOpenstackを利用するユーザのコミュニティ
  • Puppetベースのインストーラ(Packstack)を提供

RDOとPackstackのご紹介

Packstack

  • PuppetベースのOpesntackデプロイツール
  • マルチノード構成が簡単に作れるがHAが組めない
  • とりあえずCentOSだったらこれかな

動作条件

  • x86_64
  • RAM 4GB以上
  • RHEL7(CentOS7)最小構成が推奨

インストールした環境

事前準備

# systemctl disable firewalld
# systemctl stop firewalld
# systemctl disable NetworkManager
# systemctl stop NetworkManager
# systemctl enable network
# systemctl start network
# yum update

Packstackのパッケージインストール

## リポジトリ追加
# yum install https://www.rdoproject.org/repos/rdo-release.rpm

## Packstackパッケージをインストール
# yum install  openstack-packstack

Packstackで全部入りのOpenstackを入れてみる

Answerファイル生成

# packstack --gen-answer-file=/root/answer.txt

編集したところだけ

全部入りにしたかったので、以下を変更

CONFIG_SAHARA_INSTALL=y
CONFIG_HEAT_INSTALL=y
CONFIG_TROVE_INSTALL=y
CONFIG_IRONIC_INSTALL=y
CONFIG_LBAAS_INSTALL=y
CONFIG_NEUTRON_FWAAS=y
CONFIG_NEUTRON_VPNAAS=y

Packstack実行

# packstack --answer-file=/root/answer.txt

**** Installation completed successfully ******

Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.1. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.1.1/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* To use Nagios, browse to http://192.168.1.1/nagios username: nagiosadmin, password: 891c4de6a9524084
* The installation log file is available at: /var/tmp/packstack/20160511-103152-Rm51YP/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20160511-103152-Rm51YP/manifests

ダッシュボードにログイン

http://localhost/dashboard

CLIで操作する

rcファイル読み込み

# source /root/keystonerc_admin

novaコマンド

# nova list
+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+

次は

Running an Instance

参考

HPサーバのiLO設定をオンラインでCLIから行う「hponcfg」

hponcfgとは

HPのサーバで、ESXiホスト上に既に仮想マシンが動いていて、止めたくない時に便利なコマンド「hponcfg」というのが あると知ったのでメモ。 HPのバンドルのESXiからインストールしている場合は、デフォルトで既に入っている。 バンドル版じゃないときは、ここから指定のバージョンのモノをダウンロードできる。

iLOIPアドレスやrootのパスワードの変更などが可能。

前提

  • rootでESXiホストにSSHログインができること

使い方

HELP

# /opt/hp/tools/hponcfg -h

HP Lights-Out Online Configuration utility

Version 4.0-13 (c) Hewlett-Packard Company, 2011
Firmware Revision = 2.27 Device type = iLO 2 Driver name = hpilo
iLO IP Address: xxxxxxx

USAGE:
 hponcfg  -?
 hponcfg  -h
 hponcfg  -m minFw
 hponcfg  -r [-m minFw ]
 hponcfg  [-a] -w filename [-m minFw]
 hponcfg  -g [-m minFw]
 hponcfg  -f filename [-l filename] [-s namevaluepair] [-v] [-m minFw]
 hponcfg  -i [-l filename] [-s namevaluepair] [-v] [-m minFw]

 -h,  --help           Display this message
 -?                    Display this message
 -r,  --reset          Reset the Management Processor to factory defaults
 -f,  --file           Get/Set Management Processor configuration from "filename"
 -i,  --input          Get/Set Management Processor configuration from the XML input
                       received through the standard input stream.
 -w,  --writeconfig    Write the Management Processor configuration to "filename"
 -a,  --all            Capture complete Management Processor configuration to the file.
                       This should be used along with '-w' option
 -l,  --log            Log replies to "filename"
 -v,  --xmlverbose     Display all the responses from Management Processor
 -s,  --substitute     Substitute variables present in input config file
                       with values specified in "namevaluepairs"
 -g,  --get_hostinfo   Get the Host information
 -m,  --minfwlevel     Minimum firmware level

現在の設定をファイルに出力する hponcfg -w

# /opt/hp/tools/hponcfg -w /tmp/ilo-conf.txt

# cat /tmp/ilo-conf.txt

<!-- HPONCFG VERSION = "4.0-13.0" -->
<!-- Generated 1/6/2016 3:48:5 -->
<RIBCL VERSION="2.1">
 <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD">
  <DIR_INFO MODE="write">
  <MOD_DIR_CONFIG>
    <DIR_AUTHENTICATION_ENABLED VALUE = "N"/>
    <DIR_LOCAL_USER_ACCT VALUE = "Y"/>
    <DIR_SERVER_ADDRESS VALUE = ""/>
    <DIR_SERVER_PORT VALUE = "636"/>
    <DIR_OBJECT_DN VALUE = ""/>
    <DIR_OBJECT_PASSWORD VALUE = ""/>
    <DIR_USER_CONTEXT_1 VALUE = ""/>
    <DIR_USER_CONTEXT_2 VALUE = ""/>
    <DIR_USER_CONTEXT_3 VALUE = ""/>
  </MOD_DIR_CONFIG>
  </DIR_INFO>
  <RIB_INFO MODE="write">
  <MOD_NETWORK_SETTINGS>
    <SPEED_AUTOSELECT VALUE = "Y"/>
    <NIC_SPEED VALUE = "10"/>
    <FULL_DUPLEX VALUE = "N"/>
    <IP_ADDRESS VALUE = "xxx.xxx.xxx.xxx"/>
    <SUBNET_MASK VALUE = "255.255.0.0"/>
    <GATEWAY_IP_ADDRESS VALUE = "xxx.xxx.xxx.xxx"/>
    <DNS_NAME VALUE = "xxxxxxxxxxxx"/>
    <PRIM_DNS_SERVER value = "xxx.xxx.xxx.xxx"/>
    <DHCP_ENABLE VALUE = "N"/>
    <DOMAIN_NAME VALUE = "N"/>
    <DHCP_GATEWAY VALUE = "N"/>
    <DHCP_DNS_SERVER VALUE = "N"/>
    <DHCP_STATIC_ROUTE VALUE = "N"/>
    <DHCP_WINS_SERVER VALUE = "N"/>
    <REG_WINS_SERVER VALUE = "N"/>
    <PRIM_WINS_SERVER value = "0.0.0.0"/>
    <STATIC_ROUTE_1 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
    <STATIC_ROUTE_2 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
    <STATIC_ROUTE_3 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
  </MOD_NETWORK_SETTINGS>
  </RIB_INFO>
  <USER_INFO MODE="write">
  </USER_INFO>
 </LOGIN>
</RIBCL>

設定を変更 hponcfg -f

# hponcfg -f ファイル名
<IP_ADDRESS VALUE = “172.16.1.19”/>
<SUBNET_MASK VALUE = “255.255.0.0”/>
<GATEWAY_IP_ADDRESS VALUE = “172.16.0.1”/>
<DNS_NAME VALUE = “xxxxxxxx”/>xxx
<PRIM_DNS_SERVER value = “172.16.0.1”/>
<DHCP_ENABLE VALUE = “N”/>

<ribcl VERSION=”2.0″>
<login USER_LOGIN=”Administrator” PASSWORD=”YOUR-NEW-PASSWORD“>
<user_INFO MODE=”write”>
<mod_USER USER_LOGIN=”Administrator”>
<password value=”newpass”/>
</mod_USER>
</user_INFO>
</login>
</ribcl>


<RIBCL VERSION="2.1">
 <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD">
 <user_INFO MODE=”write”>
  <mod_USER USER_LOGIN="Administrator">
  <password value=”caNsnFlz”/>
  </mod_USER>
  </user_INFO>
  </LOGIN>
 </RIBCL>

管理者のパスワードを変更する hponcfg -f reset_admin_pw.xml

# hponcfg -f reset_admin_pw.xml
<!-- HPONCFG VERSION = "4.0-13.0" -->
<!-- Generated 1/6/2016 3:48:5 -->
<RIBCL VERSION="2.1">
 <LOGIN USER_LOGIN="Administrator" PASSWORD="YOUR-NEW-PASSWORD">
  <DIR_INFO MODE="write">
  <MOD_DIR_CONFIG>
    <DIR_AUTHENTICATION_ENABLED VALUE = "N"/>
    <DIR_LOCAL_USER_ACCT VALUE = "Y"/>
    <DIR_SERVER_ADDRESS VALUE = ""/>
    <DIR_SERVER_PORT VALUE = "636"/>
    <DIR_OBJECT_DN VALUE = ""/>
    <DIR_OBJECT_PASSWORD VALUE = ""/>
    <DIR_USER_CONTEXT_1 VALUE = ""/>
    <DIR_USER_CONTEXT_2 VALUE = ""/>
    <DIR_USER_CONTEXT_3 VALUE = ""/>
  </MOD_DIR_CONFIG>
  </DIR_INFO>
  <RIB_INFO MODE="write">
  <MOD_NETWORK_SETTINGS>
    <SPEED_AUTOSELECT VALUE = "Y"/>
    <NIC_SPEED VALUE = "10"/>
    <FULL_DUPLEX VALUE = "N"/>
    <IP_ADDRESS VALUE = "172.16.1.19"/>
    <SUBNET_MASK VALUE = "255.255.0.0"/>
    <GATEWAY_IP_ADDRESS VALUE = "172.16.0.1"/>
    <DNS_NAME VALUE = "xxxxxxxxx"/>
    <PRIM_DNS_SERVER value = "172.16.0.1"/>
    <DHCP_ENABLE VALUE = "N"/>
    <DOMAIN_NAME VALUE = "N"/>
    <DHCP_GATEWAY VALUE = "N"/>
    <DHCP_DNS_SERVER VALUE = "N"/>
    <DHCP_STATIC_ROUTE VALUE = "N"/>
    <DHCP_WINS_SERVER VALUE = "N"/>
    <REG_WINS_SERVER VALUE = "N"/>
    <PRIM_WINS_SERVER value = "0.0.0.0"/>
    <STATIC_ROUTE_1 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
    <STATIC_ROUTE_2 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
    <STATIC_ROUTE_3 DEST = "0.0.0.0" GATEWAY = "0.0.0.0"/>
  </MOD_NETWORK_SETTINGS>
  </RIB_INFO>
  <USER_INFO MODE="write">
  </USER_INFO>
 </LOGIN>
</RIBCL>

参考

How to Configure HP ILO from ESXi host

ESXi5.5でパケットキャプチャツール「pktcap-uw」を使ってみた

pktcap-uwとは

  • ESXi5.5から提供されたパケットキャプチャツール
  • 標準仮想スイッチ、分散仮想スイッチでも使用可能
  • 以前からあったtcpdump-uwツールの代わりに使用できる
  • tcpdump-uwはvmkernelだけだったが、pktcap-uwはハイパーバイザー内のすべてのポイントでトラフィックをキャプチャできる
  • pcapファイルでエクスポートできるので、Wiresharkなどでパケット解析ができる

使い方

  • ESXiにSSH接続する

ESXi5.5でsshを有効にする方法

できること

ポートごと

–switchport <port ID> (Specify the switch port by ID)
–lifID <lif ID> (Specify the logical interface id of VDR port)
–vmk <vmk NIC> (Specify the switch port by vmk NIC)
–uplink <vmnic> (Specify the switch port by vmnic)

キャプチャポイント一覧

# pktcap-uw -A
Supported capture points:
1: Dynamic — The dynamic inserted runtime capture point.
2: UplinkRcv — The function that receives packets from uplink dev
3: UplinkSnd — Function to Tx packets on uplink
4: Vmxnet3Tx — Function in vnic backend to Tx packets from guest
5: Vmxnet3Rx — Function in vnic backend to Rx packets to guest
6: PortInput — Port_Input function of any given port
7: IOChain — The virtual switch port iochain capture point.
8: EtherswitchDispath — Function that receives packets for switch
9: EtherswitchOutput — Function that sends out packets, from switch
10: PortOutput — Port_Output function of any given port
11: TcpipDispatch — Tcpip Dispatch function
12: PreDVFilter — The DVFIlter capture point
13: PostDVFilter — The DVFilter capture point
14: Drop — Dropped Packets capture point
15: VdrRxLeaf — The Leaf Rx IOChain for VDR
16: VdrTxLeaf — The Leaf Tx IOChain for VDR
17: VdrRxTerminal — Terminal Rx IOChain for VDR
18: VdrTxTerminal — Terminal Tx IOChain for VDR
19: PktFree — Packets freeing point

フィルターオプション

–srcmac <xx:xx:xx:xx:xx> (The Ethernet source MAC address)
–dstmac <xx:xx:xx:xx:xx> (The Ethernet destination MAC address)
–mac <xx:xx:xx:xx:xx> (The Ethernet MAC address(src or dst))
–ethtype 0x<ETHTYPE> (The Ethernet type. HEX format)
–vlan <VLANID> (The Ethernet VLAN ID)
–srcip <x.x.x.x[/<range>]> (The source IP address)
–dstip <x.x.x.x[/<range>]> (The destination IP address)
–ip <x.x.x.x> (The IP address(src or dst))
–proto 0x<IPPROTYPE> (The IP protocol)
–srcport <SRCPORT> (The TCP source port)
–dstport <DSTPORT> (The TCP destination port)
–tcpport <PORT> (The TCP port(src or dst))
–vxlan <vxlan id> (The vxlan id of flow)

キャプチャする仮想マシンの情報を取得する

## 有効なnic一覧
# esxcli network nic list

## 有効なインターフェイス一覧
# esxcli network ip interface list

## iポートのIP情報
# esxcli network ip interface ipv4 get

## ネットワークが有効な仮想マシン一覧
# esxcli network vm list

## PortIDがわかる
# esxtop  
 →  nを押下

ヘルプ

# pktcap-uw -h |more

vmkernel ポートのトラフィックのライブ キャプチャを表示する

# pktcap-uw --vmk vmkX
# pktcap-uw --vmk vmk0
The name of the vmk is vmk0
No server port specifed, select 48475 as the port
Output the packet info to console.
Local CID 2
Listen on port 48475
Accept...Vsock connection from port 1025 cid 2
04:55:36.998505[1] Captured at PortInput point, TSO not enabled, Checksum offloaded and not verified, length 154.
        Segment[0] ---- 54 bytes:
        0x0000:  0000 5e00 0102 0026 554a 6100 0800 4510
        0x0010:  008c dbf5 4000 4006 53d0 0ac8 3d35 c0a8
        0x0020:  01f1 0016 f512 9103 f13d fcb2 da71 5018
        0x0030:  0080 0b15 0000
        Segment[1] ---- 100 bytes:
        0x0030:                 e8bc 3e7d 8ccb ee66 7f60
        0x0040:  6776 2009 f8b4 f247 f07e e17b b53b e19b
        0x0050:  7759 cf68 00c9 2145 17b9 b95f f8bb 679c
        0x0060:  bfab b32c 79ef 60a5 7acb 38b2 e61f 1065
        0x0070:  7612 6bc1 06e5 0aef 9b33 10b5 dd26 81f3
        0x0080:  2327 1140 80d4 c590 5176 d587 62d2 09bf
        0x0090:  2c1c f9e7 4e91 b5e8 3e88
~~~~~~~~~~

ESXiホスト vmnic 上の特定の物理ネットワーク カードのライブ キャプチャを表示する

# pktcap-uw --uplink vmnic0

仮想マシンの特定の vSwitch ポートのライブ キャプチャを表示す

仮想マシンのvSwitch ポート番号を取得する
# net-stats -l
取得したポートをキャプチャする
# pktcap-uw --switchport switchportnumber
# pktcap-uw --switchport (PortID)

キャプチャしたデータをpcapファイルに保存する

# pktcap-uw --vmk vmk0 -o /tmp/test.pcap
The name of the vmk is vmk0
The output file is /tmp/test.pcap
No server port specifed, select 58077 as the port
Local CID 2
Listen on port 58077
Accept...Vsock connection from port 1030 cid 2
Dump: 171766, broken : 0, drop: 0, file err: 0Destroying session 6

Dumped 171766 packet to file /tmp/test.pcap, dropped 0 packets.
Done.

→ ctl+c で終了する

# ls -la /tmp/test.pcap
-r--r--r--    1 root     root      31830971 Jun  8 05:57 /tmp/test.pcap

参考

OSSのプライベートクラウド基盤ソフトウェアまとめ

今回の選出の条件

  • OSSクラウド基盤ソフトウェア
  • サーバ、ネットワーク、ストレージなどを都合管理できる
  • 仮想マシンやストレージなどを一括配置できる
  • 管理用Web画面がある

主要なOSSプライベートクラウド基盤ソフトウェア比較

Openstack

Apache Cloudstack

OpenNebula

  • OpenNebula.orgで開発
  • 企業や研究所,大学などの学術機関で,組織内の利用者にプライベートクラウドとして提供する,という用途が多い
  • WebフロントエンドのsunstoneはRubyで書かれている

Eucalyptus(ユーカリプタス)

  • 米・Eucalyptusで開発されていたが、2014年9月にHPに買収された
  • というかCEOがOpenstackに寝返ったらしい

Wakame-vdc

  • 仮想データセンターを構築する国産のソフトウェア
  • 国産言語Rubyで書かれている
  • CentOSならサクッとインストールが可能

Apache VCL

  • Apache Software Foundation製
  • Web Portal、Database、Management Node、Compute Nodesで主に構成される

openQRM

  • ドイツopenQRM Enterprise社が開発

オープンソースの仮想基盤管理ツールまとめ

GUI仮想マシンを管理できるソフトウェアをまとめてみた

ConVirt

oVirt

Karesansui

  • 株式会社HDEが開発しているサーバ仮想化管理アプリケーション)

XenCenter

  • XenServerを管理する
  • 無償版では、XenMotion,リソースプール設定、リソース割り当ての制御が不可

virt-manager(Virtual Machine Manager)

参考

こちらも

noaboutsnote.hatenablog.com