OpenStack手动搭建-ocata版

一、环境配置

使用centos 7 版本,一个控制节点,一个计算节点,

参考链接:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/

 

下面的表格给出了需要密码的服务列表以及它们在指南中关联关系:

密码名称

描述

数据库密码(不能使用变量)

数据库的root密码   123456

ADMIN_PASS

admin 用户密码  123456

DASH_DBPASS

仪表板的数据库密码  123456

DEMO_PASS

demo 用户的密码  123456

GLANCE_DBPASS

镜像服务的数据库密码  123456

GLANCE_PASS

镜像服务的 glance 用户密码  123456

KEYSTONE_DBPASS

认证服务的数据库密码  123456

METADATA_SECRET

元数据代理的密码  123456

NEUTRON_DBPASS

网络服务的数据库密码  123456

NEUTRON_PASS

网络服务的 neutron 用户密码  123456

NOVA_DBPASS

计算服务的数据库密码  123456

NOVA_PASS

计算服务中``nova``用户的密码  123456

PLACEMENT_PASS

Placement service  placement用户密码  123456

RABBIT_DBPASS

RabbitMQopenstack用户密码  123456

 

1、配置两台主机

一台 controller  1核3G  ens33 IP:10.0.0.11    ens34 IP:192.186.21.130

一台 compute   1核2G  ens33 IP:10.0.0.10    ens34 IP:192.186.21.131

2、修改主机名

hostnamectl set-hostname 主机名(一台 controller  一台 compute)

3、vi /etc/hosts    # ip a 查看网卡信息,添加内网本地解析

   10.0.0.11   controller

   10.0.0.10   compute

4、关闭防火墙和selinux

   systemctl start firewalld.service

   systemctl stop firewalld.service

   systemctl disable firewalld.service

   setenfoce 0 临时关闭selinux

   永久关闭selinux :

   vi /etc/sysconfig/selinux

   修改SELINUX=enforcing 为 SELINUX=disabled

   重启服务器 reboot 生效

5、配置时间服务器

  可参考:https://blog.csdn.net/xin1889/article/details/80025418

controller 节点配置时间服务器

   /etc/chrony.conf

   添加: allow 10.0.0.0/24       白名单

          Local stratum 10      开启时间同步,设定级别

    启动时间服务器: systemctl enable chronyd.service

                     systemctl start chronyd.service

 

   compute节点同步时间服务器

   vi /etc/chrony.conf

   添加:server 时间服务器名 iburst    配置时间服务器地址

   启动时间服务器: systemctl enable chronyd.service

                     systemctl start chronyd.service

 

  检验: chronyc sources

6、安装软件包

   yum install -y centos-release-openstack-ocata     安装用于启用OpenStack仓库的包

yum upgrade  在主机上升级包

报错:

One of the configured repositories failed (CentOS-7 - QEMU EV)

failure: repodata/repomd.xml fromcentos-qemu-ev: [Errno 256] No more mirrors to try.

http://mirror.centos.org/$contentdir/7/virt/x86_64/kvm-common/repodata/repomd.xml:[Errno 14] HTTP Error 404 - Not Found

 

 

修改 vim CentOS-QEMU-EV.repo

     baseurl=http://mirror.centos.org/centos/7/virt/x86_64/kvm-common/

 

   所有节点安装openstack 客户端

   yum install -y python-openstackclient

   所有节点安装openstack-selinux自动管理跟openstack服务有关的安全策略

   yum -y install openstack-selinux

7、controller节点安装配置数据库组件,大多数openstack使用SQL数据库存储信息

   yum install -y mariadb mariadb-server python2-PyMySQL

   vi /etc/my.cnf.d/openstack.cnf

  

   symbolic-links=0

   bind-address=10.0.0.11

   default-storage-engine=innodb

   innodb_file_per_table=on

max_connections=4096

collation-server=utf8_general_ci

   character-set-server=utf8

 

   systemctl enable mariadb.service

   systemctl start mariadb.service

   mysql_secure_installation       #此命令设置数据库管理员root密码:123456

 

