开源openstack安装

开源openstack安装

Centos7安装:

前期安装:

开启硬件辅助虚拟化

主机名:controller、compute

Hosts文件修改

Selinux disabled

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统

SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

SELinux 有三种工作模式,分别是:

1、enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。

2、permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。

3、disabled:关闭 SELinux。

ssh开启

Firewall disabled/stop

重启!!!

装到nova,控制节点先装nova(内部有控制节点的neutron需要装)

计算节点先装nova在装neutron

Openstack-stein包下载:

# yum install centos-release-openstack-stein

升级重启:

# yum upgrade

安装客户端:

# yum install python-openstackclient

安装SQL数据库:

# yum install mariadb mariadb-server python2-PyMySQL

创建和编辑/etc/my.cnf.d/openstack.cnf文件(/etc/my.cnf.d/如果需要,请备份现有配置文件)并完成以下操作:

创建一个[mysqld]部分,并将bind-address 密钥设置为控制器节点的管理IP地址,以允许其他节点通过管理网络进行访问。设置其他键以启用有用的选项和UTF-8字符集:

[mysqld]

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帐户选择合适的密码 :

# mysql_secure_installation

消息队列安装:

# yum install rabbitmq-server

启动消息队列服务,并将其配置为在系统引导时启动:

# systemctl enable rabbitmq-server.service

# systemctl start rabbitmq-server.service

添加openstack用户:

# rabbitmqctl add_user openstack RABBIT_PASS

Creating user "openstack" …

替换RABBIT_PASS为合适的密码。

允许用户配置,写入和读取访问权限 openstack:

# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Setting permissions for user "openstack" in vhost "/" ...

安装Memcache:

安装软件包:

对于CentOS 7和RHEL 7

# yum install memcached python-memcached

编辑/etc/sysconfig/memcached文件并完成以下操作:

配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:

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

 注意:更改现有的行。OPTIONS="-l 127.0.0.1,::1"

最终确定安装

启动Memcached服务,并将其配置为在系统启动时启动:

# systemctl enable memcached.service

# systemctl start memcached.service

Etcd安装:--(Etcd(分布式可靠键值存储)来进行分布式键锁定,存储配置,跟踪服务活动性和其他情况)

安装软件包:

# yum install etcd

编辑/etc/etcd/etcd.conf文件,并设置ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS,ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址:

#[Member]

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"

ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"

ETCD_NAME="controller"

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"

ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"

ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"

ETCD_INITIAL_CLUSTER_STATE="new"

最终确定安装

启用并启动etcd服务:

# systemctl enable etcd

# systemctl start etcd

keystone安装:

去掉注释命令示例:cat keystone.conf.bak |grep -v "^#" >keystone.conf

安装keystone:

在安装和配置身份服务之前,必须创建数据库。

使用数据库访问客户端以root用户身份连接到数据库服务器:

$ mysql -u root -p

创建keystone数据库:

MariaDB [(none)]> CREATE DATABASE keystone;

授予对keystone数据库的适当访问权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \

IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \

IDENTIFIED BY '123456';

替换KEYSTONE_DBPASS为合适的密码。

退出数据库访问客户端。

安装和配置的部件

 注意

默认配置文件因发行版本而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,...配置摘要中的省略号()表示您应保留的潜在默认配置选项。

运行以下命令以安装软件包:

# yum install openstack-keystone httpd mod_wsgi

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

在该[database]部分中,配置数据库访问:

[database]

# ...

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

替换KEYSTONE_DBPASS为您为数据库选择的密码。

 注意

注释掉或删除connection此[database]部分中的任何其他选项 。

 注意

controller在此示例中,主机必须是可解析的。

在该[token]部分中,配置Fernet令牌提供者:

[token]

# ...

provider = fernet

填充身份服务数据库:

# su -s /bin/sh -c "keystone-manage db_sync" keystone

初始化Fernet密钥存储库:

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

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

引导身份服务:

 注意

在Queens发行之前,梯形失真需要在两个单独的端口上运行,以适应Identity v2 API,后者通常在端口35357上运行单独的仅管理员服务。删除v2 API后,梯形失真可以在同一端口上运行所有接口。

# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \

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

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

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

  --bootstrap-region-id RegionOne

用ADMIN_PASS适合管理用户的密码替换。

例子:

# keystone-manage bootstrap --bootstrap-password 123456 \

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

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

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

  --bootstrap-region-id RegionOne

配置Apache HTTP服务器¶

编辑/etc/httpd/conf/httpd.conf文件并配置 ServerName选项以引用控制器节点:

ServerName controller

创建到/usr/share/keystone/wsgi-keystone.conf文件的链接:

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

SSL

安全部署应将Web服务器配置为使用SSL或在SSL终结器之后运行。

完成安装

启动Apache HTTP服务,并将其配置为在系统启动时启动:

注意:启动前centos7可能打开了SELinux,需要将其关闭

找打配置文件:

sudo vim /etc/sysconfig/selinux

找到行

SELINUX=enforcing

改为

SELINUX=disabled

保存,重启

reboot

查看状态

sestatus

# systemctl enable httpd.service

# systemctl start httpd.service

配置管理帐户

 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:5000/v3

 export OS_IDENTITY_API_VERSION=3

替换ADMIN_PASS为keystone-install-configure-rdo中命令中使用的密码 。keystone-manage bootstrap

创建域,项目,用户和角色

尽管在本指南的梯形失真管理引导程序步骤中已经存在“默认”域,但是创建新域的正式方法是:

$ openstack domain create --description "An Example Domain" example

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | An Example Domain                |

| enabled     | True                             |

| id          | 2f4f80574fd84fe6ba9067228ae0a50c |

