八、Dashboard(Horizon) 仪表盘套件
8.1先决条件
• 安装OpenStack compute(nova)和identity(keystone) service。
• 安装Python2.6或2.7,并必须支持Django。
• 你的浏览器必须支持HTML5并启用cookies和JavaScript功能。也别推荐了,就是google浏览器
8.2安装和配置 controller节点
8.2.1安装仪表板组件
yum -y install openstack-dashboard httpd mod_wsgi memcached python-memcached
8.2.2配置仪表板
b && c 两项配置时万分小心!!!
vim /etc/openstack-dashboard/local_settings
a.配置dashboard使用controller节点上的OpenStack服务
OPENSTACK_HOST = "controller.nice.com" +134
b.设置允许来自所有网络的主机访问dashboard
ALLOWED_HOSTS = ['*', ] +15#注意这里的写法! # 不然的话会死的很惨!!
c.配置memcached会话存贮服务 +113 #还有这里的格式!!
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
}
}
d.(可选)配置时区
TIME_ZONE = "Asia/Shanghai" +256
##当浏览器访问报500错误时,仔细检查 b && c 两项配置!
8.2.3完成安装
#8.2.3.1、在RHEL或CentOS上,配置SElinux去允许web服务器访问OpenStack服务(如果你没关SElinux):
setsebool -P httpd_can_network_connect on
在此,本部直接跳过,因为之前已经在准备工作中已经把selinux关闭!
8.2.3.2.修改相关文件归属,使dashboard CSS可以被加载。
chown -R apache:apache /usr/share/openstack-dashboard/static
8.2.3.3.启动web服务和会话保存服务,并设置开机自动启动。
systemctl enable httpd.service memcached.service
systemctl start httpd.service memcached.service
修改本地C:\Windows\System32\drivers\etc\hosts文件
172.16.253.214 controller.nice.com
google浏览器输入:controller.nice.com/dashboard
用户名:admin demo
密码: ADMIN_PASS DEMO_PASS
两个用户都可以登陆
如果你已经出现我这个页面,你应该为自己感到骄傲,因为之前所有的努力,在这时终于得到体现。恭喜你,你可以喝点小酒为自己的成就庆祝一下 哈哈
但... ....
革命尚未成功,同志仍需努力!
接下来,我们继续,去安装块存储 cinder服务,流程和之前几个服务一样。
九、块存储Block Storage(cinder)
9.1配置先决条件
#controller节点
9.1.1、创建数据库,并完成下列步骤:
a.以数据库管理员root的身份连接数据库:
mysql -u root -ppqjpqj
b.创建cinder数据库
CREATE DATABASE cinder;
c.创建数据库用户cinder,并授予cinder用户对cinder数据库的完全控制权限:
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
d.exit退出数据库连接
9.2执行admin环境变量脚本
source admin-open9.3在认证服务中创建块存储服务认证信息,完成下列步骤:
a.创建cinder用户
keystone user-create --name cinder --pass CINDER_PASS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 6b303fb56f55477fab0a9ea830ce4be5 |
| name | cinder |
| username | cinder |
+----------+----------------------------------+
b.链接cinder用户到service租户和admin角色
keystone user-role-add --user cinder --tenant service --role admin
c.创建cinder服务
##由于block节点有两块硬盘,所以要创建两个服务和端点!!
keystone service-create --name cinder --type volume --description "OpenStack Block Storage"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | a7ede11678da49849e30c579ffdeeccc |
| name | cinder |
| type | volume |
+-------------+----------------------------------+
keystone service-create --name cinderv2 --type volumev2 --description "OpenStack Block Storage"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | a8fa75dc8b60402b88a89a8c866dda50 |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+
d.创建块存储服务端点
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volume / {print $2}') \
--publicurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \
--internalurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \
--adminurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \
--region regionOne
keystone endpoint-create --service-id $(keystone service-list | awk '/ volume / {print $2}') --publicurl http://controller.nice.com:8776/v1/%\(tenant_id\)s --internalurl http://controller.nice.com:8776/v1/%\(tenant_id\)s --adminurl http://controller.nice.com:8776/v1/%\(tenant_id\)s --region regionOne
+-------------+--------------------------------------------------+
| Property | Value |
+-------------+--------------------------------------------------+
| adminurl | http://controller.nice.com:8776/v1/%(tenant_id)s |
| id | 461c0d790bf14ec1b0bad5a0f120a2d4 |
| internalurl | http://controller.nice.com:8776/v1/%(tenant_id)s |
| publicurl | http://controller.nice.com:8776/v1/%(tenant_id)s |
| region | regionOne |
| service_id | a7ede11678da49849e30c579ffdeeccc |
+-------------+--------------------------------------------------+
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \
--publicurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \
--internalurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \
--adminurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \
--region regionOne
keystone endpoint-create --service-id $(keystone service-list | awk '/ volumev2 / {print $2}') --publicurl http://controller.nice.com:8776/v2/%\(tenant_id\)s --internalurl http://controller.nice.com:8776/v2/%\(tenant_id\)s --adminurl http://controller.nice.com:8776/v2/%\(tenant_id\)s --region regionOne
+-------------+--------------------------------------------------+
| Property | Value |
+-------------+--------------------------------------------------+
| adminurl | http://controller.nice.com:8776/v2/%(tenant_id)s |
| id | e70bcaf029c14392be5f61ced9e6de2f |
| internalurl | http://controller.nice.com:8776/v2/%(tenant_id)s |
| publicurl | http://controller.nice.com:8776/v2/%(tenant_id)s |
| region | regionOne |
| service_id | a8fa75dc8b60402b88a89a8c866dda50 |
+-------------+--------------------------------------------------+
9.4安装并配置块存储控制组件
9.4.1安装软件包
yum -y install openstack-cinder python-cinderclient python-oslo-db
9.4.2vi /etc/cinder/cinder.conf
[database]
connection=mysql://cinder:[email protected]/cinder +2359
[DEFAULT]
rpc_backend=rabbit +180
rabbit_host=controller.nice.com +79
rabbit_password=guest +95
auth_strategy=keystone +616
[keystone_authtoken]
auth_uri=http://controller.nice.com:5000/v2.0 +2547
identity_uri=http://controller.nice.com:35357 +2552
admin_tenant_name=service +2587
admin_user=cinder +2580
admin_password=CINDER_PASS +2583
my_ip=172.16.253.214 +497
verbose=True +774
9.5初始化块存储服务数据库
su -s /bin/sh -c "cinder-manage db sync" cinder
#验证:
mysql -uroot -ppqjpqj
show databases;
use cinder;
show tables;
+--------------------------+
| Tables_in_cinder |
+--------------------------+
| backups |
| cgsnapshots |
| consistencygroups |
| encryption |
| iscsi_targets |
| migrate_version |
| quality_of_service_specs |
| quota_classes |
| quota_usages |
| quotas |
| reservations |
| services |
| snapshot_metadata |
| snapshots |
| transfers |
| volume_admin_metadata |
| volume_glance_metadata |
| volume_metadata |
| volume_type_extra_specs |
| volume_types |
| volumes |
+--------------------------+
21 rows in set (0.00 sec)
exit 退出数据库
9.6完成安装
启动块存储服务并设置开机自动启动:
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
9.7安装并配置block节点
9.7.1配置先决条件
9.7.1.1启动LVM服务并设置开机自启动(根据自身情况)
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service
systemctl restart lvm2-lvmetad.service
9.7.1.2、创建物理卷/dev/sdb:
pvcreate /dev/sdb
9.7.1.3创建卷组cinder-volumes(名字不要改):
vgcreate cinder-volumes /dev/sdb
9.7.1.4vi /etc/lvm/lvm.conf
#使系统只扫描启用LVM的磁盘。防止识别其他非LVM磁盘对块存储服务造成影响。
编辑devices小节,添加过滤器允许/dev/sdb磁盘,拒绝其他设备。
devices {
...
filter = [ "a/sdb/", "r/.*/" ] +87 #正确写法,注意两边空格 系统没加逻辑卷组!
}
#警告:如果你的系统磁盘使用了LVM,则必须添加系统盘到过滤器中:
filter = [ "a/sda", "a/sdb/", "r/.*/"]
同样,如果conpute节点的系统盘也使用了LVM,则也需要修改
/etc/lvm/lvm.conf文件。并添加过滤器。
9.7.2安装并配置块存储卷组件
9.7.2.1安装软件包
yum -y install openstack-cinder targetcli python-oslo-db MySQL-python
9.7.2.2
vi /etc/cinder/cinder.conf
[database]
connection=mysql://cinder:[email protected]/cinder +2359
[DEFAULT]
rpc_backend=rabbit +180
rabbit_host=controller.nice.com +79
rabbit_password=guest +95
auth_strategy=keystone +616
[keystone_authtoken]
auth_uri=http://controller.nice.com:5000/v2.0 +2547
identity_uri=http://controller.nice.com:35357 +2552
admin_tenant_name=service 2587
admin_user=cinder +2580
admin_password=CINDER_PASS +2583
my_ip=172.16.253.217 +497 # 管理网络ip
glance_host=controller.nice.com +500
iscsi_helper=lioadm +1064
verbose=True +774
9.7.3完成安装
启动块存储volume服务和iSCSI服务,并设置开机自动启动。
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
9.7.4验证(在controller节点完成下列操作)
9.7.4.1、执行admin环境变量脚本
source admin-open
9.7.4.2、列出服务组件确认每个进程启动成功
cinder service-list
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller.nice.com | nova | enabled | up | 2018-10-04T19:03:44.000000 | None |
| cinder-volume | block.nice.com | nova | enabled | up | 2018-10-04T19:03:41.000000 | None |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
两个,一个都不能少,如果少的话,检查命令与配置文件!!或恢复快照重新做!!
9.7.4.3、执行demo用户环境变量脚本
source demo-open
9.7.4.4、创建1GB的卷
cinder create --display-name demo-volume1 1
+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| created_at | 2018-10-08T09:37:31.498178 |
| display_description | None |
| display_name | demo-volume1 |
| encrypted | False |
| id | 1454945c-2225-4369-bd19-6ba99ae17974 |
| metadata | {} |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| volume_type | None |
+---------------------+--------------------------------------+
9.7.4.5、确认卷已创建并可用
cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 1454945c-2225-4369-bd19-6ba99ae17974 | available | demo-volume1 | 1 | None | false | |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
#可用性状态必须是available,不能是error!
至此,block节点--cinder服务也亦完毕!
我们小时候上学写作文,有“开头--中间--结尾”三部分,cinder顺利搭建完,就宣告我们的openstack作文中间段写完了,最后就是收拾了。
马上就到终点了,坚持住,不要行百里都半九十。九十九度的水和十度的水没区别,都不是开水,就差你最后一把火了!
go go 加油