8、openstack 使用消息队列服务进行服务之间的协调和状态信息之间的同步。消息队列服务通常运行在controller上,openstack 支持多种消息队列服务,包括RabbitMQ,Qpid和ZeroMQ。大多数openstack发行版本支持RabbitMQ。

    在controller 安装RabbitMQ消息队列服务

yum install -y rabbitmq-server

启动服务:

systemctl enable rabbitmq-server.service

systemctl start rabbitmq-server.service

添加用户和密码:

rabbitmqctl add_user openstack 123456

为用户添加读、写和访问权限

rabbitmqctl set_permissions openstack “.*” “.*” “.*”

 

9、各类服务的身份验证机制使用memcached缓存令牌,memcached通常运行在controller节点。

    controller安装memcached服务

yum install -y memcached python-memecached

vim /etc/sysconfig/Memcached

OPTIONS=”-l 127.0.0.1,::1,controller”

    systemctl enable memcached.service

    systemctl strat memcached.service

二、认证服务

1、配置 OpenStack 身份认证服务前,必须创建一个数据库和管理员令牌。

1)、用数据库连接客户端以 root 用户连接到数据库服务器:mysql -u root -p

创建 keystone 数据库:CREATE DATABASE keystone;

``keystone``数据库授予恰当的权限:

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’localhost’ IDENTIFIED BY ‘KEYSTONE_DBPASS’;

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY ‘KEYSTONE_DBPASS’;

KEYSTONE_DBPASS:123456

退出数据库客户端:exit

2、安装keystone并配置组件

1)、安装包:yum install -y openstack-keystone httpd mod_wsgi

2)、编辑文件 /etc/keystone/keystone.conf 并完成如下动作:

 [database]

connection = mysql+pymysql://keystone:123456@controller/keystone

[token]

provider = fernet

3)、初始化身份认证服务的数据库:

su -s /bin/sh -c “keystone-manage db_sync” keystone

4)、初始化Fernet keys:

#keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

#keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5)、引导身份服务:

keystone-manage bootstrap --bootstrap-password 123456 \

--bootstrap-admin-url http://controller:35357/v3/ \

--bootstrap-internal-url http://controller:5000/v3/ \

--bootstrap-public-url http://controller:5000/v3/ \

--bootstrap-region-id RegionOne

3、配置Apache HTTP 服务器

1)、编辑 /etc/httpd/conf/httpd.conf 文件,配置 ServerName 选项为控制节点:

ServerName controller

2)、创建一个链接到“/usr/share/keystone/wsgi-keystone.conf”文件

#ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

3)、启动Apache HTTP 服务并配置其随系统启动:

systemctl enable httpd.service

systemctl start httpd.service

4)、配置admin账户

export OS_USERNAME=admin

export OS_PASSWORD=123456

export OS_PROJECT_NAME=admin

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_DOMAIN_NAME=default

export OS_AUTH_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

4、创建域、项目、用户和角色,Domain、Project、user、role

1)、使用一个你添加到你的环境中每个服务包含独有用户的service 项目。创建``service``项目:

openstack project create --domain default --description “Service Project” service

2)、常规(非管理)任务应该使用无特权的项目和用户,创建 demo 项目和用户。

创建demo项目:

openstack project create --domain default --description “Demo Project” demo

创建demo用户:密码:123456

openstack user create --domain default --password-prompt demo

创建user角色:

openstack role create user

添加角色user到demo项目和用户:

openstack role add --project demo --user demo user

5、验证操作

1)、因为安全性的原因,关闭临时认证令牌机制:

编辑 /etc/keystone/keystone-paste.ini 文件,从[pipeline:admin_api]、[pipeline:admin_api] 和 [pipeline:api_v3] 部分删除 admin_token_auth 。

2)、撤销临时环境变量``OS_AUTH_URL``和``OS_PASSWORD`` 环境变量:

unset OS_AUTH_URL OS_PASSWORD