| name        | example                          |

| tags        | []                               |

+-------------+----------------------------------+

本指南使用一个服务项目,其中包含您添加到环境中的每个服务的唯一用户。创建service 项目:

$ openstack project create --domain default \

  --description "Service Project" service\

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | Service Project                  |

| domain_id   | default                          |

| enabled     | True                             |

| id          | 24ac7f19cd944f4cba1d77469b2a73ed |

| is_domain   | False                            |

| name        | service                          |

| parent_id   | default                          |

| tags        | []                               |

+-------------+----------------------------------+

常规(非管理员)任务应使用没有特权的项目和用户。例如,本指南创建myproject项目和myuser 用户。

创建myproject项目:

$ openstack project create --domain default \

  --description "Demo Project" myproject

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | Demo Project                     |

| domain_id   | default                          |

| enabled     | True                             |

| id          | 231ad6e7ebba47d6a1e57e1cc07ae446 |

| is_domain   | False                            |

| name        | myproject                        |

| parent_id   | default                          |

| tags        | []                               |

+-------------+----------------------------------+

 注意

为该项目创建其他用户时,请不要重复此步骤。

创建myuser用户:

$ openstack user create --domain default \

  --password-prompt myuser

User Password:

Repeat User Password:

+---------------------+----------------------------------+

| Field               | Value                            |

+---------------------+----------------------------------+

| domain_id           | default                          |

| enabled             | True                             |

| id                  | aeda23aa78f44e859900e22c24817832 |

| name                | myuser                           |

| options             | {}                               |

| password_expires_at | None                             |

+---------------------+----------------------------------+

创建myrole角色:

$ openstack role create myrole

+----------+----------------------------------+

| Field     | Value                            |

+-----------+----------------------------------+

| domain_id | None                             |

| id        | 997ce8d05fc143ac97d83fdfb5998552 |

| name      | myrole                           |

+-----------+----------------------------------+

将myrole角色添加到myproject项目和myuser用户:

$ openstack role add --project myproject --user myuser myrole

验证:

取消设置临时 变量OS_AUTH_URL和OS_PASSWORD环境变量:

$ unset OS_AUTH_URL OS_PASSWORD

以admin用户身份请求身份验证令牌:

$ openstack --os-auth-url http://controller:5000/v3 \

  --os-project-domain-name Default --os-user-domain-name Default \

  --os-project-name admin --os-username admin token issue

Password:

+------------+-----------------------------------------------------------------+

| Field      | Value                                                           |

+------------+-----------------------------------------------------------------+

| expires    | 2016-02-12T20:14:07.056119Z                                     |

| id         | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv |

|            | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 |

|            | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws       |

| project_id | 343d245e850143a096806dfaefa9afdc                                |

| user_id    | ac3377633149401296f6c0d92d79dc16                                |

+------------+-----------------------------------------------------------------+

 注意

此命令使用admin用户密码。

作为myuser上一节中创建的用户,请请求认证令牌:

$ openstack --os-auth-url http://controller:5000/v3 \

  --os-project-domain-name Default --os-user-domain-name Default \

  --os-project-name myproject --os-username myuser token issue

Password:

+------------+-----------------------------------------------------------------+

| Field      | Value                                                           |

+------------+-----------------------------------------------------------------+

| expires    | 2016-02-12T20:15:39.014479Z                                     |

| id         | gAAAAABWvi9bsh7vkiby5BpCCnc-JkbGhm9wH3fabS_cY7uabOubesi-Me6IGWW |

|            | yQqNegDDZ5jw7grI26vvgy1J5nCVwZ_zFRqPiz_qhbq29mgbQLglbkq6FQvzBRQ |

|            | JcOzq3uwhzNxszJWmzGC7rJE_H0A_a3UFhqv8M4zMRYSbS2YF0MyFmp_U       |

| project_id | ed0b60bf607743088218b0a533d5943f                                |

| user_id    | 58126687cbcc4888bfa9ab73a2256f27                                |

+------------+-----------------------------------------------------------------+

创建客户端脚本:

创建和编辑admin-openrc文件并添加以下内容:

 注意

OpenStack客户端还支持使用clouds.yaml文件。有关更多信息,请参见os-client-config。

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=ADMIN_PASS

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

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

替换ADMIN_PASS为您admin在身份服务中为用户选择的密码。

创建和编辑demo-openrc文件并添加以下内容:

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=myproject

export OS_USERNAME=myuser

export OS_PASSWORD=MYUSER_PASS

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

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

替换DEMO_PASS为您demo在身份服务中为用户选择的密码。

使用脚本¶

要将客户端作为特定项目和用户运行,您可以在运行它们之前简单地加载关联的客户端环境脚本。例如:

加载admin-openrc文件以使用身份服务的位置以及admin项目和用户凭据填充环境变量:

$ . admin-openrc

请求身份验证令牌:

$ openstack token issue

+------------+-----------------------------------------------------------------+

| Field      | Value                                                           |

+------------+-----------------------------------------------------------------+

| expires    | 2016-02-12T20:44:35.659723Z                                     |

| id         | gAAAAABWvjYj-Zjfg8WXFaQnUd1DMYTBVrKw4h3fIagi5NoEmh21U72SrRv2trl |

|            | JWFYhLi2_uPR31Igf6A8mH2Rw9kv_bxNo1jbLNPLGzW_u5FC7InFqx0yYtTwa1e |

|            | eq2b0f6-18KZyQhs7F3teAta143kJEWuNEYET-y7u29y0be1_64KYkM7E       |

| project_id | 343d245e850143a096806dfaefa9afdc                                |

