ssh で 192.168.99.199 で接続してください(openstack/openstack)
root ユーザのホームディレクトリには OpenStack を管理者ユーザーで使うための設定ファイルが保存されています。
openstack ユーザのホームディレクトリには OpenStack を一般ユーザで使うための設定ファイルが保存されています。
openstackユーザのホームディレクトリの openrc には演習用環境を利用するためのOpenStack認証情報が記載されています。各種コマンドで操作を行う前に、このファイルを読み込んで、環境変数へ認証情報を設定しておきます。
cat ~/openrc
source ~/openrc
env | grep OS_
初期状態では、管理者が設定する public ネットワーク、Cirrosイメージ作成されています。 みなさんがユーザとしてOpenStackを使う場合は、この状態からのスタートになります。
VMはありません
nova list
管理者が作成した public ネットワークのみが存在しています。
neutron net-list
今回の演習用に作成したキーペアが作成されています。
nova keypair-list
テスト用のOSイメージが登録されています。
openstack image list
フレーバー(AWSのインスタンスタイプ)が予めいくつか定義されています。これは管理者が設定します。
nova flavor-list
管理的なファイアーウォール機能が予め2つ定義されています。default は初期状態で存在し、すべての通信(→VM)を遮断します。ここでは open-all という全ての通信を許可するルールを演習用に作成しています。
neutron security-group-list
操作の流れ。
Webのダッシュボードから、Network → Network Topology を開いておくと、変化がわかりやすいくなります。
自分用の仮想ルーターを作成し、外部ネットワーク(public/192.168.99.0/24)と接続します。
neutron router-create Ext-Router
neutron router-list
neutron router-gateway-set Ext-Router public
neutron router-list
仮想ネットワークを作成して、この仮想ルーターとの接続を行います。この操作で、仮想ネットワークと public ネットワークが接続されます。
neutron net-create work-net
neutron net-list
neutron subnet-create --ip-version 4 --gateway 172.16.11.254 --name work-subnet work-net 172.16.11.0/24
neutron net-list
neutron router-interface-add Ext-Router work-subnet
この時、仮想マシンは先程作成した仮想ネットワークへ接続を行います。 Cirrosというテスト用のOSイメージを使って仮想マシンを作成します。この仮想マシンは非常にコンパクトでこのようなテストや演習に最適です。 本番環境で利用する際には、CentOSやRHELのイメージを登録しておき、そのイメージを利用します。
function get_uuid () { cat - | grep " id " | awk '{print $4}'; }
export MY_WORK_NET=`neutron net-show work-net | get_uuid`
nova boot --flavor m1.tiny --image "cirros-0.3.5" \
--key-name my-key --security-groups open-all \
--nic net-id=${MY_WORK_NET} \
test-vm-1
仮想マシンの起動を確認します。
nova list
ACTIVE状態になるまで待機します。この時、仮想マシンに割り当てられたIPアドレスをメモしておきます。
nova list
作成した仮想マシンは自分で作成した内部ネットワークに接続されており、仮想マシン→外部 の接続は可能ですが、外部→仮想マシンの接続は行なえません。 Floating IPを仮想マシンに割り当てて、外部→仮想マシンの接続が行えるようにします。
Floating IPとは、外部ネットワーク(ここではpublic)のIPアドレスを仮想マシンへNATするための機能です。
まず、管理者が設定している public ネットワークから、Floating IPを確保します。
neutron floatingip-create public
neutron floatingip-list
確保されたIPアドレスを、変数 FIP_UUID へ格納しておきます(後で使います)
FIP_UUID=`neutron floatingip-list -f value -c id --floating_ip_address=192.168.99.205`
echo $FIP_UUID
作成した仮想サーバーの論理ポートを調べます。Floating IPの割り当てには、この論理ポートに対して行うためです。
neutron port-list
PORT_UUID=`neutron port-list -f value -c id --fixed_ips ip_address=172.16.11.8`
echo $PORT_UUID
コマンドの引数として、 Floating IPのUUID PortのUUID の順で指定します
neutron floatingip-associate $FIP_UUID $PORT_UUID
nova list
付与されたFloating IPへSSH接続します。 自分のノートPCのSSHか、仮想アプライアンスから実行してください。
この時に、/home/openstack/my-key.pem がログインするための秘密鍵になります(あらかじめ今回の演習用に作成して配置したものになります)
ssh -oStrictHostKeyChecking=no -i ~/my-key.pem cirros@192.168.99.205 hostname
仮想マシンを削除し、割り当てたFloating IPも解除しておきます。
nova delete test-vm-1
nova list
以下で指定するUUIDは、上で作成したFloating IPのUUIDです。
neutron floatingip-delete $FIP_UUID
neutron floatingip-list
作成した仮想ルーター、仮想ネットワークはこの後のハンズオン用に残しておきます。