3)、作为 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

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

这个命令使用``demo`` 用户的密码和API端口5000,这样只会允许对身份认证服务API的常规(非管理)访问。

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

6、创建OpenStack客户端环境脚本

使用环境变量和命令选项的组合通过``openstack``客户端与身份认证服务交互。为了提升客户端操作的效率,OpenStack支持简单的客户端环境变量脚本即OpenRC 文件。这些脚本通常包含客户端所有常见的选项,当然也支持独特的选项。

1)、创建脚本

创建 admin  ``demo``项目和用户创建客户端环境变量脚本。本指南的接下来的部分会引用这些脚本,为客户端操作加载合适的的凭证。

编辑文件 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

编辑文件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:5000/v3

     export OS_IDENTITY_API_VERSION=3

     export OS_IMAGE_API_VERSION=2

 

    2)、使用脚本

使用特定租户和用户运行客户端,你可以在运行之前简单地加载相关客户端脚本。例如:加载``admin-openrc``文件来身份认证服务的环境变量位置和``admin``项目和用户证书:

. admin-openrc

请求认证令牌:

openstack token issue

. demo-openrc

openstack token issue

 

三、镜像服务

 

1、先决条件:安装和配置镜像服务之前必须创建一个数据库、服务凭证和API端点。

1)、创建数据库:

   用数据库连接客户端以root用户连接到数据库服务器:

   mysql -u root -p

   创建glance数据库:

   CREATE DATABASE glance;

   对“glance”数据库授予恰当的权限:

   GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’localhost’ IDENTIFIED BY ‘123456’;

   GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘123456’;

     exit

2)、获得admin凭证来获取只有管理员能执行命令的访问权限:

   . admin-openrc

3)、要创建服务证书,完成这些步骤:

   创建glance用户:

   openstack user create --domain default --password-prompt glance

   123456

   添加admin角色到glance用户和service项目上

   openstack role add --project service --user glance admin

   创建glance 服务实体:

   openstack service create --name glance --description “OpenStack Image” image

  

4)、创建镜像服务API端点:

   openstack endpoint create --region RegionOne image public http://controller:9292

   openstack endpoint create --region RegionOne image internal http://controller:9292

   openstack endpoint create --region RegionOne image admin http://controller:9292

 

2、安装并配置镜像服务组件

1)、安装软件包:

yum install -y openstack-glance

2)、编辑配置文件 /etc/glance/glance-api.conf 并完成如下动作:

   [database]

   …

   connection = mysql+pymysql://glance:123456@controller/glance

       在[keystone_authtoken]和[paste_deploy]部分,配置认证服务访问:   [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 = 123456

      

       [paste_deploy]

        ...

       flavor = keystone

      

 [glance_store]

 …

 stores = file,http

 default_store = file

 filesystem_store_datadir = /var/lib/glance/images/

 

3)、编辑文件 /etc/glance/glance-registry.conf 并完成如下动作:

   [database]

   …

   connection = mysql+pymysql://glance:123456@controller/glance

   # 123456是用户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 = 123456

 

   [paste_deploy]

   …

   flavor = keystone

 

4)、写入镜像服务数据库:

   su -s /bin/sh -c “glance-manage db_sync” glance

5)、启动镜像服务、配置开机启动:

   systemctl enable openstack-glance-api.service openstack-glance-registry.service

   systemctl start openstack-glance-api.service openstack-glance-registry.service

6)、验证

CirrOS是一个小型的Linux镜像可以用来进行 OpenStack部署测试。

   获得admin 凭证来获取只有管理员能执行的命令的访问权限:

   . admin-openrc

   下载源镜像:

   yum install wget -y

   wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk/img

    使用QCOW2磁盘格式,bare容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问:

     openstack image create “cirros” --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public

     openstack image list

    

 

四、计算服务

 

安装配置控制节点

 

1、先决条件

在安装和配置compute服务前,你必须创建数据库服务的凭据以及API endpoints。