| user_id    | ac3377633149401296f6c0d92d79dc16                                |

+------------+-----------------------------------------------------------------+

安装Glance:

在安装和配置Image服务之前,必须创建数据库,服务凭证和API端点。

要创建数据库,请完成以下步骤:

使用数据库访问客户端以root用户身份连接到数据库服务器:

$ mysql -u root -p

创建glance数据库:

MariaDB [(none)]> CREATE DATABASE glance;

授予对glance数据库的适当访问权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \

  IDENTIFIED BY '123456';

用GLANCE_DBPASS合适的密码替换。

退出数据库访问客户端。

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

要创建服务凭证,请完成以下步骤:

创建glance用户:

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

User Password:

Repeat User Password:

+---------------------+----------------------------------+

| Field               | Value                            |

+---------------------+----------------------------------+

| domain_id           | default                          |

| enabled             | True                             |

| id                  | 3f4e777c4062483ab8d9edd7dff829df |

| name                | glance                           |

| options             | {}                               |

| password_expires_at | None                             |

+---------------------+----------------------------------+

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

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

 注意

该命令不提供任何输出。

创建glance服务实体:

$ openstack service create --name glance \

  --description "OpenStack Image" image

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | OpenStack Image                  |

| enabled     | True                             |

| id          | 8c2c7f1b9b5049ea9e63757b5533e6d2 |

| name        | glance                           |

| type        | image                            |

+-------------+----------------------------------+

创建图像服务API端点:

$ openstack endpoint create --region RegionOne \

  image public http://controller:9292

+-------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 340be3625e9b4239a6415d034e98aace |

| interface    | public                           |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |

| service_name | glance                           |

| service_type | image                            |

| url          | http://controller:9292           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  image internal http://controller:9292

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | a6e4b153c2ae4c919eccfdbb7dceb5d2 |

| interface    | internal                         |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |

| service_name | glance                           |

| service_type | image                            |

| url          | http://controller:9292           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  image admin http://controller:9292

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 0c37ed58103f4300a84ff125a539032d |

| interface    | admin                            |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |

| service_name | glance                           |

| service_type | image                            |

| url          | http://controller:9292           |

+--------------+----------------------------------+

安装和配置的部件¶

 注意

默认配置文件因分发而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。另外,...配置摘要中的省略号()表示您应保留的潜在默认配置选项。

安装软件包:

# yum install openstack-glance

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

在该[database]部分中,配置数据库访问:

[database]

# ...

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

替换GLANCE_DBPASS为您为图像服务数据库选择的密码。

在[keystone_authtoken]和[paste_deploy]部分中,配置身份服务访问:

[keystone_authtoken]

# ...

www_authenticate_uri  = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = glance

password = GLANCE_PASS

[paste_deploy]

# ...

flavor = keystone

替换GLANCE_PASS为您glance在身份服务中为用户选择的密码 。

 注意

注释掉或删除此[keystone_authtoken]部分中的任何其他选项 。

在该[glance_store]部分中,配置本地文件系统存储和图像文件的位置:

[glance_store]

# ...

stores = file,http

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

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

 注意

Queens版本中已弃用Glance Registry Service及其API,并且遵循OpenStack标准弃用政策,在“ S”开发周期开始时将其删除。

有关更多信息,请参见Glance规范文档实际上不赞成使用Glance注册表。

在该[database]部分中,配置数据库访问:

[database]

# ...

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

替换GLANCE_DBPASS为您为图像服务数据库选择的密码。

在[keystone_authtoken]和[paste_deploy]部分中,配置身份服务访问:

[keystone_authtoken]

# ...

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = glance

password = GLANCE_PASS

[paste_deploy]

# ...

flavor = keystone

替换GLANCE_PASS为您glance在身份服务中为用户选择的密码 。

 注意

注释掉或删除此[keystone_authtoken]部分中的任何其他选项 。

填充图像服务数据库:

# su -s /bin/sh -c "glance-manage db_sync" glance

 注意

忽略此输出中的所有弃用消息。

最终确定安装¶

启动映像服务,并将其配置为在系统引导时启动:

# systemctl enable openstack-glance-api.service \

  openstack-glance-registry.service

# systemctl start openstack-glance-api.service \

  openstack-glance-registry.service

验证操作:

使用CirrOS(一个小型​​Linux映像,可帮助您测试OpenStack部署)验证Image Service的运行 。

有关如何下载和构建映像的更多信息,请参见《 OpenStack虚拟机映像指南》。有关如何管理映像的信息,请参阅《 OpenStack最终用户指南》。

 注意

在控制器节点上执行这些命令。

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

下载源图像:

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

 注意

安装wget,如果你的发行版不包含它。

使用QCOW2磁盘格式,裸 容器格式和公共可见性将图像上传到图像服务 ,以便所有项目都可以访问它:

$ openstack image create "cirros" \

  --file cirros-0.4.0-x86_64-disk.img \

  --disk-format qcow2 --container-format bare \

  --public

+------------------+------------------------------------------------------+

| Field            | Value                                                |

+------------------+------------------------------------------------------+

| checksum         | 133eae9fb1c98f45894a4e60d8736619                     |

| container_format | bare                                                 |

| created_at       | 2015-03-26T16:52:10Z                                 |

| disk_format      | qcow2                                                |

| file             | /v2/images/cc5c6982-4910-471e-b864-1098015901b5/file |

| id               | cc5c6982-4910-471e-b864-1098015901b5                 |

| min_disk         | 0                                                    |

| min_ram          | 0                                                    |

| name             | cirros                                               |

| owner            | ae7a98326b9c455588edd2656d723b9d                     |

| protected        | False                                                |

