上図のような環境で試した。
CloudStackの時は管理コンソールを別だてしたが
参考にした
OpenStack Compute Statrt Guide(May 4, 2012)
を読んだら、
Server1をそのまま実行したら単一サーバになることが
書かれていたので1台こっきりでたてた。
Ubuntu Desktopたてたらおそらく
UltraVNCするPCも不要だが
まあ念のため。
とりあえず500GBは
- /dev/sda1 16GB スワップ
- /dev/sda2 84GB OS(/)
- /dev/sda3 200GB nova-volume用(マウントせず→/mnt/swift_backend)
- /dev/sda4 200GB swift用(マウントせず)
初めてのインストールなので、
配分はおそらくめちゃくちゃだとおもう。
以下インストール手順を、一挙手一投足をなるべく書きだしてみた。
1. Ubuntu Server 12.04 LTS インストール
- Ubuntu Server 12.04LTS DVDを差し電源投入
- 日本語
- Ubuntu Serverをインストール
- はい
- 日本
- 日本語
- 日本語 - 日本語 (かな 86)
- Alt+Shift
- 戻る
- ネットワークを手動で設定
- 192.168.11.101
- 255.255.255.0
- 192.168.11.1
- 8.8.8.8
- shun
- fugafuga.jp
- OpenStack Administrator
- localadmin
- (パスワード)
- (パスワード)
- はい※脆弱なパスワードの場合
- いいえ
- 手動
- 1.基本 8.0GB F スワップ スワップ
- パーティションの削除
- 2.基本 40.0GB B ext4
- パーティションの削除
- 3.基本 200.0GB
- パーティションの削除
- 4.基本 252.1GB xfs
- パーティションの削除
- 基/論 500.1GB 空き領域
- 新しいパーティションの作成
- 16.0 GB
- 基本パーティション
- 先頭
- 利用方法: ext4 ジャーナリングファイルシステム
- スワップ領域
- パーティションのセットアップを終了
- 基/論 484.1GB 空き領域
- 新しいパーティションの作成
- 84.1 GB
- 基本パーティション
- 先頭
- パーティションのセットアップを終了
- 基/論 400.0GB 空き領域
- 新しいパーティションの作成
- 200.0 GB
- 基本パーティション
- 先頭
- マウントポイント: /home
- マウントしない
- パーティションのセットアップを終了
- 基/論 200.0GB 空き領域
- 新しいパーティションの作成
- 200.0 GB
- 基本パーティション
- 先頭
- マウントポイント: /home
- マウントしない
- パーティションのセットアップを終了
- パーティショニングの終了とディスクへの変更の書き込み
- いいえ
- いいえ
- はい
- http://proxy:8080/
- セキュリティアップデートを自動的にインストールする
- OpenSSH serverをチェック
- 続ける
- はい
- 続ける
2. OpenStack essexインストール
※OpenStack Compute Starter Guide May 4,2012を元にインストール作業
- Server1とServer2を1台にする
- 同一NICに対してeth0:0を設け、192.168.3.1を割り当てるとする
2.1 準備
- localadminでログイン
- sudo su -
- (localadminパスワード)
- aptitude update && aptitude -y dist-upgrade && aptitude -y install ntp bridge-utils
- vi /etc/sysctl.conf
※最終行に追加
net.ipv6.conf.all.disable_ipv6 = 1
- sysctl -p
- vi /etc/network/interfaces
※最終行に追加
# The secondary network interface
auto eth0:0
iface eth0:0 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
- /etc/init.d/networking restart
- vi /etc/ntp.conf
※編集元
# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com
※編集後
# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 strtum 10
- service ntp restart
2.2 データベース
- aptitude -y install mysql-server python-mysqldb
- mygreatsecret(MySQL rootパスワード)
- mygreatsecret(MySQL rootパスワード)
- mysql -uroot -pmygreatsecret -e "CREATE DATABASE nova;"
- mysql -uroot -pmygreatsecret -e "CREATE USER novadbadmin;"
- mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%';"
- mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'%' = PASSWORD('novasecret');"
- mysql -uroot -pmygreatsecret -e "CREATE DATABASE glance;"
- mysql -uroot -pmygreatsecret -e "CREATE USER glancedbadmin;"
- mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%';"
- mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'%' = PASSWORD('glancesecret');"
- mysql -uroot -pmygreatsecret -e "CREATE DATABASE keystone;"
- mysql -uroot -pmygreatsecret -e "CREATE USER keystonedbadmin;"
- mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'%';"
- mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'keystonedbadmin'@'%' = PASSWORD('keystonesecret');"
2.3 Keystone
- aptitude -y install keystone python-keystone python-keystoneclient
- vi /etc/keystone/keystone.conf
※編集前
admin_token = ADMIN
※編集後
admin_token = admin
※編集前
connection = sqlite:////var/lib/keystone/keystone.db
※編集後
connection = mysql://keystonedbadmin:keystonesecret@192.168.11.101/keystone
- vi ~/.bashrc
※最終行に追加
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export SERVICE_TOKEN=admin
- exit
- sudo su -
- (localadminパスワード)
- keystone tenant-create --name admin
- keystone tenant-create --name service
- keystone user-create --name admin --pass admin --email hogehoge@fugafuga.jp
- keystone user-create --name nova --pass nova --email hogehoge@fugafuga.jp
- keystone user-create --name glance --pass glance --email hogehoge@fugafuga.jp
- keystone user-create --name swift --pass swift --email hogehoge@fugafuga.jp
- keystone role-create --name admin
- keystone role-create --name Member
- keystone tenant-list
※tenant idとnameの結果をメモる
- keystone user-list
※user idとnameの結果をメモる
- keystone role-list
※role idとnameの結果をメモる
keystone user-role-add --user adminのID --role adminのID --tenant_id adminのID keystone user-role-add --user novaのID --role adminのID --tenant_id serviceのID keystone user-role-add --user glanceのID --role adminのID --tenant_id serviceのID keystone user-role-add --user swiftのID --role adminのID --tenant_id serviceのID keystone user-role-add --user adminのID --role MemberのID --tenant_id adminのID keystone service-create --name nova --type compute --description 'OpenStack Compute Service'keystone service-create --name volume --type volume --description 'OpenStack Volume Service' keystone service-create --name glance --type image --description 'OpenStack Image Service' keystone service-create --name swift --type object-store --description 'OpenStack Storage Service' keystone service-create --name keystone --type identity --description 'OpenStack Identity Service' keystone service-create --name ec2 --type ec2 --description 'EC2 Service' keystone service-list
※service idとnameの結果をメモる
keystone endpoint-create --region myregion --service_id novaのservice_ID --publicurl 'http://160.14.101.85:8774/v2/$(tenant_id)s' --adminurl 'http://160.14.101.85:8774/v2/$(tenant_id)s' --internalurl 'http://160.14.101.85:8774/v2/$(tenant_id)s' keystone endpoint-create --region myregion --service_id volumeのservice_ID --publicurl 'http://160.14.101.85:8776/v1/$(tenant_id)s' --adminurl 'http://160.14.101.85:8776/v1/$(tenant_id)s' --internalurl 'http://160.14.101.85:8776/v1/$(tenant_id)s' keystone endpoint-create --region myregion --service_id glanceのservice_ID --publicurl 'http://160.14.101.85:9292/v1' --adminurl 'http://160.14.101.85:9292/v1' --internalurl 'http://160.14.101.85:9292/v1' keystone endpoint-create --region myregion --service_id swiftのservice_ID --publicurl 'http://160.14.101.85:8080/v1/AUTH_$(tenant_id)s' --adminurl 'http://160.14.101.85:8080/v1' --internalurl 'http://160.14.101.85:8080/v1/AUTH_$(tenant_id)s' keystone endpoint-create --region myregion --service_id keystoneのservice_ID --publicurl 'http://160.14.101.85:5000/v2.0' --adminurl 'http://160.14.101.85:35357/v2.0' --internalurl 'http://160.14.101.85:5000/v2.0' keystone endpoint-create --region myregion --service_id ec2のservice_ID --publicurl 'http://160.14.101.85:8773/services/Cloud' --adminurl 'http://160.14.101.85:8773/services/Admin' --internalurl 'http://160.14.101.85:8773/services/Cloud'
2.4 Glance
aptitude -y install glance glance-api glance-client glance-common glance-registry python-glance vi /etc/glance/glance-api-paste.ini
※編集前
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
※編集後
admin_tenant_name = service
admin_user = glance
admin_password = glance
vi /etc/glance/glance-registry-paste.ini
※編集前
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
※編集後
admin_tenant_name = service
admin_user = glance
admin_password = glance
vi /etc/glance/glance-registry.conf
※編集前
sql_connection = sqlite:////var/lib/glance/glance.sqlite
※編集後
sql_connection = mysql://glancedbadmin:glancesecret@192.168.11.101/glance
※最終行に追加
[paste_deploy]
flavor = keystone
vi /etc/glance/glance-api.conf
※最終行に追加
[paste_deploy]
flavor = keystone
glance-manage version_control 0 glance-manage db_sync
※以下のようなエラー発生する
/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/versions/003_add_disk_format.py:47: SADeprecationWarning: useexisting is deprecated. Use extend_existing.
useexisting=True)
※これはインデックスix_image_properties_name作成する行にセミコロンがなかった
バグらしいので手動で作ればクリアできる
mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'localhost';" mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'localhost' = PASSWORD('glancesecret');" mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'shun';" mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'shun' = PASSWORD('glancesecret');" "CREATE INDEX ix_image_properties_name ON image_properties (name);" mysql -uglancedbadmin -pglancesecret glance -e
glance-manage db_sync ※なにも表示されなければOK
※2012/09/06更新上記太字SQL文が途中で消えてましたすみません
restart glance-api restart glance-registry vi .bashrc
※最終行に追加
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
exit sudo su - (localadminパスワード) glance index
2.5 Nova
aptitude -y install nova-api nova-cert nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server novnc nova-consoleauth vi /etc/nova/nova.conf
※既存の行をすべて#でコメントアウト
※最終行に追加
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/run/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
#--s3_host=10.10.10.2
--s3_host=192.168.11.101
#--ec2_host=10.10.10.2
--ec2_host=192.168.11.101
#--rabbit_host=10.10.10.2
--rabbit_host=192.168.11.101
#--cc_host=10.10.10.2
--cc_host=192.168.11.101
#--nova_url=http://10.10.10.2:8774/v1.1/
--nova_url=http://192.168.11.101:8774/v1.1/
#--routing_source_ip=10.10.10.2
--routing_source_ip=192.168.11.101
#--glance_api_servers=10.10.10.2:9292
--glance_api_servers=192.168.11.101:9292
--image_service=nova.image.glance.GlanceImageService
#--iscsi_ip_prefix=192.168.4
#--sql_connection=mysql://novadbadmin:novasecret@10.10.10.2/nova
--sql_connection=mysql://novadbadmin:novasecret@192.168.11.101/nova
#--ec2_url=http://10.10.10.2:8773/services/Cloud
--ec2_url=http://192.168.11.101:8773/services/Cloud
#--keystone_ec2_url=http://10.10.10.2:5000/v2.0/ec2tokens
--keystone_ec2_url=http://192.168.11.101:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# vnc specific configuration
--novnc_enabled=true
#--novncproxy_base_url=http://10.10.10.2:6080/vnc_auto.html
--novncproxy_base_url=http://192.168.11.101:6080/vnc_auto.html
#--vncserver_proxyclient_address=10.10.10.2
--vncserver_proxyclient_address=192.168.11.101
#--vncserver_listen=10.10.10.2
--vncserver_listen=0.0.0.0
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
#--flat_interface=eth1
--flat_interface=eth0
--flat_network_bridge=br100
#--fixed_range=192.168.4.1/27
--fixed_range=192.168.11.0/24
#--floating_range=10.10.10.2/27
--network_size=32
#--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
#--force_dhcp_release
--force_dhcp_release=True
#--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--ec2_private_dns_show_ip
--verbose
fdisk -l
※nova用領域のデバイス名を確認する
pvcreate /dev/sda3 vgcreate nova-volumes /dev/sda3
※sをうっかり忘れないように。VG名は決め打ち。 VG名を誤るとnova-volumeが起動しない
chown -R nova:nova /etc/nova chmod 644 /etc/nova/nova.conf vi /etc/nova/api-paste.ini
※編集前
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
※編集後
admin_tenant_name = service
admin_user = nova
admin_password = nova
nova-manage db sync
※以下のようなメッセージが出るがDEBUGなので無視する
2012-06-07 11:21:54 DEBUG nova.utils [-] backend from (pid=31700) __get_backend /usr/lib/python2.7/dist-packages/nova/utils.py:658
nova-manage network create private --fixed_range_v4=192.168.4.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth0:0 --network_size=32
※以下のようなメッセージが出るがDEBUGなので無視する
2012-06-07 11:24:43 DEBUG nova.utils [req-911a5093-596c-4499-a9ae-ae22f9fe64e0 None None] backend from (pid=31893) __get_backend /usr/lib/python2.7/dist-packages/nova/utils.py:658
- restart libvirt-bin;restart nova-network; restart nova-compute; restartnova-api; restart nova-objectstore; restart nova-scheduler; service nova-volume restart; restart nova-consoleauth;
※Guideにあるrestart nova-volumeが動かないのでserviceコマンドで代用
nova-manage service list
2.6 Horizon(OpenStack Dashboard)
aptitude -y install openstack-dashboard service apache2 restart
2.7 Swift
aptitude -y install swift swift-proxy swift-account swift-container swift-object aptitude -y install xfsprogs curl python-pastedeploy fdisk -l
※swift用パーティション名を確認する
mkfs.xfs -i size=1024 /dev/sda4 -f
※Guideには-fがないが、-fをつけるように指示される
※tune2fsは実行せず次へ進む
mkdir /mnt/swift_backend vi /etc/fstab
※最終行に追加
/dev/sda4 /mnt/swift_backend xfs noatime,nodiratime,nobarrier,logbufs=8 0 0
mount /mnt/swift_backend cd /mnt/swift_backend/ mkdir node1 node2 node3 node4 chown swift.swift /mnt/swift_backend/* for i in {1..4};do ln -s /mnt/swift_backend/node$i /srv/node$i; done; mkdir -p /etc/swift/account-server /etc/swift/container-server /etc/swift/object-server /srv/node1/device /srv/node2/device /srv/node3/device /srv/node4/device mkdir /run/swift vi /etc/rc.local
※exit 0という行の前に以下の行を挿入
sudo mkdir /run/swift
sudo chown swift.swift /run/swift
vi /etc/default/rsync
※編集前
RSYNC_ENABLE=false
※編集後
RSYNC_ENABLE=true
vi /etc/rsyncd.conf
※新規作成
[DEFAULT]
bind_port = 8080
user = swift
swift_dir = /etc/swift
[pipeline:main]
# Order of execution of modules defined below
pipeline = catch_errors healthcheck cache authtoken keystone proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true
set log_name = swift-proxy
set log_facility = LOG_LOCAL0
set log_level = INFO
set access_log_name = swift-proxy
set access_log_facility = SYSLOG
set access_log_level = INFO
set log_headers = True
account_autocreate = True
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:cache]
use = egg:swift#memcache
set log_name = cache
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
auth_protocol = http
auth_host = 127.0.0.1
auth_port = 35357
auth_token = admin
service_protocol = http
service_host = 127.0.0.1
service_port = 5000
admin_token = admin
admin_tenant_name = service
admin_user = swift
admin_password = swift
delay_auth_decision = 0
[filter:keystone]
paste.filter_factory = keystone.middleware.swift_auth:filter_factory
operator_roles = admin, swiftoperator
is_admin = true
service rsync status od -t x8 -N 8 -A n < /dev/random
※表示される文字列をメモる
vi /etc/swift/swift.conf
※編集前
swift_hash_path_suffix = 03c9f48da2229770
※編集後
swift_hash_path_suffix = <メモった文字列>
vi cat /etc/rsyncd.conf
※新規作成
# General stuff
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /run/rsyncd.pid
address = 127.0.0.1
# Account Server replication settings
[account6012]
max connections = 25
path = /srv/node1/
read only = false
lock file = /run/lock/account6012.lock
[account6022]
max connections = 25
path = /srv/node2/
read only = false
lock file = /run/lock/account6022.lock
[account6032]
max connections = 25
path = /srv/node3/
read only = false
lock file = /run/lock/account6032.lock
[account6042]
max connections = 25
path = /srv/node4/
read only = false
lock file = /run/lock/account6042.lock
# Container server replication settings
[container6011]
max connections = 25
path = /srv/node1/
read only = false
lock file = /run/lock/container6011.lock
[container6021]
max connections = 25
path = /srv/node2/
read only = false
lock file = /run/lock/container6021.lock
[container6031]
max connections = 25
path = /srv/node3/
read only = false
lock file = /run/lock/container6031.lock
[container6041]
max connections = 25
path = /srv/node4/
read only = false
lock file = /run/lock/container6041.lock
# Object Server replication settings
[object6010]
max connections = 25
path = /srv/node1/
read only = false
lock file = /run/lock/object6010.lock
[object6020]
max connections = 25
path = /srv/node2/
read only = false
lock file = /run/lock/object6020.lock
[object6030]
max connections = 25
path = /srv/node3/
read only = false
lock file = /run/lock/object6030.lock
[object6040]
max connections = 25
path = /srv/node4/
read only = false
lock file = /run/lock/object6040.lock
cp /etc/swift/account-server.conf /etc/swift/account-server/1.conf vi /etc/swift/account-server/1.conf
※編集前
[DEFAULT]
bind_ip = 0.0.0.0
workers = 2
[pipeline:main]
pipeline = account-server
[app:account-server]
use = egg:swift#account
[account-replicator]
[account-auditor]
[account-reaper]
※編集後
[DEFAULT]
devices = /srv/node1
mount_check = false
bind_port = 6012
user = swift
log_facility = LOG_LOCAL2
[pipeline:main]
pipeline = account-server
[app:account-server]
use = egg:swift#account
[account-replicator]
vm_test_mode = no
[account-auditor]
[account-reaper]
cp /etc/swift/account-server/1.conf /etc/swift/account-server/2.conf cp /etc/swift/account-server/1.conf /etc/swift/account-server/3.conf cp /etc/swift/account-server/1.conf /etc/swift/account-server/4.conf sed -i 's/6012/6022/g;s/LOCAL2/LOCAL3/g;s/node1/node2/g' /etc/swift/account-server/2.conf sed -i 's/6012/6032/g;s/LOCAL2/LOCAL4/g;s/node1/node3/g' /etc/swift/account-server/3.conf sed -i 's/6012/6042/g;s/LOCAL2/LOCAL5/g;s/node1/node4/g' /etc/swift/account-server/4.conf vi /etc/swift/container-server.conf
※最終行に追加
[container-sync]
vi /etc/swift/container-server/1.conf
※以下のように編集
[DEFAULT]
devices = /srv/node1
mount_check = false
bind_port = 6011
user = swift
log_facility = LOG_LOCAL2
[pipeline:main]
pipeline = container-server
[app:container-server]
use = egg:swift#container
[container-replicator]
vm_test_mode = no
[container-updater]
[container-auditor]
[container-sync]
cp /etc/swift/container-server/1.conf /etc/swift/container-server/2.conf cp /etc/swift/container-server/1.conf /etc/swift/container-server/3.conf cp /etc/swift/container-server/1.conf /etc/swift/container-server/4.conf sed -i 's/6011/6021/g;s/LOCAL2/LOCAL3/g;s/node1/node2/g' /etc/swift/container-server/2.conf sed -i 's/6011/6031/g;s/LOCAL2/LOCAL4/g;s/node1/node3/g' /etc/swift/container-server/3.conf sed -i 's/6011/6041/g;s/LOCAL2/LOCAL5/g;s/node1/node4/g' /etc/swift/container-server/4.conf cp /etc/swift/object-server.conf /etc/swift/container-server/2.conf cp /etc/swift/object-server.conf /etc/swift/container-server/3.conf cp /etc/swift/object-server.conf /etc/swift/container-server/4.conf sed -i 's/6010/6020/g;s/LOCAL2/LOCAL3/g;s/node1/node2/g' /etc/swift/object-server/2.conf sed -i 's/6010/6030/g;s/LOCAL2/LOCAL4/g;s/node1/node3/g' /etc/swift/object-server/3.conf sed -i 's/6010/6040/g;s/LOCAL2/LOCAL5/g;s/node1/node4/g' /etc/swift/object-server/4.conf cd /etc/swift/ swift-ring-builder object.builder create 18 3 1 swift-ring-builder container.builder create 18 3 1 swift-ring-builder account.builder create 18 3 1 swift-ring-builder object.builder add z1-127.0.0.1:6010/device 1 swift-ring-builder object.builder add z2-127.0.0.1:6020/device 1 swift-ring-builder object.builder add z3-127.0.0.1:6030/device 1 swift-ring-builder object.builder add z4-127.0.0.1:6040/device 1 swift-ring-builder object.builder rebalance swift-ring-builder container.builder add z1-127.0.0.1:6011/device 1 swift-ring-builder container.builder add z2-127.0.0.1:6021/device 1 swift-ring-builder container.builder add z3-127.0.0.1:6031/device 1 swift-ring-builder container.builder add z4-127.0.0.1:6041/device 1 swift-ring-builder container.builder rebalance swift-ring-builder account.builder add z1-127.0.0.1:6012/device 1 swift-ring-builder account.builder add z2-127.0.0.1:6022/device 1 swift-ring-builder account.builder add z3-127.0.0.1:6032/device 1 swift-ring-builder account.builder add z4-127.0.0.1:6042/device 1 swift-ring-builder account.builder rebalance swift-init main start swift-init rest start chown -R swift.swift /etc/swift swift -v -V 2.0 -A http://127.0.0.1:5000/v2.0/ -U service:swift -K swift stat
※以下の様なメッセージが出たらOK
StorageURL: http://192.168.11.101:8080/v1/AUTH_74511892218d479c93ff1533970a8013
Auth Token: f8bba3e67b464d0ca41e6735aa4358a1
Account: AUTH_74511892218d479c93ff1533970a8013
Containers: 0
Objects: 0
Bytes: 0
Accept-Ranges: bytes
X-Trans-Id: txcde473a4ccdb4773bad93cdd0561dac2
3. OSイメージ作成
3.1 サーバ側作業
cd kvm-img create -f qcow2 server.img 5G
※proxy設定が必要な場合:export http_proxy=http://proxy:9999/
wget http://gb.releases.ubuntu.com//precise/ubuntu-12.04-server-amd64.iso kvm -m 256 -cdrom ubuntu-12.04-server-amd64.iso -drive file=server.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :0
3.2 PC側作業(UltraVNC)
※同じLANに繋がっているUltraVNCがインストールされたPCで以下の作業実施
スタート>すべてのプログラム>UltraVNC>UltraVNC Viewer VNC Server: 192.168.11.101 Connectボタン
※インストール手順省略(適当に済ませる)
※再起動後ログインしsudo shutdown -h nowして停止させる
→サーバ側のkvmコマンドが終了しているはず
3.3 サーバ側作業
※サーバ上で以下のコマンドを実行
kvm -m 256 -drive file=server.img,if=virtio,index=0 -boot c -net nic -net user -nographic -vnc :0
3.4 PC側作業(UltraVNC)
※同じLANに繋がっているUltraVNCがインストールされたPCで以下の作業実施
スタート>すべてのプログラム>UltraVNC>UltraVNC Viewer VNC Server: 192.168.11.101 Connectボタン
※ログイン
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules (管理者パスワード) sudo shutdown -h now
3.5 サーバ側作業
※サーバ上で以下のコマンドを実行
glance add name="Ubuntu Server 12.04LTS" is_public=true container_format=ovf disk_format=qcow2 < server.img ssh-keygen cd .ssh nova keypair-add --pub_key id_rsa.pub mykey nova keypair-list exit exit
4. OpenStack Dashboard上でインスタンス起動
※同じLANに繋がっているブラウザがインストールされたPCで以下の作業実施
ブラウザ起動(何でもよい) http://192.168.11.101 を開く ユーザ名admin、パスワードadminでログイン Projectタブ Images&Snapshotsタブ "Ubuntu Server 12.04LTS"のLaunchボタン Server Name は適当に入力 「イメージを起動します。」ボタン
※起動するまで待つ
Instances&Volumesタブ アクション>VNC Console
※コンソールが表示される
ほぼGuideどおりのインストールを実行すれば良い。
インデックスのところとMySQLのlocalhostでのログインユーザの癖さえわかっておけば
ほぼそのままだ。
..インストールモジュールが細かく分かれているので
インストール構成が分散できるとはおもうが..
逆にインストールを難しくしており、
そのあたりはCloudStackのほうがよく整理できていた。
インストール難易度はCloudStackのほうが上だったが..
Horizon(ダッシュボード)のかっこ良さはCloudStackだが
統計情報がCloudPortalなしで提供してくれそうな感じのUIだったので
まあどっちともいえない。
CloudStackはラック1~2本くらいの場合、
OpenStackはより複雑な場合に使用するのだろうが、
APIは統一させたいのでやはりどっちかを選ぶこととなる。
keystoneが企業の統合認証に耐えられるレベルでかつ
LDAPになっていて企業のWindows認証もおまかせ的であれば
もうすこし使い道が広がるかもしれない。
p.s.
実はCloudStackインストール手順も記事にしているのだけど、
PV数はOpenStackのほうが約2倍すこしたりないくらいで
推移している。
OpenStackのドキュメントは英語しか無いがほぼ一挙手一投足真似て
ひっかかったところを丁寧につぶしていけば問題なくインストールできるのに対して、
CloudStackは日本語マニュアルはあるとはいえいろいろちょこちょこやらないと
インストール出来ない。
それにCloudStackは日本人が好きなJavaだし、
モジュール構成もインストールする側からするとCloudStackのほうがシンプルだし、
管理コンソールのどっちかといえばあっちのほうがかっこいいのだけどなあ..
世の中の関心はCloudStackではなく、
OpenStackに向いているのかなあ..
もうしばらくPVの伸びを観察してみようっと。
0 件のコメント:
コメントを投稿