• Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)


           在配置openstack项目时很多人认为到处是坑,特别是新手,一旦进坑没有人指导,身体将会感觉一次次被掏空,作为菜鸟的我也感同身受,因为已经被掏空n次了。

           以下也是我将整个openstack配置过程进行汇总,并对难点进行分析,希望对您们有所帮助,如果在配置过程中有疑问,也可以进行留言。

           尝试自己配置前可阅读《菜鸟帮你跳过openstack配置过程中的坑http://www.cnblogs.com/yaohong/p/7352386.html》。

           同时如果不想一步步安装,可以执行安装脚本:http://www.cnblogs.com/yaohong/p/7251852.html

    一:环境

    1.1主机网络

    • 系统版本 CentOS7

    • 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储

    • 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储

       说明:

      1:以CentOS7为镜像,安装两台机器(怎样安装详见http://www.cnblogs.com/yaohong/p/7240387.html)并注意配置双网卡和控制两台机器的内存。

      2:修改机器主机名分别为:controller和compute1

                 #hostnamectl set-hostname hostname 

      3:编辑controller和compute1的 /etc/hosts 文件

                 #vi /etc/hosts

               

      4:验证

                采取互ping以及ping百度的方式

               

    1.2网络时间协议(NTP)

      [控制节点安装NTP]   

        NTP主要为同步时间所用,时间不同步,可能造成你不能创建云主机

        #yum install chrony(安装软件包)

        #vi /etc/chrony.conf增加

          server NTP_SERVER iburst

          allow 你的ip地址网段                 (可以去掉,指代允许你的ip地址网段可以访问NTP)

        #systemctl enable chronyd.service    (设置为系统自启动)

        #systemctl start chronyd.service       (启动NTP服务)

              [计算节点安装NTP]

         # yum install chrony

         #vi /etc/chrony.conf`` 释除``server`` 值外的所有内容。修改它引用控制节点:server controller iburst

         # systemctl enable chronyd.service     (加入系统自启动)

         # systemctl start chronyd.service        (启动ntp服务)

               [验证NTP]

        控制节点和计算节点分别执行#chronyc sources,出现如下

                 

                 

    1.3Openstack包

            [openstack packages安装在控制和计算节点]
        安装openstack最新的源:
        #yum install centos-release-openstack-mitaka
        #yum install https://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-6.noarch.rpm
        #yum upgrade                                               (在主机上升级包)
        #yum install python-openstackclient            (安装opentack必须的插件)
        #yum install openstack-selinux                    (可选则安装这个插件,我直接关闭了selinux,因为不熟,对后续不会有影响)

    1.4SQL数据库

        安装在控制节点,指南中的步骤依据不同的发行版使用MariaDB或 MySQL。OpenStack 服务也支持其他 SQL 数据库。
        #yum install mariadb mariadb-server MySQL-python
        #vi /etc/mysql/conf.d/mariadb_openstack.cnf
        加入:
            [mysqld]
          bind-address = 192.168.1.73                         (安装mysql的机器的IP地址,这里为controller地址)
          default-storage-engine = innodb
          innodb_file_per_table
          collation-server = utf8_general_ci
          character-set-server = utf8
        
        #systemctl enable mariadb.service     (将数据库服务设置为自启动)
        #systemctl start mariadb.service          (将数据库服务设置为开启)
        设置mysql属性:
        #mysql_secure_installation  (此处参照http://www.cnblogs.com/yaohong/p/7352386.html,中坑一)

    1.5消息队列

        消息队列在openstack整个架构中扮演着至关重要(交通枢纽)的作用,正是因为openstack部署的灵活性、模块的松耦合、架构的扁平化,反而使openstack更加依赖于消息队列(不一定使用RabbitMQ,

        可以是其他的消息队列产品),所以消息队列收发消息的性能和消息队列的HA能力直接影响openstack的性能。如果rabbitmq没有运行起来,你的整openstack平台将无法使用。rabbitmq使用5672端口。
        #yum install rabbitmq-server
        #systemctl enable rabbitmq-server.service(加入自启动)
        #systemctl start rabbitmq-server.service(启动)
        #rabbitmqctl add_user openstack RABBIT_PASS                       (增加用户openstack,密码自己设置替换掉RABBIT_PASS)
        #rabbitmqctl set_permissions openstack ".*" ".*" ".*"                   (给新增的用户授权,没有授权的用户将不能接受和传递消息)

    1.6Memcached

        memcache为选择安装项目。使用端口11211
        #yum install memcached python-memcached
        #systemctl enable memcached.service
        #systemctl start memcached.service

    二:认证服务

        [keystone认证服务]
        注意:在之前需要设置好hosts解析,控制节点和计算节点都要做。我的为:
        192.168.1.73 controller
        192.168.1.74compute1

      2.1安装和配置     

        登录数据库创建keystone数据库。
        #mysql -u root -p
        #CREATE DATABASE keystone;
        设置授权用户和密码:
        #GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'
          IDENTIFIED BY '密码';
        #GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'
             IDENTIFIED BY '密码';
           生成admin_token的随机值:
          # openssl rand -hex 10
          安全并配置组件
           #yum install openstack-keystone httpd mod_wsgi
              #vi /etc/keystone/keystone.conf
           使用刚刚生成的随机值替换掉[DEFAULT]中的
           #admin_token = 随机值                           (主要为安全,也可以不用替换)
           配置数据库连接

                   [database]

                    connection = mysql+pymysql://keystone:密码@controller/keystone
                    provider = fernet
                 初始化身份认证服务的数据库

            # su -s /bin/sh -c "keystone-manage db_sync" keystone(一点要查看数据库是否生成表成功)
        初始化keys:
        #keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
        配置apache:
        #vi  /etc/httpd/conf/httpd.conf
          将ServerName 后面改成主机名,防止启动报错
          ServerName controller
        生成wsgi配置文件:
        #vi /etc/httpd/conf.d/wsgi-keystone.conf加入:

    Listen 5000
    Listen 35357
    
    <VirtualHost *:5000>
        WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-public
        WSGIScriptAlias / /usr/bin/keystone-wsgi-public
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        ErrorLogFormat "%{cu}t %M"
        ErrorLog /var/log/httpd/keystone-error.log
        CustomLog /var/log/httpd/keystone-access.log combined
    
        <Directory /usr/bin>
            Require all granted
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:35357>
        WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-admin
        WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        ErrorLogFormat "%{cu}t %M"
        ErrorLog /var/log/httpd/keystone-error.log
        CustomLog /var/log/httpd/keystone-access.log combined
    
        <Directory /usr/bin>
            Require all granted
        </Directory>
    </VirtualHost>

        启动httpd:
        #systemctl enable httpd.service
        #systemctl start httpd.service

      2.2创建服务实体和API端点

                  #export OS_TOKEN=上面生成的随机值
        #export OS_URL=http://controller:35357/v3
        #export OS_IDENTITY_API_VERSION=3
        创建keystone的service:
        #openstack service create --name keystone --description "OpenStack Identity" identity (identity这个认证类型一定不可以错)
        创建keystone的endpoint:
          #openstack endpoint create --region RegionOne
          identity public http://controller:5000/v3
        #openstack endpoint create --region RegionOne
          identity internel  http://controller:5000/v3
        #openstack endpoint create --region RegionOne
          identity admin  http://controller:35357/v3

      2.3创建域、项目、用户和角色

        创建默认域default:
        openstack domain create --description "Default Domain" default
        创建admin的租户:
        #openstack project create --domain default
          --description "Admin Project" admin

        创建admin用户:
        #openstack user create --domain default
         --password-prompt admin(会提示输入密码为登录dashboard的密码)
        创建admin角色:
        #openstack role create admin
        将用户租户角色连接起来:
        #openstack role add --project admin --user admin admin
        创建服务目录:
        #openstack project create --domain default
          --description "Service Project" service
        创建demo信息类似admin:
        #openstack project create --domain default
          --description "Demo Project" demo
        #openstack user create --domain default
          --password-prompt demo
        #openstack role create user
        #openstack role add --project demo --user demo user

      2.4验证

        作为 admin 用户,请求认证令牌:
        #openstack --os-auth-url http://controller:35357/v3
          --os-project-domain-name default --os-user-domain-name default
          --os-project-name admin --os-username admin token issue
        输入密码之后,有正确的输出即为配置正确。

                 

                 作为``demo`` 用户,请求认证令牌:

        #openstack --os-auth-url http://controller:5000/v3

                   --os-project-domain-name default --os-user-domain-name default

        --os-project-name demo --os-username demo token issue

                

    2.5创建 OpenStack 客户端环境脚本

                
        可将环境变量设置为脚本:
        #vi admin-openrc 加入:

        export OS_PROJECT_DOMAIN_NAME=default
        export OS_USER_DOMAIN_NAME=default
        export OS_PROJECT_NAME=admin
        export OS_USERNAME=admin
        export OS_PASSWORD=123456
        export OS_AUTH_URL=http://controller:35357/v3
        export OS_IDENTITY_API_VERSION=3
        export OS_IMAGE_API_VERSION=2

                  #vi demo-openrc 加入:
        export OS_PROJECT_DOMAIN_NAME=default
        export OS_USER_DOMAIN_NAME=default
        export OS_PROJECT_NAME=demo
        export OS_USERNAME=demo
        export OS_PASSWORD=123456
        export OS_AUTH_URL=http://controller:35357/v3
        export OS_IDENTITY_API_VERSION=3
        export OS_IMAGE_API_VERSION=2
               
        运行使用 #. admin-openrc或者使用#source admin-openrc
        验证输入命令:
        openstack token issue
        有正确的输出即为配置正确。

    三:镜像服务

    3.1安装配置

        建立glance数据
        登录mysql
        #mysql -u root -p
        #CREATE DATABASE glance;
        授权
        #GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'
          IDENTIFIED BY '密码';
        #GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'
          IDENTIFIED BY '密码';
        运行环境变量:
        #. admin-openrc
        创建glance用户信息:
        openstack user create --domain default --password-prompt glance
        openstack role add --project service --user glance admin
        创建镜像服务目录:
        #openstack service create --name glance
          --description "OpenStack Image" image
        创建镜像endpoint:
        #penstack endpoint create --region RegionOne
          image public http://controller:9292
        #penstack endpoint create --region RegionOne
          image internal http://controller:9292
        #penstack endpoint create --region RegionOne
          image admin http://controller:9292
        安装:
        #yum install openstack-glance
        #vi  /etc/glance/glance-api.conf
        配置数据库连接:
          connection = mysql+pymysql://glance:密码@controller/glance
        找到[keystone_authtoken](配置认证)
        加入:
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = controller:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = glance
          password = xxxx
        找到[paste_deploy]
          flavor = keystone
        找到[glance_store]
          stores = file,http
          default_store = file
          filesystem_store_datadir = /var/lib/glance/images/
        #vi /etc/glance/glance-registry.conf
        找到[database]
          connection = mysql+pymysql://glance:密码@controller/glance
        找到[keystone_authtoken](配置认证)
        加入:
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = control:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = glance
          password = xxxx
        找到:[paste_deploy]
          flavor = keystone
        同步数据库:
          #su -s /bin/sh -c "glance-manage db_sync" glance
        启动glance:
          #systemctl enable openstack-glance-api.service
            openstack-glance-registry.service
            systemctl start openstack-glance-api.service
                           openstack-glance-registry.service

    3.2验证

        运行环境变量:
          #. admin-openrc
        下载一个比较小的镜像:
          #wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
        上传镜像:
          #openstack image create "cirros"
            --file cirros-0.3.4-x86_64-disk.img
            --disk-format qcow2 --container-format bare
            --public
        查看:
            #openstack image list
        有输出 证明glance配置正确

    四:计算服务

    4.1安装并配置控制节点

        建立nova的数据库:
        #mysql -u root -p
        #CREATE DATABASE nova_api;
        #CREATE DATABASE nova;
        授权:
        #GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost'
          IDENTIFIED BY '密码';
        #GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%'
          IDENTIFIED BY '密码';
        #GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost'
          IDENTIFIED BY '密码';
        #GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%'
          IDENTIFIED BY '密码';
         运行环境变量:
        #. admin-openrc
        创建nova用户:
          #openstack user create --domain default
            --password-prompt nova
            #openstack role add --project service --user nova admin
        创建计算服务:
          #openstack service create --name nova
            --description "OpenStack Compute" compute
        创建endpoint:
          #openstack endpoint create --region RegionOne
            compute public http://controller:8774/v2.1/%(tenant_id)s
          #openstack endpoint create --region RegionOne
            compute internal http://controller:8774/v2.1/%(tenant_id)s
          #openstack endpoint create --region RegionOne
            compute admin http://controller:8774/v2.1/%(tenant_id)s
        安装:
          #yum install openstack-nova-api openstack-nova-conductor
            openstack-nova-console openstack-nova-novncproxy
            openstack-nova-scheduler
          #vi /etc/nova/nova.conf
        找到:[DEFAULT]
          enabled_apis = osapi_compute,metadata
        找到[api_database]
          connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
          [database]
          connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
          [DEFAULT]
          rpc_backend = rabbit
          [oslo_messaging_rabbit]
          rabbit_host = controller
          rabbit_userid = openstack
          rabbit_password = RABBIT_PASS
          [DEFAULT]
          auth_strategy = keystone
          [keystone_authtoken]
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = controller:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = nova
          password = xxx
          [DEFAULT]
          my_ip = ip地址
          [DEFAULT]
          use_neutron = True
          firewall_driver = nova.virt.firewall.NoopFirewallDriver
          [vnc]
          vncserver_listen = $my_ip
          vncserver_proxyclient_address = $my_ip
          [glance]
          api_servers = http://controller:9292
          [oslo_concurrency]
          lock_path = /var/lib/nova/tmp
        同步数据库:
          #nova-manage api_db sync
          #nova-manage db sync
        启动服务:
          #systemctl enable openstack-nova-api.service
            openstack-nova-consoleauth.service openstack-nova-scheduler.service
            openstack-nova-conductor.service openstack-nova-novncproxy.service
           # systemctl start openstack-nova-api.service
            openstack-nova-consoleauth.service openstack-nova-scheduler.service
            openstack-nova-conductor.service openstack-nova-novncproxy.service

    4.2安装并配置计算节点

          #yum install openstack-nova-compute
          #vi /etc/nova/nova.conf
        [DEFAULT]
          rpc_backend = rabbit
        [oslo_messaging_rabbit]
          rabbit_host = controller
          rabbit_userid = openstack
          rabbit_password = xxx
        [DEFAULT]
          auth_strategy = keystone
        [keystone_authtoken]
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = controller:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = nova
          password = xxx
        [DEFAULT]
          my_ip =计算节点ip地址
        [DEFAULT]
          use_neutron = True
          firewall_driver = nova.virt.firewall.NoopFirewallDriver
        [vnc]
          enabled = True
          vncserver_listen = 0.0.0.0
          vncserver_proxyclient_address = $my_ip
          novncproxy_base_url = http://controller:6080/vnc_auto.html
          [glance]
          api_servers = http://controller:9292
        [oslo_concurrency]
          lock_path = /var/lib/nova/tmp
        注意:
          egrep -c '(vmx|svm)' /proc/cpuinfo
          如果为0则需要修改/etc/nova/nova.conf
        [libvirt]
          virt_type = qemu
          为大于0则不需要
        启动:
          systemctl enable libvirtd.service openstack-nova-compute.service
          systemctl start libvirtd.service openstack-nova-compute.service
        

    4.3验证

         在控制节点验证:
         运行环境变量:
          #. admin-openrc
          #openstack compute service list
        输出正常即为配置正确

    五:Networking服务

    5.1安装并配置控制节点

        创建neutron数据库
          #mysql -u root -p
          #CREATE DATABASE neutron;
          #GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost'
            IDENTIFIED BY 'NEUTRON_DBPASS';
          #GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%'
            IDENTIFIED BY 'NEUTRON_DBPASS';
        运行环境变量:
          #. admin-openrc
        创建用户:
          #openstack user create --domain default --password-prompt neutron
          #openstack role add --project service --user neutron admin
        创建网络服务:
          #openstack service create --name neutron
            --description "OpenStack Networking" network
        创建neutron endpoint
          #openstack endpoint create --region RegionOne
            network public http://controller:9696
          #openstack endpoint create --region RegionOne
            network internal http://controller:9696
          #openstack endpoint create --region RegionOne
            network admin http://controller:9696
        创建vxlan网络:
          #yum install openstack-neutron openstack-neutron-ml2
            openstack-neutron-linuxbridge ebtables
          #vi /etc/neutron/neutron.conf
        [database]
          connection = mysql+pymysql://neutron:密码@controller/neutron
        [DEFAULT]
          core_plugin = ml2
          service_plugins = router
          allow_overlapping_ips = True
        [DEFAULT]
          rpc_backend = rabbit
                  [oslo_messaging_rabbit]
          rabbit_host = controller
          rabbit_userid = openstack
          rabbit_password = RABBIT_PASS
        [DEFAULT]
          auth_strategy = keystone
        [keystone_authtoken]
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = controller:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = neutron
          password = xxxx
        [DEFAULT]
          notify_nova_on_port_status_changes = True
          notify_nova_on_port_data_changes = True
        [nova]
          auth_url = http://controller:35357
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          region_name = RegionOne
          project_name = service
          username = nova
          password = xxxx
        [oslo_concurrency]
          lock_path = /var/lib/neutron/tmp
        配置ml2扩展:
          #vi /etc/neutron/plugins/ml2/ml2_conf.ini
        [ml2]
          type_drivers = flat,vlan,vxlan
          tenant_network_types = vxlan
          mechanism_drivers = linuxbridge,l2population
          extension_drivers = port_security
        [ml2_type_flat]
          flat_networks = provider
        [ml2_type_vxlan]
          vni_ranges = 1:1000
        [securitygroup]
          enable_ipset = True
        配置网桥:
          #vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
        [linux_bridge]
          physical_interface_mappings = provider:使用的网卡名称
        [vxlan]
          enable_vxlan = True
          local_ip = OVERLAY_INTERFACE_IP_ADDRESS
          l2_population = True
        [securitygroup]
          enable_security_group = True
          firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
        配置3层网络:
          #vi /etc/neutron/l3_agent.ini
        [DEFAULT]
          interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
        配置dhcp:
          #vi /etc/neutron/dhcp_agent.ini
        [DEFAULT]
          interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
          dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
          enable_isolated_metadata = True
        配置metadata agent
          #vi /etc/neutron/metadata_agent.ini
        [DEFAULT]
          nova_metadata_ip = controller
          metadata_proxy_shared_secret = METADATA_SECRET
        #vi /etc/nova/nova.conf
        [neutron]
          url = http://controller:9696
          auth_url = http://controller:35357
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          region_name = RegionOne
          project_name = service
          username = neutron
          password = xxxx
          service_metadata_proxy = True
          metadata_proxy_shared_secret = METADATA_SECRET
        创建扩展连接:
          ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
        启动:
          #systemctl restart openstack-nova-api.service
          #systemctl enable neutron-server.service
            neutron-linuxbridge-agent.service neutron-dhcp-agent.service
            neutron-metadata-agent.service
          #systemctl start neutron-server.service
            neutron-linuxbridge-agent.service neutron-dhcp-agent.service
            neutron-metadata-agent.service
             # systemctl enable neutron-l3-agent.service
          #systemctl start neutron-l3-agent.service
     

    5.2安装并配置计算节点

          #yum install openstack-neutron-linuxbridge ebtables ipset
          #vi  /etc/neutron/neutron.conf
        [DEFAULT]
          rpc_backend = rabbit
          auth_strategy = keystone
        [oslo_messaging_rabbit]
          rabbit_host = controller
          rabbit_userid = openstack
          rabbit_password = RABBIT_PASS
        [keystone_authtoken]
          auth_uri = http://controller:5000
          auth_url = http://controller:35357
          memcached_servers = controller:11211
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          project_name = service
          username = neutron
          password = xxxx
        [oslo_concurrency]
          lock_path = /var/lib/neutron/tmp
        配置vxlan
          #vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
        [linux_bridge]
          physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
        [vxlan]
          enable_vxlan = True
          local_ip = OVERLAY_INTERFACE_IP_ADDRESS
          l2_population = True
        [securitygroup]
          enable_security_group = True
          firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
        #vi /etc/nova/nova.conf
        [neutron]
          url = http://controller:9696
          auth_url = http://controller:35357
          auth_type = password
          project_domain_name = default
          user_domain_name = default
          region_name = RegionOne
          project_name = service
          username = neutron
          password = xxxx
        启动:
          #systemctl restart openstack-nova-compute.service
          #systemctl enable neutron-linuxbridge-agent.service
          #systemctl enable neutron-linuxbridge-agent.service

    5.3验证

         运行环境变量:
          #. admin-openrc
          #neutron ext-list
          输出正常即可

    六:Dashboard

    6.1配置

        #yum install openstack-dashboard
        #vi /etc/openstack-dashboard/local_settings
            OPENSTACK_HOST = "controller"
            ALLOWED_HOSTS = ['*', ]
           SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
          CACHES = {
            'default': {
          'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
          'LOCATION': 'controller:11211',
          }
          }
          OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
          OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
          OPENSTACK_API_VERSIONS = {
            "identity": 3,
            "image": 2,
            "volume": 2,
            }
          OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"
          OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
        启动:
        #systemctl restart httpd.service memcached.service

    6.2登录

                 在网页上输入网址http://192.168.1.73/dashboard/auth/login

                 域:default

                 用户名:admin或者demo

                 密码:自己设置的

            

        登录后会发现出现一下页面:此处可看http://www.cnblogs.com/yaohong/p/7352386.html中的坑四。

              

              按照坑四解决后会出现一下页面,就可以玩了,但如果是笔记本会运行非常慢,等有了服务器继续玩吧!!

           

               本文网址:http://www.cnblogs.com/yaohong/p/7368297.html

               配置完后可尝试已经写好的脚本一键安装模式:http://www.cnblogs.com/yaohong/p/7251852.html

  • 相关阅读:
    贝叶斯定理
    用matplotlib统计数据并画图
    词云图
    一行python代码能写出啥?
    用python生成二维码
    18个python的高效编程技巧
    django简介
    vue点击变色
    selenium破解人人登陆验证码
    selenium请求豆瓣网
  • 原文地址:https://www.cnblogs.com/yaohong/p/7368297.html
Copyright © 2020-2023  润新知