openstack配置
?
一、硬件及操作系統要求
硬件:IBM服務器R410 兩臺、網線、顯示器、鍵盤若干,100M光纖(硬性要求)
操作系統:兩臺服務器均安裝Ubuntu server 12.04 LTS
二、安裝步驟(server-1與server-2公共部分)
1.?安裝操作系統:
第一臺主機名server-1;用戶名openstack;密碼admin
第二胎主機名server-2;用戶名openstack;密碼admin
注意事項:
使用光盤安裝操作系統,如采用u盤安裝的方式,會出現“找不到光驅”的錯誤
應盡量選擇使用光盤安裝的方式;
兩臺服務器安裝的語言,最好選擇英文版本,否則在查看系統版本的時候可能會有差別導致下載組件時候出現錯誤,中文版本總是更新不到最新的組件;
兩臺服務器應選擇相同的時區。
2.?配置網絡:
server-1,server-2命令行輸入如下命令
sudo vi /etc/network/interfaces
按i進入編輯模式
輸入以下內容(server-1):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
?address 218.206.179.205
?netmask 255.255.255.0
?broadcast 218.206.179.255
?gateway 218.206.179.1
?dns-nameservers 218.206.176.4
auto eth1
iface eth1 inet static
?address 10.204.252.168
?netmask 255.255.255.0
?network
?????broadcast
????? gateway 10.204.252.1
輸入以下內容(server-2):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
?address 218.206.179.236
?netmask 255.255.255.0
?broadcast 218.206.179.255
?gateway 218.206.179.1
?dns-nameservers 218.206.176.4
auto eth1
iface eth1 inet static
?address 10.204.252.138
?netmask 255.255.255.0
?network
?????broadcast
????? gateway 10.204.252.1
完成以上兩臺服務器網絡配置之后,按esc,輸入: “:x”
重啟網絡,命令行輸入如下命令:
sudo /etc/init.d/networking restart(restart前面有空格)
重啟網絡后,ping一下外網(如qq)測試網絡是否連通
3.?更新
在server-1與server-2的命令行中輸入如下命令:
sudo apt-get update(軟件列表及依賴更新)
sudo apt-get upgrade(當前列表下軟件版本更新)
4.?安裝NTP時間同步服務器
在server-1與server-2的命令行中輸入如下命令:
sudo apt-get install ntp
用vi打開server-1文件/etc/ntp.conf增加以下三行內容,目的是讓本服務器時間與外部服務器時間同步
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
用vi打開server-2文件/etc/ntp.conf 增加一行內容,目的是與server-1同步
server 218.206.179.205(可能有bug)
完成后重啟NTP服務,server-1,server-2命令行輸入
sudo server ntp restart
5.?安裝bridge
server-1,server-2命令行輸入
sudo apt-get -y install bridge-utils
然后重啟網絡
/etc/init.d/networking restart(restart前有空格)
三、server-1安裝
1.安裝RabbitMQ和Memcache 等
RabbitMQ是用來做調度使用。Memcache是給Dashboard使用。
命令行輸入
sudo apt-get install -y rabbitmq-server memcached python-memcache kvm libvirt-bin
???????? 2.安裝MySQL數據庫,為了方便起見,使用的MySQL數據庫
?????????????????? 命令行輸入
sudo apt-get install mysql-server python-mysqldb
編輯/etc/mysql/my.cnf, 允許網絡訪問mysql
#bind-address = 127.0.0.1
bind-address = 0.0.0.0(可能有bug)
然后重啟mysql服務
restart mysql
?
mysql 根用戶名root 密碼 admin
??????????????????
???????? 為mysql創建root密碼,在此使用“admin”。隨后編輯mysql配置文件
???????? /etc/mysql/my.cnf,將綁定地址從127.0.0.1改為0.0.0.0,如下所示:
bind-address = 0.0.0.0????
重啟MySQL服務器讓其開始監聽所有端口:
sudo restart mysql
??????????????????
?????????????????? 然后按順序依次輸入以下命令:
?????????????????? mysql -uroot -p123456
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456';
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'IDENTIFIED BY '123456';
quit
注意:以上分號不要省略
doc版本有個user的創建,步驟未執行
?
???????? 3. 安裝keystone
?????????????????? 命令行輸入:
sudo apt-get install keystone python-keystone python-keystoneclient
用vi編輯器編輯/etc/keystone/keystone.conf文件如下:
[DEFAULT]
#bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token = admin
[sql]
#connection = sqlite:var/lib/keystone/keystone.db
connection = mysql://keystone:123456@218.206.179.205/keystone (這兒改成server-1的ip)
然后重啟服務、同步數據庫,命令行輸入:
sudo service keystone restart
sudo keystone-manage db_sync
?
導入數據和endpoint
為了方便,你可以直接使用下面2個腳本來進行全部的設置
1.keystone_data.sh 導入用戶信息-創建租戶用戶和角色
Keystone Data
wget http://www.chenshake.com/wp-content/uploads/2012/07/keystone_data.sh_.txt
mv keystone_data.sh_.txt keystone_data.sh
chmod +x keystone_data.sh
然后編輯keystone_data.sh
第一行是登陸dashboard的密碼。
第三行是上面設置的Keystone的Token
注意 :sh文件對應的位置改成如下加黑的部分。
ADMIN_PASSWORD=${ADMIN_PASSWORD:-123456}
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
export SERVICE_TOKEN="admin"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
ENABLED_SERVICES="swift"
?
然后運行腳本
./keystone_data.sh
沒任何輸出,就表示正確,可以通過下面命令檢查
echo $?
顯示0,就表示腳本正確運行,千萬不要重復運行腳本
?
?
2.endpoints.sh 設置endpoint--提供服務的入口點
命令行輸入如下
wget http://www.chenshake.com/wp-content/uploads/2012/07/endpoints.sh_.txt
mv endpoints.sh_.txt endpoints.sh
chmod +x endpoints.sh
再輸入:
./endpoints.sh -m 218.206.179.205 -u keystone -D keystone -p 123456 -T admin -K 218.206.179.205 -R RegionOne -E "http://localhost:35357/v2.0" -S 218.206.179.205
以上縮寫分別代表如下信息
-m mysql_hostname
-u mysql_username
-D mysql_database
-p mysql_password
-K keystone 服務器IP
-R keystone_region
-E keystone_endpoint_url
-S swift proxy節點IP
-T keystone_token
?
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://localhost:5000/v2.0/
然后檢查環境變量,在命令行輸入:
export | grep OS_
會顯示:
declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
declare -x OS_PASSWORD="123456"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
?
報錯:修改keystone_data.sh的時候,不影響使用
查看各種列表:
keystone endpoint-list
keystone tenant-list
keystone user-list
keystone role-list
4.安裝glance
?????????????????? 命令行輸入:
sudo apt-get install glance glance-api glance-client glance-common glance-registry python-glance
編輯 /etc/glance/glance-api-paste.ini,/etc/glance/glance-registry-paste.ini,兩個文件,都是修改文檔最后3行,改成如下的內容
#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
admin_tenant_name = service
admin_user = glance
admin_password = 123456
#dashboard password
編輯/etc/glance/glance-registry.conf,改成使用mysql驗證
#sql_connection = sqlite:var/lib/glance/glance.sqlite
sql_connection = mysql://glance:123456@122.204.144.201/glance
編輯/etc/glance/glance-registry.conf 和 /etc/glance/glance-api.conf ,都在文件末尾添加兩行,目的是讓glance使用keystone授權
[paste_deploy]
flavor = keystone
然后同步數據庫
sudo glance-manage version_control 0
sudo glance-manage db_sync
注意:如果有輸出的話多打幾遍命令
上述改動全部完成后,重啟glance-api和glance-registry服務:
sudo restart glance-api
sudo restart glance-registry
設置如下環境變量,將其寫入 ~/.bashrc中:
export SERVICE_TOKEN=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export SERVICE_ENDPOINT=http://localhost:35357/v2.0
然后測試一下,命令行輸入如下命令,沒有輸出,表示正常,因為目前還沒有鏡像。
glance index
5.?????? 安裝nova
命令行輸入:下面的命令需要一起復制,是一條命令
apt-get 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
??????????????? 編輯/etc/nova/nova.conf 文件,改成如下內容,ip根據自己的主機修改成如下格式
--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=218.206.179.205
--ec2_host=218.206.179.205
--rabbit_host=218.206.179.205
--cc_host=218.206.179.205
--nova_url=http://218.206.179.205:8774/v1.1/
--routing_source_ip=218.206.179.205
--glance_api_servers=218.206.179.205:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=10.204.252
--sql_connection=mysql://nova:123456@218.206.179.205/nova
--ec2_url=http://218.206.179.205:8773/services/Cloud
--keystone_ec2_url=http://218.206.179.205: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://218.206.179.205:6080/vnc_auto.html
--vncserver_proxyclient_address=218.206.179.205
--vncserver_listen=218.206.179.205
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=10.204.252.158/25
--floating_range=218.206.179.205/25
--network_size=32
--flat_network_dhcp_start=10.204.252.198
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
?????? 創建一個物理卷
sudo pvcreate /dev/sda3(此卷是本次安裝中出現的,具體情況按安裝的時候來)
然后輸入:
sudo vgcreate nova-volumes /dev/sda3
修改 /etc/nova文件夾的屬主及 /etc/nova/nova.conf文件的訪問權限:
sudo chown -R nova:nova /etc/nova
sudo chmod 644 /etc/nova/nova.conf
進入 /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
在MySQL數據庫進行同步:
sudo nova-manage db sync
為實例提供IP池:
sudo nova-manage network create private --fixed_range_v4=10.204.252.158/25--num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=128
輸出環境變量:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
???????? 重啟服務,命令行一次輸入以下命令
???????? sudo restart libvirt-bin
sudo restart nova-network
sudo restart nova-compute
sudo restart nova-api
sudo restart nova-objectstore
sudo restart nova-scheduler
sudo restart nova-volume
sudo restart nova-consoleauth
測試nova是否正確安裝,若所有組件都是微笑,說明nova已經正確安裝完畢。
sudo nova-manage service list
?
6.?????? OpenStack管理面板
執行下列命令安裝管理面板:
sudo apt-get install openstack-dashboard
重啟Apache:
sudo service apache2 restart
?
?
live cd啟動系統,進入圖形化安裝界面,選擇試用ubuntu,進入桌面打開ubuntu自帶分區軟件,將原來的大分區分割成兩個小的分區,下一步要將分出來的新分區格式化為LVM(8e)格式的分區,打開終端,輸入 :sudo fdisk -l,根據剛才分給的大小判斷新分區的磁盤號,再輸入sudo fdisk /dev/sd*(星號具體根據前一條命令中來定),然后在fdisk命令下輸入t,選擇剛創建好的分區,輸入8e,將剛創建好的2個分區轉換為8e格式。輸入w保存退出,之后運行一下partprobe 命令激活剛創建的分區
?
sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart nova-consoleauth; 如果不行 restart換成start
?
apache2 restart失敗
編輯 /etc/apache2/apache2.conf
最后一行輸入 ServerName 127.0.7.1(不一定有用)
?