dashboard:
安装dashboard包:
yum install openstack-dashboard
编辑文件/etc/openstack-dashboard/local_settings:默认使用的是Django框架
OPENSTACK_HOST = "con.colinshi.top" #在 controller 节点上配置dashboard以使用 OpenStack 服务:
ALLOWED_HOSTS = ['*', ]#允许所有主机访问,生产环境可能不安全,可以配置为指定域名
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' #session 会话存储服务,使用的memcached服务,并且需要删除其他CACHES值
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'con.colinshi.top:11211',
}
}
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST #启用第3版认证API并配置API版本
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True #启用对域的支持
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default" #通过dashboard创建用户时的默认域配置为 default
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #通过dashboard创建的用户默认角色配置为user
#如果选择了公有网络需要配置禁用3层网络:
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': False,
'enable_quotas': False,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,
}
TIME_ZONE = "Asia/Shanghai"#配置时区
重启httpd服务:
systemctl restart httpd
验证:
可以通过192.168.1.51/dashboard访问登入页面
域:Default
用户名:admin
密码:admin
#用户名密码都是KEYSTONE认证的账号密码
创建default的防火墙规则(默认是只出不进):
开通ping:
openstack security group rule create --proto icmp default
开通TCP端口:
openstack security group rule create --proto tcp --dst-port 22 default
开通TDP所有端口:
openstack security group rule create --proto udp default
注:More than one SecurityGroup exists with the name 'default'.需要使用openstack security group list查询具体的default的ID,使用ID值替换
创建虚拟交换机(网络)及虚拟路由设备:
创建虚拟交换机(外网):
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
注:--share允许所有项目使用这个网络,--external将虚拟网络定义为外网。--provider-physical-network provider和--provider-network-type flat使用将虚拟网络连接到主机物理网卡接口上
具体名称需要对应ml2_conf.ini中的
[ml2_type_flat]
flat_networks = provider
linuxbridge_agent.ini文件中:
[linux_bridge]
physical_interface_mappings = provider:ens37
创建虚拟交换机的子网(外网):
openstack subnet create --network provider --allocation-pool start=START_IP_ADDRESS,end=END_IP_ADDRESS --dns-nameserver DNS_RESOLVER --gateway PROVIDER_NETWORK_GATEWAY --subnet-range PROVIDER_NETWORK_CIDR provider
provider:对应的是上面创建的交换机的名字
START_IP_ADDRESS:子网起始可分配地址
END_IP_ADDRESS:子网结束可分配地址
DNS_RESOLVER:DNS服务器地址
PROVIDER_NETWORK_GATEWAY:网关地址
PROVIDER_NETWORK_CIDR:子网网段
示例:
openstack subnet create --network provider --allocation-pool start=192.168.1.80,end=192.168.1.90 --dns-nameserver 192.168.1.1 --gateway 192.168.1.1 --subnet-range 192.168.1.0/24 provider
注:如果使用公共网络模型这样已经可以直接使用。新建实例可以直接分配公网地址并访问。如果使用了私有网络需要继续设置内网虚机交换机
创建虚拟交换机(内网):
openstack network create selfservice
创建虚拟交换机的子网(内网):
openstack subnet create --network selfservice --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY --subnet-range SELFSERVICE_NETWORK_CIDR selfservice
注:同上
连接内网和外网:
创建路由器:
openstack router create router
将内网子网添加为路由器上的接口:
openstack router add subnet router selfservice
路由器上的设置网关(外网接口):
openstack router set router --external-gateway provider
验证:
列出网络命名空间,看到一个qrouter名称空间和两个qdhcp名称空间:
ip netns
qrouter-1944e8d7-dfaf-4051-b49f-89ef510525c7 (id: 2)
qdhcp-4debd51f-1667-4315-a842-a1322a2d4aaf (id: 1)
qdhcp-4c7067cc-c912-4af0-935a-40ad7d599de2 (id: 0)
列出路由器上的端口:
openstack port list --router router
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
| 2627ba51-812e-44e1-8221-6da47f8d92ef | | fa:16:3e:80:da:1d | ip_address='172.16.1.1', subnet_id='ee7ec4ab-b0ec-4bbc-8dec-bdd71af2b759' | ACTIVE |
| 88e5ceed-e4fd-4596-835c-dc1f5d31408c | | fa:16:3e:a8:9c:3d | ip_address='192.168.1.87', subnet_id='2e04cd14-b1f7-4374-b18f-32f109be2729' | ACTIVE |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
控制节点ping此路由器IP地址:
ping 192.168.1.87
PING 192.168.1.87 (192.168.1.87) 56(84) bytes of data.
64 bytes from 192.168.1.87: icmp_seq=1 ttl=64 time=0.395 ms
至此为止openstack的基础组件均已安装并可以使用。其实dashboard并不是必选组件,但是没有它的话。难道每次操作都用命令行。。。
dashboark本身是用django开发的,所以配置文件基本上也是djiango的,如果需要对二次开发其实还是蛮方便的。。。