| schema           | /v2/schemas/image                                    |

| size             | 13200896                                             |

| status           | active                                               |

| tags             |                                                      |

| updated_at       | 2015-03-26T16:52:10Z                                 |

| virtual_size     | None                                                 |

| visibility       | public                                               |

+------------------+------------------------------------------------------+

有关信息OpenStack的图像创建参数,请参阅创建或更新的图像(一瞥) 中。OpenStack User Guide

有关磁盘和容器的图像格式的信息,请参阅 磁盘和容器的图像格式 中。OpenStack Virtual Machine Image Guide

 注意

OpenStack动态生成ID,因此您将在示例命令输出中看到不同的值。

确认上传图片并验证属性:

$ openstack image list

+-------------------------------------+--------+--------+

| ID                                   | Name   | Status |

+--------------------------------------+--------+--------+

| 38047887-61a7-41ea-9b49-27987d5e8bb9 | cirros | active |

+--------------------------------------+--------+--------+

安装Placement:

前提条件¶

在安装和配置展示位置服务之前,必须创建数据库,服务凭证和API端点。

创建数据库¶

要创建数据库,请完成以下步骤:

使用数据库访问客户端以root用户身份连接到数据库服务器:

$ mysql -u root -p123456

创建placement数据库:

MariaDB [(none)]> CREATE DATABASE placement;

授予对数据库的适当访问权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \

  IDENTIFIED BY '123456';

用PLACEMENT_DBPASS合适的密码替换。

退出数据库访问客户端。

配置用户和端点¶

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

使用您选择的来创建展示位置服务用户PLACEMENT_PASS:

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

User Password:

Repeat User Password:

+---------------------+----------------------------------+

| Field               | Value                            |

+---------------------+----------------------------------+

| domain_id           | default                          |

| enabled             | True                             |

| id                  | fa742015a6494a949f67629884fc7ec8 |

| name                | placement                        |

| options             | {}                               |

| password_expires_at | None                             |

+---------------------+----------------------------------+

使用管理员角色将Placement用户添加到服务项目中:

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

 注意

该命令不提供任何输出。

在服务目录中创建Placement API条目:

$ openstack service create --name placement \

  --description "Placement API" placement

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | Placement API                    |

| enabled     | True                             |

| id          | 2d1a27022e6e4185b86adac4444c495f |

| name        | placement                        |

| type        | placement                        |

+-------------+----------------------------------+

创建Placement API服务端点:

 注意

根据您的环境,终结点的URL将随端口(可能是8780而不是8778)或主机名而有所不同。您有责任确定正确的URL。

$ openstack endpoint create --region RegionOne \

  placement public http://controller:8778

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 2b1b2637908b4137a9c2e0470487cbc0 |

| interface    | public                           |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 2d1a27022e6e4185b86adac4444c495f |

| service_name | placement                        |

| service_type | placement                        |

| url          | http://controller:8778           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  placement internal http://controller:8778

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 02bcda9a150a4bd7993ff4879df971ab |

| interface    | internal                         |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 2d1a27022e6e4185b86adac4444c495f |

| service_name | placement                        |

| service_type | placement                        |

| url          | http://controller:8778           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  placement admin http://controller:8778

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 3d71177b9e0f406f98cbff198d74b182 |

| interface    | admin                            |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | 2d1a27022e6e4185b86adac4444c495f |

| service_name | placement                        |

| service_type | placement                        |

| url          | http://controller:8778           |

+--------------+----------------------------------+

安装和配置的部件¶

 注意

默认配置文件因分发而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。另外,...配置摘要中的省略号()表示您应保留的潜在默认配置选项。

安装软件包:

# yum install openstack-placement-api

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

在该[placement_database]部分中,配置数据库访问:

[placement_database]

# ...

connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement

替换PLACEMENT_DBPASS为您为展示位置数据库选择的密码。

在[api]和[keystone_authtoken]部分中,配置身份服务访问:

[api]

# ...

auth_strategy = keystone

[keystone_authtoken]

# ...

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = placement

password = PLACEMENT_PASS

替换PLACEMENT_PASS为您placement在身份服务中为用户选择的密码 。

 注意

注释掉或删除此[keystone_authtoken] 部分中的任何其他选项。

 注意

的价值user_name,password,project_domain_name并 user_domain_name需要在你的梯形配置同步。

填充placement数据库:

# su -s /bin/sh -c "placement-manage db sync" placement

 注意

忽略此输出中的所有弃用消息。

最终确定安装¶

重新启动httpd服务:

# systemctl restart httpd

验证安装:

证展示位置服务的运行。

 注意

admin在进行这些调用之前,您将需要向身份服务进行身份验证 。有多种方法可以执行此操作,具体取决于系统的设置方式。如果没有admin-openrc文件,您将拥有类似的东西。

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

执行状态检查以确保一切正常:

$ placement-status upgrade check

+----------------------------------+

| Upgrade Check Results            |

+----------------------------------+

| Check: Missing Root Provider IDs |

| Result: Success                  |

| Details: None                    |

+----------------------------------+

| Check: Incomplete Consumers      |

| Result: Success                  |

| Details: None                    |

+----------------------------------+

该命令的输出将因版本而异。有关详细信息,请参见放置状态升级检查。

针对展示位置API运行一些命令:

安装osc-placement插件:

 注意

本示例使用PyPI和pip,但是如果您使用分发软件包,则可以从其存储库中安装该软件包。

$ pip install osc-placement

列出可用的资源类和特征:

$ openstack --os-placement-api-version 1.2 resource class list --sort-column name

+----------------------------+

| name                       |

+----------------------------+

| DISK_GB                    |