1)、创建数据库:

       以root连接到数据库服务器:

       $mysql -u root -p

       创建 nova_api,nova 和 nova_cell0 数据库:

       > CREATE DATABASE nova_api;

       > CREATE DATABASE nova;

       > CREATE DATABASE nava_cell0;

       > GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

       > GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123456';

       > GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

       > GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456';

       > GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

       > GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123456';

       > exit

2)、获得admin凭证来获取只有管理员能执行的命令的访问权限:

       . admin-openrc

   3)、创建服务证书

       创建nova用户:

       openstack user create --domain default --password-prompt nova

       密码:123456

       给nova用户添加admin角色:

       openstack role add --project service --user nova admin

       创建nova服务实体

       openstack service create --name nova \

       --description “OpenStack Compute” compute

     

   4)、创建Compute服务API端点

       openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

       openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1          

       openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1 

5)、创建placement服务用户

    openstack user create --domain default --password-prompt placement

    密码:123456

6)、将admin角色加入到placement用户下

    openstack role add --project service --user placement admin

7)、创建placement 的服务实体

    openstack service create --name placement --description “Placement API” placement

8)、创建placement API 服务端点

    openstack endpoint create --region RegionOne placement public http://controller:8778

    openstack endpoint create --region RegionOne placement internal http://controller:8778

    openstack endpoint create --region RegionOne placement admin http://controller:8778

2、安装并配置组件

    1)、安装软件包

        yum install -y openstack-nova-api openstack-nova-conductor \

        openstack-nova-console openstack-nova-novncproxy \

        openstack-nova-scheduler openstack-nova-placement-api

2)、编辑 /etc/nova/nova.conf 文件并完成下面的操作

   

    [DEFAULT]

    …

    enabled_apis = osapi_compute,metadata

    transport_url = rabbit://openstack:123456@controller

    my_ip = 10.0.0.11

    use_neutron = True

    firewall_driver = nova.virt.firewall.NoopFirewallDriver

 

        [api_database]

        …

        connection = mysql+pymysql://nova:123456@controller/nova_api

 

        [database]

        …

        connection = mysql+pymysql://nova:123456@controller/nova

 

        [api]

        …

        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 = 123456

 

        [vnc]

        …

        enabled = True

        vncserver_listen = $my_ip

        vncserver_proxyclient_address = $my_ip

   

        [glance]

        …

        api_servers = http://controller:9292

    

        [oslo_concurrency]

        …

        lock_path = /var/lib/nova/tmp

 

        [placement]

        …

        os_region_name = RegionOne

        project_domain_name = default

        user_domain_name = default

        project_name = service

        username = placement

        auth_type = password

        password = 123456

        auth_url = http://controller:35357/v3

   

        由于包错误,需要将以下配置加入到placement API的配置文件

        <Directory /usr/bin>

           <IfVersion >= 2.4>

              Require all granted

           <IfVersion>

           <IfVersion < 2.4>

              Order allow,deny

              Allow from all

           </IfVersion>

        </Directory>

        重启httpd服务

        systemctl restart httpd.service

 

3)、同步nova-api数据库

        su -s /bin/sh -c “nova-manage api_db sync” nova

4)、注册cell0数据库

    su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

5)、创建cell1 cell

    su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

6)、同步nova数据库

    su -s /bin/sh -c “nova-manage db sync” nova

7)、验证nova cell0和cell1是否正确注册

    nova-manage cell_v2 list_cells

3、完成安装

启动服务并设置为随机启动:

#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

安装和配置计算节点

1、安装配置组件

1)、安装软件包

    yum install -y openstack-nova-compute

