vmware 安装openstack,安装mysql,keyston glance,nova
2016-03-22 00:00
666 查看
摘要: 学习openstack环境搭建,学习记录
用vmware 创建三台虚拟机,分别命名:controller, compute, network.
在controller节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 controller #ubuntu是默认的hostname
3.ifconfig 查看controller 节点上的IP地址,记住IP地址
在compute节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 compute #ubuntu是默认的hostname
3.ifconfig 查看compute 节点上的IP地址,记住IP地址
在network节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 network #ubuntu是默认的hostname
3.ifconfig 查看network节点上的IP地址,记住IP地址
三个节点修改hostname后执行reboot
在三个节点上同样操作:
1.sudo nano /etc/hosts
2.添加三个IP地址,刚才记录的:
192.168.40.142 controller
192.168.40.141 compute
192.168.40.143 network
在三个节点是都执行 sudo service networking restart
执行后各自执行ping命令,ping其余两台的hostname,看是否能ping通
配置好三个虚拟机的节点后.
在controller节点上:
1.sudo apt-get update 进行更新
2.sudo apt-get install python-mysqldb mariadb-server mysql-server
安装完mysql后
3.sudo vim /etc/mysql/my.cnf
4.修改
[mysqld]
bind-address = xxx.xxx.xxx.xx # controller 节点的IP
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
5.sudo service mysql restart
6.sudo mysql_install_db
7.sudo mysql_secure_installation #*Enter yes for all
8. sudo apt-get install rabbitmq-server
9.sudo rabbitmqctl change_password guest openstack #openstack 是 rabbitmq server 的密码
10.sudo apt-get install keystone
11.sudo nano /etc/keystone/keystone.conf
[sql]
...
这里的openstack 是 keystone 数据库密码 controller 是当前工作节点的 hostname
12.sudo rm -f /var/lib/keystone/keystone.db
$ mysql -u root -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
这里的openstack是keystone database 密码
$ sudo keystone-manage db_sync
$ sudo nano /etc/keystone/keystone.conf
[DEFAULT]
# A "shared secret" between keystone and other openstack services
admin_token = openstack
...
#openstack > admin token password
$ sudo service keystone restart
$ export OS_SERVICE_TOKEN=openstack
$ export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0
#openstack > admin token
$ keystone tenant-create --name=admin --description="Admin Tenant"
$ keystone tenant-create --name=service --description="Service Tenant"
$ keystone user-create --name=admin --pass=openstack --email=admin@controller
#openstack > admin password
$ keystone role-create --name=admin
$ keystone user-role-add --user=admin --tenant=admin --role=admin
$keystone tenant-create --name demo --description "Demo Tenant"
$ keystone user-create --name demo --tenant demo --pass DEMO_PASS --email demo@example.com
$ keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
$ keystone endpoint-create --service-id=the_service_id_above[a0f5eb172e104a67847bac8f8578fa2a] --publicurl=http://controller:5000/v2.0 --internalurl=http://controller:5000/v2.0 --adminurl=http://controller:35357/v2.0
*enter above displayed service id in place of
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
$ keystone --os-username=admin --os-password=openstack --os-auth-url=http://controller:35357/v2.0 token-get
*openstack > admin password
$ keystone --os-username=admin --os-password=openstack --os-tenant-name=admin --os-auth-url=http://controller:35357/v2.0 token-get
*openstack > admin password
$ touch openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0
$touch demo-openrc.sh
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v2.0
$ source openrc.sh
$ keystone token-get
$ keystone user-list
$ mysql -u root -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
exit
$ source openrc.sh
$ keystone user-create --name glance --pass openstack
$ keystone user-role-add --user glance --tenant service --role admin
$ keystone service-create --name glance --type image --description "OpenStack Image Service"
$ keystone endpoint-create --service-id $(keystone service-list | awk '/ image / {print $2}') --publicurl http://controller:9292 --internalurl http://controller:9292 --adminurl http://controller:9292 --region regionOne
$ apt-get install glance
$ apt-get install python-glanceclient
$ nano /etc/glance/glance-api.conf
[DEFAULT]
...
verbose = True
[database]
...
注消sqlite_db =.....
connection = mysql://glance:openstack@controller/glance
[keystone_authtoken]
...
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
...
flavor = keystone
.....
notifier_strategy = default
notification_driver = noop
$ nano /etc/glance/glance-registry.conf
[DEFAULT]
verbose = True
....
[database]
注消sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql://glance:openstack@controller/glance
[keystone_authtoken]
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
...
flavor = keystone
notification_driver = noop
$glance-manage db_sync
出现错误时:
Tables "migrate_version" have non utf8 collation, please make sure all tables are CHARSET=utf8
执行:
mysql -u root -p
mysql> alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;
mysql> flush privileges;
mysql> quit
$rm -f /var/lib/glance/glance.sqlite
$service glance-registry restart
$service glance-api restart
$mkdir /tmp/images
$cd /tmp/images
$wget http://cdn.download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
$source openrc.sh
$glance image-create --name "cirros" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress
$glance image-list
$mysql -u root -p
$ CREATE DATABASE nova;
$GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';
$GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
$exit
$ source openrc.sh
$keystone user-create --name nova --pass openstack
$keystone user-role-add --user nova --tenant service --role admin
$ keystone service-create --name nova --type compute --description "OpenStack Compute"
$keystone endpoint-create --service-id $(keystone service-list | awk '/ compute / {print $2}') --publicurl http://controller:8774/v2/%(tenant_id)s --internalurl http://controller:8774/v2/%(tenant_id)s --adminurl http://controller:8774/v2/%(tenant_id)s --region regionOne
$ apt-get install nova-api
$ apt-get install nova-cert
$ apt-get install nova-conductor
$ apt-get install nova-consoleauth
$ apt-get install nova-novncproxy
$ apt-get install nova-scheduler
$ apt-get install python-novaclient
$sudo nano /etc/nova/nova.conf
[DEFAULT]
.....
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = openstack
auth_strategy = keystone
my_ip = 192.168.40.142
vncserver_listen = 192.168.40.142
vncserver_proxyclient_address = 192.168.40.142
[database]
connection = mysql://nova:openstack@controller/nova
[keystone_authtoken]
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[glance]
host = controller
$sudo nova-manage db sync
$sudo rm -f /var/lib/nova/nova.sqlite
$ service nova-api restart
$service nova-cert restart
$service nova-consoleauth restart
$service nova-scheduler restart
$service nova-conductor restart
$service nova-novncproxy restart
在Compute 节点上:
$apt-get install nova-compute sysfsutils
$ nano /etc/nova/nova.conf
[DEFAULT]
.....
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = openstack
auth_strategy = keystone
my_ip = 192.168.40.141
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 192.168.40.141
novncproxy_base_url = http://controller:6080/vnc_auto.html
[keystone_authtoken]
...
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[glance]
...
host = controller
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果你执行此命令0值,你的compute节点不支持hard-ware acceleration,
你必须修改libvirt配置,将KVM换成QEMU
$nano /etc/nova/nova-compute.conf
[libvirt]
...
virt_type = qemu
$service nova-compute restart
$rm -f /var/lib/nova/nova.sqlite
在Controller节点上:
$source openrc.sh
$nova service-list
$nova image-list
用vmware 创建三台虚拟机,分别命名:controller, compute, network.
在controller节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 controller #ubuntu是默认的hostname
3.ifconfig 查看controller 节点上的IP地址,记住IP地址
在compute节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 compute #ubuntu是默认的hostname
3.ifconfig 查看compute 节点上的IP地址,记住IP地址
在network节点上:
1.sudo nano /etc/hostname
2.将 ubuntu 修改为 network #ubuntu是默认的hostname
3.ifconfig 查看network节点上的IP地址,记住IP地址
三个节点修改hostname后执行reboot
在三个节点上同样操作:
1.sudo nano /etc/hosts
2.添加三个IP地址,刚才记录的:
192.168.40.142 controller
192.168.40.141 compute
192.168.40.143 network
在三个节点是都执行 sudo service networking restart
执行后各自执行ping命令,ping其余两台的hostname,看是否能ping通
配置好三个虚拟机的节点后.
在controller节点上:
1.sudo apt-get update 进行更新
2.sudo apt-get install python-mysqldb mariadb-server mysql-server
安装完mysql后
3.sudo vim /etc/mysql/my.cnf
4.修改
[mysqld]
bind-address = xxx.xxx.xxx.xx # controller 节点的IP
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
5.sudo service mysql restart
6.sudo mysql_install_db
7.sudo mysql_secure_installation #*Enter yes for all
8. sudo apt-get install rabbitmq-server
9.sudo rabbitmqctl change_password guest openstack #openstack 是 rabbitmq server 的密码
10.sudo apt-get install keystone
11.sudo nano /etc/keystone/keystone.conf
[sql]
The SQLAlchemy connection string used to connect to the database
connection = mysql://keystone:openstack@controller/keystone...
这里的openstack 是 keystone 数据库密码 controller 是当前工作节点的 hostname
12.sudo rm -f /var/lib/keystone/keystone.db
$ mysql -u root -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
这里的openstack是keystone database 密码
$ sudo keystone-manage db_sync
$ sudo nano /etc/keystone/keystone.conf
[DEFAULT]
# A "shared secret" between keystone and other openstack services
admin_token = openstack
...
#openstack > admin token password
$ sudo service keystone restart
$ export OS_SERVICE_TOKEN=openstack
$ export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0
#openstack > admin token
$ keystone tenant-create --name=admin --description="Admin Tenant"
$ keystone tenant-create --name=service --description="Service Tenant"
$ keystone user-create --name=admin --pass=openstack --email=admin@controller
#openstack > admin password
$ keystone role-create --name=admin
$ keystone user-role-add --user=admin --tenant=admin --role=admin
$keystone tenant-create --name demo --description "Demo Tenant"
$ keystone user-create --name demo --tenant demo --pass DEMO_PASS --email demo@example.com
$ keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
$ keystone endpoint-create --service-id=the_service_id_above[a0f5eb172e104a67847bac8f8578fa2a] --publicurl=http://controller:5000/v2.0 --internalurl=http://controller:5000/v2.0 --adminurl=http://controller:35357/v2.0
*enter above displayed service id in place of
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
$ keystone --os-username=admin --os-password=openstack --os-auth-url=http://controller:35357/v2.0 token-get
*openstack > admin password
$ keystone --os-username=admin --os-password=openstack --os-tenant-name=admin --os-auth-url=http://controller:35357/v2.0 token-get
*openstack > admin password
$ touch openrc.sh
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0
$touch demo-openrc.sh
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v2.0
$ source openrc.sh
$ keystone token-get
$ keystone user-list
$ mysql -u root -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
exit
$ source openrc.sh
$ keystone user-create --name glance --pass openstack
$ keystone user-role-add --user glance --tenant service --role admin
$ keystone service-create --name glance --type image --description "OpenStack Image Service"
$ keystone endpoint-create --service-id $(keystone service-list | awk '/ image / {print $2}') --publicurl http://controller:9292 --internalurl http://controller:9292 --adminurl http://controller:9292 --region regionOne
$ apt-get install glance
$ apt-get install python-glanceclient
$ nano /etc/glance/glance-api.conf
[DEFAULT]
...
verbose = True
[database]
...
注消sqlite_db =.....
connection = mysql://glance:openstack@controller/glance
[keystone_authtoken]
...
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
...
flavor = keystone
.....
notifier_strategy = default
notification_driver = noop
$ nano /etc/glance/glance-registry.conf
[DEFAULT]
verbose = True
....
[database]
注消sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql://glance:openstack@controller/glance
[keystone_authtoken]
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
...
flavor = keystone
notification_driver = noop
$glance-manage db_sync
出现错误时:
Tables "migrate_version" have non utf8 collation, please make sure all tables are CHARSET=utf8
执行:
mysql -u root -p
mysql> alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;
mysql> flush privileges;
mysql> quit
$rm -f /var/lib/glance/glance.sqlite
$service glance-registry restart
$service glance-api restart
$mkdir /tmp/images
$cd /tmp/images
$wget http://cdn.download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
$source openrc.sh
$glance image-create --name "cirros" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress
$glance image-list
$mysql -u root -p
$ CREATE DATABASE nova;
$GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';
$GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
$exit
$ source openrc.sh
$keystone user-create --name nova --pass openstack
$keystone user-role-add --user nova --tenant service --role admin
$ keystone service-create --name nova --type compute --description "OpenStack Compute"
$keystone endpoint-create --service-id $(keystone service-list | awk '/ compute / {print $2}') --publicurl http://controller:8774/v2/%(tenant_id)s --internalurl http://controller:8774/v2/%(tenant_id)s --adminurl http://controller:8774/v2/%(tenant_id)s --region regionOne
$ apt-get install nova-api
$ apt-get install nova-cert
$ apt-get install nova-conductor
$ apt-get install nova-consoleauth
$ apt-get install nova-novncproxy
$ apt-get install nova-scheduler
$ apt-get install python-novaclient
$sudo nano /etc/nova/nova.conf
[DEFAULT]
.....
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = openstack
auth_strategy = keystone
my_ip = 192.168.40.142
vncserver_listen = 192.168.40.142
vncserver_proxyclient_address = 192.168.40.142
[database]
connection = mysql://nova:openstack@controller/nova
[keystone_authtoken]
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[glance]
host = controller
$sudo nova-manage db sync
$sudo rm -f /var/lib/nova/nova.sqlite
$ service nova-api restart
$service nova-cert restart
$service nova-consoleauth restart
$service nova-scheduler restart
$service nova-conductor restart
$service nova-novncproxy restart
在Compute 节点上:
$apt-get install nova-compute sysfsutils
$ nano /etc/nova/nova.conf
[DEFAULT]
.....
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = openstack
auth_strategy = keystone
my_ip = 192.168.40.141
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 192.168.40.141
novncproxy_base_url = http://controller:6080/vnc_auto.html
[keystone_authtoken]
...
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[glance]
...
host = controller
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果你执行此命令0值,你的compute节点不支持hard-ware acceleration,
你必须修改libvirt配置,将KVM换成QEMU
$nano /etc/nova/nova-compute.conf
[libvirt]
...
virt_type = qemu
$service nova-compute restart
$rm -f /var/lib/nova/nova.sqlite
在Controller节点上:
$source openrc.sh
$nova service-list
$nova image-list
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- 用Nova实现Hadoop海量数据工作流管理
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