| IPV4_ADDRESS               |

| ...                        |

$ openstack --os-placement-api-version 1.6 trait list --sort-column name

+---------------------------------------+

| name                                  |

+---------------------------------------+

| COMPUTE_DEVICE_TAGGING                |

| COMPUTE_NET_ATTACH_INTERFACE          |

| ...                                   |

安装nova:

前提条件¶

在安装和配置Compute服务之前,必须创建数据库,服务凭证和API端点。

要创建数据库,请完成以下步骤:

使用数据库访问客户端以root用户身份连接到数据库服务器:

$ mysql -u root -p

创建nova_api,nova和nova_cell0数据库:

MariaDB [(none)]> CREATE DATABASE nova_api;

MariaDB [(none)]> CREATE DATABASE nova;

MariaDB [(none)]> CREATE DATABASE nova_cell0;

授予对数据库的适当访问权限:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \

  IDENTIFIED BY '123456';

用NOVA_DBPASS合适的密码替换。

退出数据库访问客户端。

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

创建计算服务凭据:

创建nova用户:

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

User Password:

Repeat User Password:

+---------------------+----------------------------------+

| Field               | Value                            |

+---------------------+----------------------------------+

| domain_id           | default                          |

| enabled             | True                             |

| id                  | 8a7dbf5279404537b1c7b86c033620fe |

| name                | nova                             |

| options             | {}                               |

| password_expires_at | None                             |

+---------------------+----------------------------------+

admin向nova用户添加角色:

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

 注意

该命令不提供任何输出。

创建nova服务实体:

$ openstack service create --name nova \

  --description "OpenStack Compute" compute

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | OpenStack Compute                |

| enabled     | True                             |

| id          | 060d59eac51b4594815603d75a00aba2 |

| name        | nova                             |

| type        | compute                          |

+-------------+----------------------------------+

创建Compute API服务端点:

$ openstack endpoint create --region RegionOne \

  compute public http://controller:8774/v2.1

+--------------+-------------------------------------------+

| Field        | Value                                     |

+--------------+-------------------------------------------+

| enabled      | True                                      |

| id           | 3c1caa473bfe4390a11e7177894bcc7b          |

| interface    | public                                    |

| region       | RegionOne                                 |

| region_id    | RegionOne                                 |

| service_id   | 060d59eac51b4594815603d75a00aba2          |

| service_name | nova                                      |

| service_type | compute                                   |

| url          | http://controller:8774/v2.1               |

+--------------+-------------------------------------------+

$ openstack endpoint create --region RegionOne \

  compute internal http://controller:8774/v2.1

+--------------+-------------------------------------------+

| Field        | Value                                     |

+--------------+-------------------------------------------+

| enabled      | True                                      |

| id           | e3c918de680746a586eac1f2d9bc10ab          |

| interface    | internal                                  |

| region       | RegionOne                                 |

| region_id    | RegionOne                                 |

| service_id   | 060d59eac51b4594815603d75a00aba2          |

| service_name | nova                                      |

| service_type | compute                                   |

| url          | http://controller:8774/v2.1               |

+--------------+-------------------------------------------+

$ openstack endpoint create --region RegionOne \

  compute admin http://controller:8774/v2.1

+--------------+-------------------------------------------+

| Field        | Value                                     |

+--------------+-------------------------------------------+

| enabled      | True                                      |

| id           | 38f7af91666a47cfb97b4dc790b94424          |

| interface    | admin                                     |

| region       | RegionOne                                 |

| region_id    | RegionOne                                 |

| service_id   | 060d59eac51b4594815603d75a00aba2          |

| service_name | nova                                      |

| service_type | compute                                   |

| url          | http://controller:8774/v2.1               |

+--------------+-------------------------------------------+

安装和配置的部件¶

 注意

默认配置文件因分发而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。另外,...配置摘要中的省略号()表示您应保留的潜在默认配置选项。

安装软件包:

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

  openstack-nova-novncproxy openstack-nova-scheduler

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

在此[DEFAULT]部分中,仅启用计算和元数据API:

[DEFAULT]

# ...

enabled_apis = osapi_compute,metadata

在[api_database]和[database]部分中,配置数据库访问权限:

[api_database]

# ...

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

[database]

# ...

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

替换NOVA_DBPASS为您为Compute数据库选择的密码。

在该[DEFAULT]部分中,配置RabbitMQ消息队列访问:

[DEFAULT]

# ...

transport_url = rabbit://openstack:RABBIT_PASS@controller

替换RABBIT_PASS为您在中为openstack 帐户选择的密码RabbitMQ。

在[api]和[keystone_authtoken]部分中,配置身份服务访问:

[api]

# ...

auth_strategy = keystone

[keystone_authtoken]

# ...

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = nova

password = NOVA_PASS

替换NOVA_PASS为您nova在身份服务中为用户选择的密码。

 注意

注释掉或删除此[keystone_authtoken] 部分中的任何其他选项。

在该[DEFAULT]部分中,配置my_ip选项以使用控制器节点的管理接口IP地址:

[DEFAULT]

# ...

my_ip = 10.0.0.11

在本[DEFAULT]节中,启用对网络服务的支持:

[DEFAULT]

# ...

use_neutron = true

firewall_driver = nova.virt.firewall.NoopFirewallDriver

 注意

默认情况下,Compute使用内部防火墙驱动程序。由于网络服务包含防火墙驱动程序,因此您必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序禁用计算防火墙驱动 程序。

配置/etc/nova/nova.conf的[neutron]部分。有关更多详细信息,请参阅网络服务安装指南

针对控制节点本身的配置:

前提条件¶

