9
9

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 5 years have passed since last update.

OpenStack RDO Icehouse を CentOS 6.5 にインストール

Last updated at Posted at 2014-09-08

参考

[RDO]
(https://openstack.redhat.com/Main_Page)
[RDO:Neutron with existing external network]
(https://openstack.redhat.com/Neutron_with_existing_external_network)
[OPENSTACK MANUALS:Configure network node]
(http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-network-node.html)
[OPENSTACK MANUALS:Configure compute node]
(http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-compute-node.html)
[Red Hat Enterprise Linux OpenStack Platform : Editing a PackStack Answer File]
(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch06s03s02.html)

構築環境

インストールするサーバー

OS IPアドレス メモリ CPU NIC
CentOS6.5 192.168.1.41 2GB 2 1

public空間(物理環境)

名前 ネットワーク ゲートウェイ フローティングIP(非DHCP空間)
public 192.168.1.0/24 192.168.1.1 192.168.1.42~49

プライベート空間(仮想環境)

名前 ネットワーク ゲートウェイ フローティングIP(非DHCP空間)
private 192.168.111.0/24 192.168.111.1 192.168.111.2~254

必要パッケージのインストール

・時刻を合わせる
・アップデート
・RDOのリポジトリ追加
・openstack-packstackのインストール

shell
yum install -y ntpdate && ntpdate ntp.nict.jp
>
yum update  -y
>
yum install -y http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm
>
yum install -y openstack-packstack

カーネルパラメーター修正

shell
sed -i.org \
    -e "s/^net.ipv4.ip_forward.*=.*0/net.ipv4.ip_forward = 1/" \
    -e "s/^net.ipv4.conf.all.rp_filter.*=.*1/net.ipv4.conf.all.rp_filter = 0/" \
    -e "s/^net.ipv4.conf.default.rp_filter.*=.*1/net.ipv4.conf.default.rp_filter = 0/" \
    /etc/sysctl.conf

sysctl -p

アンサーファイル生成と編集

・アンサーファイル生成

shell
packstack --gen-answer-file answer.txt

・パスワード変更

shell
KEYSTONE_PASSWORD=password
>>
sed -i.org \
    -e "s/^CONFIG_KEYSTONE_ADMIN_PW=.*/CONFIG_KEYSTONE_ADMIN_PW=${KEYSTONE_PASSWORD}/" \
    -e "s/^CONFIG_KEYSTONE_DEMO_PW=.*/CONFIG_KEYSTONE_DEMO_PW=${KEYSTONE_PASSWORD}/" \
    answer.txt

・プライベートインターフェースをloにする

shell
sed -i \
    -e "s/^CONFIG_NOVA_NETWORK_PRIVIF=eth1/CONFIG_NOVA_NETWORK_PRIVIF=lo/" \
    -e "s/^CONFIG_NOVA_COMPUTE_PRIVIF=eth1/CONFIG_NOVA_COMPUTE_PRIVIF=lo/" \
    answer.txt

・Cinderに割り当てられるディスクサイズの変更(任意)

shell
VOLUMES_SIZE=50G
>>
sed -i \
    -e "s/^CONFIG_CINDER_VOLUMES_SIZE=20G/CONFIG_CINDER_VOLUMES_SIZE=$VOLUMES_SIZE/" \
    answer.txt

・KeystoneのトークンフォーマットUUIDに変更(任意)

shell
sed -i \
    -e "s/^CONFIG_KEYSTONE_TOKEN_FORMAT=PKI/CONFIG_KEYSTONE_TOKEN_FORMAT=UUID/" \
    answer.txt

・Heatをインストール(任意)

shell
sed -i \
    -e "s/^CONFIG_HEAT_INSTALL=n/CONFIG_HEAT_INSTALL=y/" \
    -e "s/^CONFIG_HEAT_CLOUDWATCH_INSTALL=n/CONFIG_HEAT_CLOUDWATCH_INSTALL=y/" \
    -e "s/^CONFIG_HEAT_CFN_INSTALL=n/CONFIG_HEAT_CFN_INSTALL=y/" \
    answer.txt

・デモはいらない(任意)

shell
sed -i \
    -e "s/^CONFIG_PROVISION_DEMO=y/CONFIG_PROVISION_DEMO=n/" \
    answer.txt

・Nagiosはいらない(任意)

shell
sed -i \
    -e "s/^CONFIG_NAGIOS_INSTALL=y/CONFIG_NAGIOS_INSTALL=n/" \
    answer.txt

インストール開始

shell
packstack --answer-file answer.txt

Neutron設定追加

shell
vi /etc/neutron/plugin.ini

・/etc/neutron/plugin.ini 最終行に追記

/etc/neutron/plugin.ini
[ovs]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex

libvirt_type設定

shell
vi /etc/nova/nova.conf

・libvirt_type に kvmもしくはqemu を指定

/etc/nova/nova.conf
[libvirt]
virt_type=qemu

NICの設定変更

・eth0 編集

shell
vi /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes

・br-ex 編集

shell
vi /etc/sysconfig/network-scripts/ifcfg-br-ex
/etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.41
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
ONBOOT=yes

再起動

shell
reboot

仮想ネットワーク構築

shell
source /root/keystonerc_admin

・publicネットワーク作成

shell
neutron net-create public \
    --router:external true
>
neutron subnet-create \
    --name public_subnet \
    --enable_dhcp=False \
    --allocation-pool=start=192.168.1.42,end=192.168.1.49 \
    --gateway=192.168.1.1 \
    public \
    192.168.1.0/24

・pvivateネットワーク作成

shell
neutron net-create private \
    --shared
>
neutron subnet-create \
    --name private_subnet \
    --enable_dhcp=True \
    --allocation-pool=start=192.168.111.2,end=192.168.111.254 \
    --gateway=192.168.111.1 \
    private \
    192.168.111.0/24

・仮想ルーター作成

shell
neutron router-create router1
>
neutron router-gateway-set router1 public
>
neutron router-interface-add router1 private_subnet

デフォルト フレーバーの修正

・現在のフレーバー確認
・1番目のフレーバーを削除
・1番目に新しいフレーバーを作成
・フレーバー確認

shell
nova flavor-list
>
nova flavor-delete 1
>
nova flavor-create m1.tiny 1 512 10 1
>
nova flavor-list
flavor-createの各値について
# nova flavor-create \
       FLAVOR_NAME \
       FLAVOR_ID \
       RAM_IN_MB \
       ROOT_DISK_IN_GB \
       NUMBER_OF_VCPUS

デフォルト セキュリティグループの修正

・PING許可

shell
neutron security-group-rule-create \
    --protocol icmp \
    --direction ingress default
>
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

・SSH許可

shell
neutron security-group-rule-create \
    --protocol tcp --port-range-min 22 \
    --port-range-max 22 \
    --direction ingress default
>
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0

インスタンス イメージ作成

・インスタンス イメージ作成に必要なパッケージをインストール

shell
yum install -y qemu-img virt-install

・qcow2形式のイメージディスク作成

shell
IMAGE_NAME=CentOS6.5
>
qemu-img create -f qcow2 /var/lib/libvirt/images/$IMAGE_NAME.qcow2 10G

・CentOSイメージ作成

・ネットワークインストールするリポジトリURL指定
・KVM上での名前を指定
・virt-installでインストールする

shell
REPOS=http://ftp.riken.jp/Linux/centos/6/os/x86_64/
>
IMAGE_NAME=CentOS6.5
>
virt-install \
    --name $IMAGE_NAME \
    --ram 512 \
    --disk path=/var/lib/libvirt/images/$IMAGE_NAME.qcow2,format=qcow2 \
    --vcpus=1 \
    --os-type linux \
    --os-variant=rhel6 \
    --nographics \
    --location="$REPOS" \
    --extra-args='console=tty0 console=ttyS0,115200n8 serial'

・CentOSイメージ内で

shell
rm /etc/udev/rules.d/70-persistent-net.rules
>>
ln -s /dev/null /etc/udev/rules.d/70-persistent-net.rules
>>
vi /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=dhcp

・イメージファイルの圧縮

shell
IMAGE_NAME=CentOS6.5
> 
qemu-img convert -c -O qcow2 \
    /var/lib/libvirt/images/$IMAGE_NAME.qcow2 \
    /var/lib/libvirt/images/$IMAGE_NAME.new.qcow2
> 
rm /var/lib/libvirt/images/$IMAGE_NAME.qcow2
> 
mv /var/lib/libvirt/images/$IMAGE_NAME.new.qcow2 \
   /var/lib/libvirt/images/$IMAGE_NAME.qcow2

インスタンス イメージ登録

shell
IMAGE_NAME=CentOS6.5

glance image-create \
    --name=$IMAGE_NAME \
    --is-public=true \
    --disk-format=qcow2 \
    --container-format=bare < /var/lib/libvirt/images/$IMAGE_NAME.qcow2

キーペア作成

shell
cd && nova keypair-add mykey > mykey && chmod 600 mykey

nova keypair-list

インスタンスの起動

shell
IMAGE_NAME=CentOS6.5

INSTANCE_NAME=CentOS6.5-test

PRIVATE_NET_ID=`neutron net-list | awk '$4=="private"{print $2}'`

nova boot \
    --flavor 1 \
    --image $IMAGE_NAME \
    --security_group default \
    --nic net-id=$PRIVATE_NET_ID \
    --key-name mykey \
    $INSTANCE_NAME

フローティングIPの付与

・作成したインスタンスのデバイスIDを取得する

shell
INSTANCE_NAME=CentOS6.5-test
>
DEVICE_ID=`nova list | awk -v INSTANCE_NAME=$INSTANCE_NAME '$4==INSTANCE_NAME{print $2}'`
>
echo $DEVICE_ID

・作成したインスタンスのポートIDを取得する

shell
PORT_ID=`neutron port-list --device_id=$DEVICE_ID | awk '/ip_address/{print $2}'`
>
echo $PORT_ID

・フローティングIPの割出とフローティングIPのIDを取得する

shell
FLOATINGIP_ID=`neutron floatingip-create public | awk '$2~/^id$/{print $4}'`
>
echo $FLOATINGIP_ID

・フローティングIPをサブネットに割り当てる

shell
neutron floatingip-associate $FLOATINGIP_ID $PORT_ID

・確認

shell
nova list --name $INSTANCE_NAME
neutron floatingip-list --id $FLOATINGIP_ID | awk '{print $6}'

作成したインスタンスにssh接続する

shell
ssh -i mykey root@floating_ip_address
9
9
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
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?