2)、编辑 /etc/nova/nova.conf 文件并完成下面的操作

    [DEFAULT]

    …

    enabled_apis = osapi_compute,metadata

    transport_url = rabbit://openstack:123456@controller

    my_ip = 10.0.0.10

    use_neutron = True

    firewall_driver = nova.virt.firewall.NoopFirewallDriver

 

        [api]

        …

        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 = 123456

 

        [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

 

        [placement]

        …

        os_region_name = RegionOne

        project_domain_name = default

        user_domain_name = default

        auth_type = password

        project_name = service

        username = placement

        password = 123456

        auth_url = http://controller:35357/v3

 

2、完成安装

1)、确定计算节点是否支持虚拟机的硬件加速

    egrep -c ‘(vmx | svm)’ /proc/cpuinfo

   

      返回值为1或大于1的值,不需要额外的配置,返回值为0,代表计算节点不支持硬件加速,需要配置libvirt来使用QEMU来代替KVM。

      在 /etc/nova/nova.conf 文件的libvirt 区域修改配置为:

      [libvirt]

      …

      virt_type = qemu

     

2)、启动计算服务,并设置随机启动:

    #systemctl enable libvirtd.service openstack-nova-compute.service

    #systemctl start libvirtd.service openstack-nova-compute.service

 

# less /var/log/nova/nova-compute.log

查看日志发现RabbitMO服务中openstack没有权限访问‘/’

到controller节点查看权限,并给openstack用户具有’/’这个virtual host 中所有资源的配置、写、读权限以便管理其中的资源。

然后回到compute节点重新启动openstack-nova-compute服务,正常启动

3)、将计算节点添加到cell数据库

    注意:在控制节点controller运行一下命令

    获得admin凭证来获取只有管理员能执行的命令的访问权限:

    . admin-openrc

    确认一个计算节点在主机列表中

    openstack hypervisor list

    发现计算主机:

    #su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova

当出现下面错误的时候,

是因为缺少数据库连接参数,在出现问题的节点(一般是计算节点)添加下面的配置项目:

#vim /etc/nova/nova.conf

[api_database]

        …

        connection = mysql+pymysql://nova:123456@controller/nova_api

 

        [database]

        …

        connection = mysql+pymysql://nova:123456@controller/nova

 

       当添加新的计算节点时,必须在控制器节点上运行 nova-manage cell_v2 discover_host 来注册这些新的计算节点。或者,您可以在 /etc/nova/nova.conf 中设置适当的间隔:

    [scheduler]

    discover_hosts_in_cells_interval = 300

验证操作

    在控制节点执行这些命令验证

1、获得admin凭证来获取只有管理员能执行的命令的访问权限:

   . admin-openrc

2、列出服务组件,验证是否成功启动并注册了每个进程:

   openstack compute service list

3、列出身份认证服务中的API端点来验证身份认证服务的联通性:

   openstack catalog list

4、列出镜像服务中的镜像来验证连通性:

   openstack image list

5、检查各单元和placement API 成功运行

   nova-status upgrade check

五、网络服务

安装并配置控制节点

先决条件

在你配置OpenStack网络(neutron)服务之前,必须为其创建一个数据库,服务凭证和API端点

    1、创建数据库:

用数据库连接客户端以root连接到数据库服务器:

mysql -u root -p

创建neutron数据库:

CREATE DATABASE neutron;

对neutron数据库授予合适的访问权限,使用合适的密码:

GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@’localhost’ IDENTIFIED BY ‘123456’;

GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@’%’ IDENTIFIED BY ‘123456’;

exit

2、获得admin凭证来获取只有管理员能执行的命令的访问权限:

. admin

3、创建服务证书:

创建neutron用户:

openstack user create --domain default --password-prompt neutron

密码:123456

添加admin角色到neutron用户:

openstack role add --project service --user neutron admin

创建neutron服务实体:

openstack service create --name neutron \

--description “OpenStack Networking” network

4、创建网络服务API端点:

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

配置网络:自服务网络(自服务网络在提供者网络的基础上多了layer - 3服务,支持实例连接到私有网络。自服务网络同样支持实例连接到公共网络。)在controller节点安装和配置。

安装组件:

yum install -y openstack-neutron openstack-neutron-ml2 \

openstack-neutron-linuxbridge ebtables

