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的,如果需要对二次开发其实还是蛮方便的。。。