在配置OpenStack网络(中子)服务之前,必须创建数据库,服务凭证和API端点。

要创建数据库,请完成以下步骤:

使用数据库访问客户端以root用户身份连接到数据库服务器:

$ mysql -u root -p

创建neutron数据库:

MariaDB [(none)] CREATE DATABASE neutron;

授予对neutron数据库的适当访问权限,NEUTRON_DBPASS并用合适的密码代替 :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \

  IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \

  IDENTIFIED BY '123456';

退出数据库访问客户端。

来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

要创建服务凭证,请完成以下步骤:

创建neutron用户:

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

User Password:

Repeat User Password:

+---------------------+----------------------------------+

| Field               | Value                            |

+---------------------+----------------------------------+

| domain_id           | default                          |

| enabled             | True                             |

| id                  | fdb0f541e28141719b6a43c8944bf1fb |

| name                | neutron                          |

| options             | {}                               |

| password_expires_at | None                             |

+---------------------+----------------------------------+

admin向neutron用户添加角色:

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

 注意

该命令不提供任何输出。

创建neutron服务实体:

$ openstack service create --name neutron \

  --description "OpenStack Networking" network

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | OpenStack Networking             |

| enabled     | True                             |

| id          | f71529314dab4a4d8eca427e701d209e |

| name        | neutron                          |

| type        | network                          |

+-------------+----------------------------------+

创建网络服务API端点:

$ openstack endpoint create --region RegionOne \

  network public http://controller:9696

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 85d80a6d02fc4b7683f611d7fc1493a3 |

| interface    | public                           |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | f71529314dab4a4d8eca427e701d209e |

| service_name | neutron                          |

| service_type | network                          |

| url          | http://controller:9696           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  network internal http://controller:9696

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 09753b537ac74422a68d2d791cf3714f |

| interface    | internal                         |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | f71529314dab4a4d8eca427e701d209e |

| service_name | neutron                          |

| service_type | network                          |

| url          | http://controller:9696           |

+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \

  network admin http://controller:9696

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 1ee14289c9374dffb5db92a5c112fc4e |

| interface    | admin                            |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | f71529314dab4a4d8eca427e701d209e |

| service_name | neutron                          |

| service_type | network                          |

| url          | http://controller:9696           |

+--------------+----------------------------------+

配置网络选项¶

您可以使用选项1和2表示的两种体系结构之一来部署网络服务。

选项1部署了最简单的可能体系结构,该体系结构仅支持将实例附加到提供程序(外部)网络。没有自助服务(专用)网络,路由器或浮动IP地址。只有admin或其他特权用户可以管理提供商网络。

选项2通过支持将实例附加到自助服务网络的第3层服务增强了选项1。该demo非特权用户或其他非特权用户可以管理自助服务网络,包括在自助服务网络与提供商网络之间提供连接的路由器。此外,浮动IP地址使用来自外部网络(例如Internet)的自助服务网络提供了到实例的连接性。

自助服务网络通常使用覆盖网络。诸如VXLAN之类的覆盖网络协议包括其他标头,这些标头会增加开销并减少可用于有效负载或用户数据的空间。在不了解虚拟网络基础结构的情况下,实例尝试使用默认的1500字节以太网最大传输单元(MTU)发送数据包。网络服务会通过DHCP自动为实例提供正确的MTU值。但是,某些云映像不使用DHCP或忽略DHCP MTU选项,而是需要使用元数据或脚本进行配置。

选择2:

安装的组件¶

# yum install openstack-neutron openstack-neutron-ml2 \

  openstack-neutron-linuxbridge ebtables

配置服务器组件¶

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

在该[database]部分中,配置数据库访问:

[database]

# ...

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

替换NEUTRON_DBPASS为您为数据库选择的密码。

 注意

注释掉或删除connection此[database]部分中的任何其他选项 。

在该[DEFAULT]部分中,启用模块化第2层(ML2)插件,路由器服务和重叠的IP地址:

[DEFAULT]

# ...

core_plugin = ml2

service_plugins = router

allow_overlapping_ips = true

在该[DEFAULT]部分中,配置RabbitMQ 消息队列访问:

[DEFAULT]

# ...

transport_url = rabbit://openstack:RABBIT_PASS@controller

替换RABBIT_PASS为您为openstackRabbitMQ中的帐户选择的密码 。

在[DEFAULT]和[keystone_authtoken]部分中,配置身份服务访问:

[DEFAULT]

# ...

auth_strategy = keystone

[keystone_authtoken]

# ...

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = NEUTRON_PASS

替换NEUTRON_PASS为您neutron 在身份服务中为用户选择的密码。

 注意

注释掉或删除此[keystone_authtoken]部分中的任何其他选项 。

在[DEFAULT]和[nova]部分中,将网络配置为通知Compute网络拓扑更改:

[DEFAULT]

# ...

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

[nova]

# ...

auth_url = http://controller:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = NOVA_PASS

替换NOVA_PASS为您nova 在身份服务中为用户选择的密码。

在该[oslo_concurrency]部分中,配置锁定路径:

[oslo_concurrency]

# ...

lock_path = /var/lib/neutron/tmp

配置模块化层2(ML2)插件¶

ML2插件使用Linux桥接器机制为实例构建第2层(桥接和交换)虚拟网络基础架构。

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

在该[ml2]部分中,启用平面,VLAN和VXLAN网络:

[ml2]

# ...

type_drivers = flat,vlan,vxlan

在该[ml2]部分中,启用VXLAN自助服务网络:

[ml2]

# ...

tenant_network_types = vxlan

在本[ml2]节中,启用Linux桥接器和第2层填充机制:

[ml2]

# ...