配置服务组件

  编辑 /etc/neutron/neutron.conf 文件并完成以下操作:

  [database]                #配置数据库访问

  …

  connection = mysql+pymysql://neutron:123456@controller/neutron

  

  [DEFAULT]             

  …

  core_plugin = ml2         #启用ML2插件,路由服务和重叠的IP地址

  service_plugins = router

  allow_overlapping_ips = true

  transport_url = rabbit://openstack:123456@controller #配置消息队列访问权限

  auth_strategy = keystone    #配置认证服务

  notify_nova_on_port_status_changes = true #配置网络服务来通知计算节点的网络拓扑变化

  notify_nova_on_port_data_changes = true

 

  [keystone_authtoken]      #配置认证服务

  …

  auth_uri = http://controller:5000

  auth_url = http://controller:35357

  memcached_servers = controller:11211

  auth_typr = password

  project_domain_name = default

  user_domain_name = default

  project_name = service

  username = neutron

  password = 123456

  

  [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 = 123456

 

  [oslo_concurrency]

  …

  lock_path = /var/lib/neutron/tmp

 

配置Modular Layer 2(ML2)插件

  编辑 /etc/neutron/plugins/ml2/ml2_conf.ini 文件并完成以下操作:

  [ml2]      

  …

  type_drivers = flat,vlan,vxlan        #启用flat,VLAN以及VXLAN网络

  tenant_network_types = vxlan       #启用VXLAN私有网络

  mechanism_drivers = linuxbridge,l2population      #启用Linuxbridge和l2机制

  extension_drivers = port_security      #启用端口安全扩展驱动

  

  [ml2_type_flat]

  …

  flat_networks = provide         #配置公共虚拟网络flat网络

  

  [ml2_type_vxlan]

  …

  vni_ranges = 1:1000          #为私有网络配置VXLAN网络识别的网络范围

 

  [securitygroup]

  …

  enable_ipset = true          #启用ipset增加安全组的方便性

 

配置Linuxbridge 代理

  编辑 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件并完成以下操作:

  [linux_bridge]

  physical_interface_mappings = provider:ens34    #将公共虚拟网络和公共物理网络接口对应起来

  

  [vxlan]

  enable_vxlan = true          #启用VXLAN覆盖网络,配置覆盖网络的物理接口的IP地址,启用layer - 2 population

  local_ip = 192.168.21.130

  l2_population = true

 

  [securitygroup]

  …

  enable_security_group = true          #启用安全组并配置Linux桥接iptables防火墙驱动

  firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 

配置layer-3代理

  编辑 /etc/neutron/l3_agent.ini 文件并完成以下操作:

  [DEFAULT]

  …

  interface_driver = linuxbridge

  

配置DHCP代理

  编辑 /etc/neutron/dhcp_agent.ini 文件并完成下面的操作:

  [DEFAULT]   #配置linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据

  …

  interface_driver = linuxbridge

  dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

  enable_isolated_metadata = true

 

配置元数据代理

编辑 /etc/neutron/metadata_agent.ini 文件并完成以下操作:

[DEFAULT]         #配置元数据主机以及共享密码

nova_metadata_ip = controller

metadata_proxy_shared_secret = 123456

 

配置计算服务来使用网络服务

编辑 /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 = 123456

service_metadata_proxy = true

metadata_proxy_shared_secret = 123456

 

完成安装

    1、网络服务初始化脚本需要一个超链接 /etc/neutron/plugin.ini 指向ML2插件配置文件 /etc/neutron/plugins/ml2/ml2_conf.ini 如果超链接不存在,使用下面的命令创建:

#ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

2、同步数据库

#su -s /bin/sh -c “neutron-db-manage --config-file /etc/neutron/neutron.conf  \

--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head” neutron

3、重启计算API服务

#systemctl restart openstack-nova-api.service

4、当系统启动时,启动networking服务并配置随机启动

#systemctl enable neutron-server.service neutron-linuxbridge-agent.service \

neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

#systemctl start neutron-server.service neutron-linuxbridge-agent.service \

neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

安装配置计算节点

安装组件

#yum install -y openstack-neutron-linuxbridge ebtables ipset

配置通用组件

编辑 /etc/neutron/neutron.conf 文件并完成以下操作

[database]  #注释所有connection 项,因为计算节点不直接访问数据库

[DEFAULT]

...                      #配置RabbitMQ 消息队列访问权限

transport_url = rabbit://openstack:123456@controller

auth_strategy = keystone      #配置认证服务访问

 

[keystone_authtoken]

...

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = 123456

 

[oslo_concurrency]

Lock_path = /var/lib/neutron/tmp

 

配置网络:与控制节点选择相同的网络配置,步骤同控制节点网络配置。

配置Linuxbridge 代理

  编辑 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件并完成以下操作:

  [linux_bridge]

  physical_interface_mappings = provider:ens34    #将公共虚拟网络和公共物理网络接口对应起来

  

  [vxlan]

  enable_vxlan = true          #启用VXLAN覆盖网络,配置覆盖网络的物理接口的IP地址,启用layer - 2 population

  local_ip = 192.168.21.131

  l2_population = true

 

  [securitygroup]

  …

  enable_security_group = true          #启用安全组并配置Linux桥接iptables防火墙驱动

  firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 

配置计算服务来使用网络服务

编辑 /etc/nova/nova.conf 文件并完成下面的操作

[neutron]            #在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 = 123456

 

完成安装

    1、重启计算服务

systemctl restart openstack-nova-compute.service

2、启动Linuxbridge代理并配合开机启动

systemctl enable neutron-linuxbridge-agent.service

systemctl start neutron-linuxbridge-agent.service

验证操作

在控制节点执行以下命令

1、获取admin凭证来获取只有管理员能执行的命令的访问权限:

. admin

2、列出加载的扩展来验证 neutron-server 进程是否正常启动:

openstack extension list –network

3、网络服务验证列出代理以验证启动neutron代理是否成功:

openstack network agent list

如果发现控制节点或计算节点的Linux bridge agent 没有起来,有可能是私网网卡没启动,或者配置文件的对应网卡和IP信息填写错误。

六、仪表盘

计算节点安装和配置仪表板,使用Apache web 服务器。

 

安装并配置组件

    1、安装软件包:

       yum install –y openstack-dashboard

2、编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作:

   在controller节点配置仪表盘以使用OpenStack服务

   OPENSTACK_HOST = “controller”    

 

   这个参数经常是[‘*’, ] 允许所有主机访问仪表板,这对于开发工作可能是有用的,但可能不安全,不应该用于生产。

   ALLOWED_HOSTS = [‘one.example.com’, ’two.example.com’] 

 

       配置memcached回话存储服务,并将其他的回话存储服务配置注释:

       SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’

      

       CACHES = {

‘default’ : {

‘BACKEND’ : ‘django.core.cache.backends.memcached.MemcachedCache’,

                ‘LOCATION’ : ‘controller:11211’

}

}

       

       启用第三版认证API:

       OPENSTACK_KEYSTONE_URL = http://%s:5000/v3 % OPENSTACK_HOST

 

       启用对域的支持

       OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

 

       配置API版本:

       OPENSTACK_API_VERSIONS = {

             “identity”: 3,

             “image”: 2,

             “volume”: 2,

 

       通过仪表盘创建用户时的默认域配置为default:

       OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = “default”

      

       通过仪表盘创建的用户默认角色配置为user:

       OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”

 

       如果选择网络参数1,禁用支持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

     

      如果未包含,则添加

      vim /etc/httpd/conf.d/openstack-dashboard.conf

      WSGIApplicationGroup %{GLOBAL}

完成安装

重启web服务器以及回话存储服务:

systemctl restart httpd.service memcached.service

验证操作

浏览器中输入 http://10.0.0.11/dashboard 访问仪表盘

验证使用 admin 或者 demo 用户凭证和 default 域凭证

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值