root@ubuntu-11:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-scheduler ubuntu-11 nova enabled :-) 2012-11-20 03:54:48
nova-consoleauth ubuntu-11 nova enabled :-) 2012-11-20 03:54:47
nova-compute ubuntu-13 nova enabled :-) 2012-11-20 03:54:50
nova-network ubuntu-13 nova enabled :-) 2012-11-20 03:54:43
nova-cert ubuntu-11 nova enabled :-) 2012-11-20 03:54:46
nova-compute ubuntu-12 nova enabled :-) 2012-11-20 03:54:43
nova-network ubuntu-12 nova enabled :-) 2012-11-20 03:54:50
一、安装OpenStack的控制节点
1、开启root权限
sudo passwd root
设置新密码
2、网卡设置
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.10.128.11
netmask 255.255.128.0
network 10.10.128.0
broadcast 10.10.255.255
gateway 10.10.128.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.10.128.254
auto eth2
iface eth2 inet static
address 10.10.64.11
netmask 255.255.255.0
network 10.10.64.0
Create MySQL databases to be used with nova, glance and keystone.
以下脚本粘贴到doMysql.sh,修改权限chmod +x doMsql.sh后执行,按提示输入主机名字。
#!/bin/bash
read -p "Enter HostName(For example: computer-node1):" HOSTNAME
echo "hostname is :$HOSTNAME"
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE nova;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER novadbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'%' = PASSWORD('novasecret');"
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE glance;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER glancedbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'%' = PASSWORD('glancesecret');"
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE keystone;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER keystonedbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'keystonedbadmin'@'%' = PASSWORD('keystonesecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'localhost';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'localhost' = PASSWORD('novasecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'localhost';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'localhost' = PASSWORD('glancesecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'localhost';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'keystonedbadmin'@'localhost' = PASSWORD('keystonesecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'$HOSTNAME';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'$HOSTNAME' = PASSWORD('novasecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'$HOSTNAME';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'$HOSTNAME' = PASSWORD('glancesecret');"
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'$HOSTNAME';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'keystonedbadmin'@'$HOSTNAME' = PASSWORD('keystonesecret');"
使环境变量生效
source /root/.bashrc
Creating Tenants,Creating Users,Creating Roles,Listing Tenants, Users and Roles,Adding Roles to Users in Tenants,Creating Services,Creating Endpoints
把以下内容保存到create_keystone_data.sh,然后执行./ create_keystone_data.sh
#!/bin/bash
#easy to run Keystone
#Creating Tenants
#Creating Users
#Creating Roles
#Listing Tenants, Users and Roles
#Adding Roles to Users in Tenants
#Creating Services
#Creating Endpoints
#
function get_id () {
echo `$@ | awk '/ id / { print $4 }'`
}
# Tenants
echo "-----------------------------Tenants-----------------------------------------"
ADMIN_TENANT=$(get_id keystone tenant-create --name=admin)
SERVICE_TENANT=$(get_id keystone tenant-create --name=service)
echo "ADMIN_TENANT=$ADMIN_TENANT"
echo "SERVICE_TENANT=$SERVICE_TENANT"
echo "-----------------------------Create Tenants Ending-----------------------------"
read -p "Enter your host(For example: xxx@.qq.com):" MAIL
echo "send mail to:$MAIL"
# Users
echo "-----------------------------Users-----------------------------------------"
ADMIN_USER=$(get_id keystone user-create --name=admin --pass=admin --email=$MAIL)
NOVA_USER=$(get_id keystone user-create --name=nova --pass=nova --email=$MAIL)
GLANCE_USER=$(get_id keystone user-create --name=glance --pass=glance --email=$MAIL)
SWIFT_USER=$(get_id keystone user-create --name=swift --pass=swift --email=$MAIL)
echo "ADMIN_USER=$ADMIN_USER"
echo "NOVA_USER=$NOVA_USER"
echo "GLANCE_USER=$GLANCE_USER"
echo "SWIFT_USER=$SWIFT_USER"
echo "-----------------------------Create User Ending-----------------------------"
# Roles
echo "-----------------------------Roles-----------------------------------------"
ADMIN_ROLE=$(get_id keystone role-create --name=admin)
MEMBER_ROLE=$(get_id keystone role-create --name=Member)
echo "ADMIN_ROLE=$ADMIN_ROLE"
echo "MEMBER_ROLE=$MEMBER_ROLE"
echo "-----------------------------Create Roles Ending-----------------------------"
# Add Roles to Users in Tenants
echo "-----------------------------Add Roles to Users in Tenants-----------------------------------------"
echo "keystone user-role-add --user=$ADMIN_USER --role=$ADMIN_ROLE --tenant_id=$ADMIN_TENANT"
keystone user-role-add --user=$ADMIN_USER --role=$ADMIN_ROLE --tenant_id=$ADMIN_TENANT
echo "-----------------------------Add Roles to Users in Tenants Ending-----------------------------"
# TODO(termie): these two might be dubious
echo "-----------------------------TODO(termie): these two might be dubious-----------------------------------------"
echo "keystone user-role-add --user=$NOVA_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT"
echo "keystone user-role-add --user=$GLANCE_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT"
echo "keystone user-role-add --user=$SWIFT_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT"
keystone user-role-add --user=$NOVA_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT
keystone user-role-add --user=$GLANCE_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT
keystone user-role-add --user=$SWIFT_USER --role=$ADMIN_ROLE --tenant_id=$SERVICE_TENANT
echo "-----------------------------these two might be dubious Ending-----------------------------"
# The Member role is used by Horizon and Swift so we need to keep it:
echo "------------------------The Member role is used by Horizon and Swift so we need to keep it---------------------------------"
keystone user-role-add --user=$ADMIN_USER --role=$MEMBER_ROLE --tenant_id=$ADMIN_TENANT
echo "keystone user-role-add --user=$ADMIN_USER --role=$MEMBER_ROLE --tenant_id=$ADMIN_TENANT"
echo "-----------------------------The Member role is used by Horizon and Swift so we need to keep it Ending-----------------------------"
read -p "Enter your host(For example: 10.10.128.11):" HOSTADDR
echo "Your host is:$HOSTADDR"
root@ubuntu-50:~# sudo nova-manage service list
Binary Host Zone Status State Updated_At
nova-scheduler ubuntu-50 nova enabled :-) 2012-10-28 04:46:52
nova-consoleauth ubuntu-50 nova enabled :-) 2012-10-28 04:46:52
9、Install OpenStack Dashboard
sudo apt-get install openstack-dashboard
遇到
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
添加内容到/etc/apache2/httpd.conf
ServerName 127.0.1.1
重启apache
sudo service apache2 restart
打开浏览器,输入http://10.10.128.11,输入admin@admin登录。
二、安装计算节点
1、安装网桥
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth2
iface eth2 inet static
address 10.10.128.12
netmask 255.255.128.0
network 10.10.128.0
broadcast 10.10.255.255
gateway 10.10.128.254
auto eth4
iface eth4 inet manual
auto br12
iface br12 inet static
address 10.10.64.12
netmask 255.255.255.0
#network 10.10.64.0
#broadcast 10.10.64.255
bridge_ports eth4
重启网络:
sudo /etc/init.d/networking restart
3、安装NTP Client
sudo apt-get install ntp
修改/etc/ntp.conf
server 10.10.64.11
重启NTP
sudo service ntp restart
4、设置ipv4转发
sysctl -w net.ipv4.ip_forward=1