mechanism_drivers = linuxbridge,l2population

 警告

配置ML2插件后,删除该type_drivers选项中的值 可能会导致数据库不一致。

 注意

Linux网桥代理仅支持VXLAN覆盖网络。

在该[ml2]部分中,启用端口安全扩展驱动程序:

[ml2]

# ...

extension_drivers = port_security

在本[ml2_type_flat]节中,将提供者虚拟网络配置为平面网络:

[ml2_type_flat]

# ...

flat_networks = provider

在本[ml2_type_vxlan]节中,为自助服务网络配置VXLAN网络标识符范围:

[ml2_type_vxlan]

# ...

vni_ranges = 1:1000

在本[securitygroup]节中,启用ipset以提高安全组规则的效率:

[securitygroup]

# ...

enable_ipset = true

配置Linux网桥代理¶

Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础结构并处理安全组。

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

在本[linux_bridge]节中,将提供者虚拟网络映射到提供者物理网络接口:

[linux_bridge]

physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME

替换PROVIDER_INTERFACE_NAME为基础提供商物理网络接口的名称。有关 更多信息,请参见主机网络。

在本[vxlan]节中,启用VXLAN覆盖网络,配置处理覆盖网络的物理网络接口的IP地址,并启用第2层填充:

[vxlan]

enable_vxlan = true

local_ip = OVERLAY_INTERFACE_IP_ADDRESS

l2_population = true

替换OVERLAY_INTERFACE_IP_ADDRESS为处理覆盖网络的基础物理网络接口的IP地址。示例体系结构使用管理接口将流量隧道传输到其他节点。因此,请替换OVERLAY_INTERFACE_IP_ADDRESS为控制器节点的管理IP地址。有关更多信息,请参见 主机网络。

在该[securitygroup]部分中,启用安全组并配置Linux网桥iptables防火墙驱动程序:

[securitygroup]

# ...

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

通过验证以下所有sysctl值是否设置为确保Linux操作系统内核支持网桥过滤器1:

net.bridge.bridge-nf-call-iptables

net.bridge.bridge-nf-call-ip6tables

要启用网络桥接器支持,通常br_netfilter需要加载内核模块。查看操作系统的文档,以获取有关启用此模块的更多详细信息。

配置第3层剂¶

第3层(L3)代理为自助式虚拟网络提供路由和NAT服务。

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

在该[DEFAULT]部分中,配置Linux网桥接口驱动程序和外部网桥:

[DEFAULT]

# ...

interface_driver = linuxbridge

配置DHCP代理¶

DHCP代理为虚拟网络提供DHCP服务。

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

在本[DEFAULT]节中,配置Linux桥接口驱动程序Dnsmasq DHCP驱动程序,并启用隔离的元数据,以便提供商网络上的实例可以通过网络访问元数据:

[DEFAULT]

# ...

interface_driver = linuxbridge

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_meta

在该[vnc]部分中,将VNC代理配置为使用控制器节点的管理接口IP地址:

[vnc]

enabled = true

# ...

server_listen = $my_ip

server_proxyclient_address = $my_ip

在该[glance]部分中,配置图像服务API的位置:

[glance]

# ...

api_servers = http://controller:9292

在该[oslo_concurrency]部分中,配置锁定路径:

[oslo_concurrency]

# ...

lock_path = /var/lib/nova/tmp

在该[placement]部分中,配置对展示位置服务的访问权限:

[placement]

# ...

region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller:5000/v3

username = placement

password = PLACEMENT_PASS

替换PLACEMENT_PASS为placement在安装Placement时为服务用户 选择的密码 。注释掉或删除此[placement]部分中的任何其他选项。

填充nova-api数据库:

# su -s /bin/sh -c "nova-manage api_db sync" nova

 注意

忽略此输出中的所有弃用消息。

注册cell0数据库:

# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

创建cell1单元格:

# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

109e1d4b-536a-40d0-83c6-5f121b82b650

填充nova数据库:

# su -s /bin/sh -c "nova-manage db sync" nova

验证nova cell0和cell1是否正确注册:

# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

+-------+--------------------------------------+

| Name  | UUID                                 |

+-------+--------------------------------------+

| cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |

| cell0 | 00000000-0000-0000-0000-000000000000 |

+-------+--------------------------------------+

最终确定安装¶

启动Compute服务并将其配置为在系统启动时启动:

 注意

nova-consoleauth自18.0.0(Rocky)起不推荐使用,并将在以后的版本中删除。每个单元应部署控制台代理。如果执行全新安装(而非升级),则可能不需要安装nova-consoleauth 服务。有关workarounds.enable_consoleauth详细信息,请参见 。

# systemctl enable openstack-nova-api.service \

  openstack-nova-consoleauth openstack-nova-scheduler.service \

  openstack-nova-conductor.service openstack-nova-novncproxy.service

# systemctl start openstack-nova-api.service \

  openstack-nova-consoleauth openstack-nova-scheduler.service \

  openstack-nova-conductor.service openstack-nova-novncproxy.service

1f6a9e61-23e9-4788-83ce-5dc5dca20cf0

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

注意

必须安装Nova计算服务才能完成此步骤。有关更多详细信息,请参阅docs网站“ 安装指南部分 下的计算安装指南 

    • 编辑/etc/nova/nova.conf文件并执行以下操作:
      • 在该[neutron]部分中,配置访问参数,启用元数据代理,并配置机密:
        [neutron]
        # ...
        url = http://controller:9696
        auth_url = http://controller:5000
        auth_type = password
        project_domain_name = default
        user_domain_name = default
        region_name = RegionOne
        project_name = service
        username = neutron
        password = NEUTRON_PASS
        service_metadata_proxy = true
        metadata_proxy_shared_secret = METADATA_SECRET

        替换NEUTRON_PASS为您neutron 在身份服务中为用户选择的密码。
        替换METADATA_SECRET为为元数据代理选择的机密。

最终确定安装

    • 网络服务初始化脚本需要/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
    • 填充数据库:
      # 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

       
      注意
      由于该脚本需要完整的服务器和插件配置文件,因此稍后会在网络中填充数据库。
    • 重新启动Compute API服务:
      # 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
      对于网络选项2,还启用并启动第3层服务:
      # systemctl enable neutron-l3-agent.service
      # systemctl start neutron-l3-agent.service

来自 <https://docs.openstack.org/neutron/stein/install/controller-install-rdo.html>

CREATE DATABASE nova_api;

CREATE DATABASE nova;

 CREATE DATABASE nova_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';

    • 在该[vnc]部分中,启用和配置远程控制台访问:
      [vnc]
      # ...
      enabled = true
      server_listen = 0.0.0.0
      server_proxyclient_address = $my_ip
      novncproxy_base_url = http://controller:6080/vnc_auto.html

      服务器组件侦听所有IP地址,代理组件仅侦听计算节点的管理接口IP地址。基本URL指示可以使用Web浏览器访问此计算节点上的实例的远程控制台的位置。
       
      注意
      如果用于访问远程控制台的Web浏览器驻留在无法解析controller主机名的主机上,则必须替换 controller为控制器节点的管理接口IP地址。
    • 在该[glance]部分中,配置图像服务API的位置:
      [glance]
      # ...
      api_servers = http://controller:9292
    • 在该[oslo_concurrency]部分中,配置锁定路径:
      [oslo_concurrency]
      # ...
      lock_path = /var/lib/nova/tmp
    • 在该[placement]部分中,配置Placement API
      [placement]
      # ...
      region_name = RegionOne
      project_domain_name = Default
      project_name = service
      auth_type = password
      user_domain_name = Default
      auth_url = http://controller:5000/v3
      username = placement
      password = PLACEMENT_PASS

      替换PLACEMENT_PASS为您placement在身份服务中为用户选择的密码 。注释掉该[placement]部分中的所有其他选项。

最终确定安装

    • 确定您的计算节点是否支持虚拟机的硬件加速:
      $ egrep -c '(vmx|svm)' /proc/cpuinfo

      如果此命令返回值,则您的计算节点支持硬件加速,通常不需要其他配置。one or greater
      如果此命令返回值zero,则您的计算节点不支持硬件加速,并且您必须配置libvirt为使用QEMU而不是KVM
    • 编辑文件中的[libvirt]部分,/etc/nova/nova.conf如下所示:
      [libvirt]
      # ...
      virt_type = qemu
    • 启动Compute服务及其相关性,并将其配置为在系统启动时自动启动:
      # systemctl enable libvirtd.service openstack-nova-compute.service
      # systemctl start libvirtd.service openstack-nova-compute.service

注意

如果nova-compute服务无法启动,请检查 /var/log/nova/nova-compute.log。该错误消息可能表明控制器节点上的防火墙阻止访问端口5672。将防火墙配置为打开控制器节点上的端口5672并重新启动 计算节点上的服务。AMQP server on controller:5672 is unreachablenova-compute

将计算节点添加到单元数据库中

重要

控制器节点上运行以下命令。

    1. 获取管理员凭据以启用仅管理员的CLI命令,然后确认数据库中有计算主机:
      $ . admin-openrc

      $ openstack compute service list --service nova-compute
      +----+-------+--------------+------+-------+---------+----------------------------+
      | ID | Host  | Binary       | Zone | State | Status  | Updated At                 |
      +----+-------+--------------+------+-------+---------+----------------------------+
      | 1  | node1 | nova-compute | nova | up    | enabled | 2017-04-14T15:30:44.000000 |
      +----+-------+--------------+------+-------+---------+----------------------------+
    2. 发现计算主机:
      # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

      Found 2 cell mappings.
      Skipping cell0 since it does not contain hosts.
      Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
      Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
      Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
      Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3

       
      注意
      添加新的计算节点时,必须在控制器节点上运行以注册这些新的计算节点。另外,您可以在中设置适当的时间间隔 nova-manage cell_v2 discover_hosts/etc/nova/nova.conf
      [scheduler]
      discover_hosts_in_cells_interval = 300

来自 <https://docs.openstack.org/nova/stein/install/compute-install-rdo.html>

signed_cookies

systemctl restart neutron-server.service \

  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \

  neutron-metadata-agent.service

systemctl restart openstack-nova-api.service \

  openstack-nova-consoleauth openstack-nova-scheduler.service \

  openstack-nova-conductor.service openstack-nova-novncproxy.service

openstack network create --project=General

 

网络ID:3fdc50d5-0252-41e8-ab05-3eff5f4fbc92

Project ID:165d357a8c5c43f4b1f2ac64d4a64b28

 

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \

  IDENTIFIED BY '123456';

 GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \

  IDENTIFIED BY '123456';

 

openstack server create --flavor Flavor --image cirros \

  --nic net-id=354dff14-d253-45ad-8677-efda1ece2fa9 --security-group default \

   VM002

systemctl status openstack-nova-api.service \

   openstack-nova-scheduler.service \

  openstack-nova-conductor.service openstack-nova-novncproxy.service

 

keystone-manage bootstrap --bootstrap-password 123456 \

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

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

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

  --bootstrap-region-id RegionOne

 

 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:5000/v3

 export OS_IDENTITY_API_VERSION=3

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(桌面运维)