配置部署¶
Ansible 引用了一些包含强制和可选配置指令的文件。在运行 Ansible playbook 之前,请修改这些文件以定义目标环境。配置任务包括
目标主机网络,用于定义桥接接口和网络。
要在其上安装软件的目标主机列表。
OpenStack Networking (neutron) 的虚拟和物理网络关系。
所有服务的密码。
初始环境配置¶
OpenStack-Ansible (OSA) 依赖于各种文件,这些文件用于为 Ansible 构建清单。在部署主机上执行以下配置。
将
/opt/openstack-ansible/etc/openstack_deploy目录的内容复制到/etc/openstack_deploy目录。# cp -a /opt/openstack-ansible/etc/openstack_deploy /etc/openstack_deploy
切换到
/etc/openstack_deploy目录。将
openstack_user_config.yml.example文件复制到openstack_user_config.yml。# cp openstack_user_config.yml.example openstack_user_config.yml
查看
openstack_user_config.yml文件并进行更改,以部署您的 OpenStack 环境。查看
user_variables.yml文件以配置全局和角色特定的部署选项。该文件包含一些示例变量和注释,但您可以在每个角色的特定文档中获取完整的变量列表。注意
一个重要的变量是
install_method,它配置了 OpenStack 服务的安装方法。服务可以从源代码(默认)或从发行版软件包部署。基于源代码的部署更接近于一个原生的 OpenStack 安装,并允许进行更多的调整和自定义。另一方面,基于发行版的部署通常提供一个经过发行版验证的软件包组合。但是,这意味着更新发布的频率较低且可能存在延迟。此外,此方法提供的部署自定义机会较少,并且仅受选定的服务支持。install_method变量在初始部署期间设置,并且 不应 更改它,因为 OpenStack-Ansible 无法从一种安装方法转换为另一种安装方法。因此,在做出决定之前,重要的是根据每种方法的优缺点来判断您的需求。
在 openstack_user_config.yml 文件中的配置定义了哪些主机运行 OpenStack-Ansible 部署的容器和服务。例如,列在 shared-infra_hosts 部分中的主机运行许多您的 OpenStack 环境所需的共享服务的容器。这些服务包括数据库、Memcached 和 RabbitMQ。其他几种主机类型包含其他类型的容器,所有这些都列在 openstack_user_config.yml 文件中。
一些服务,例如 glance、heat、horizon 和 nova-infra,未在示例文件中单独列出,因为它们包含在 os-infra 主机中。如果您想以特定方式扩展,可以指定 image-hosts 或 dashboard-hosts。
有关示例,请参阅我们的 用户指南
有关如何生成清单的信息,包括环境配置和变量优先级,请参阅我们的 参考指南 中的清单部分。
配置目标主机¶
修改 /etc/openstack_deploy/openstack_user_config.yml 文件以配置目标主机。
不要将相同的 IP 地址分配给不同的目标主机名。可能会出现意外结果。每个 IP 地址和主机名必须是一对匹配项。要在多个角色中使用相同的主机,例如基础设施和网络,请在每个部分中指定相同的主机名和 IP。
除非另有说明,否则将 *_IP_ADDRESS 替换为每个目标主机上 br-mgmt 容器管理桥的 IP 地址。
注意
如果通过与 br-mgmt 接口不同的网络进行 SSH 访问主机,请参阅 指南。
在
shared-infra_hosts部分配置至少三个基础设施目标主机shared-infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ip: INFRA02_IP_ADDRESS infra03: ip: INFRA03_IP_ADDRESS infra04: ...
在
identity_hosts部分配置至少一个 keystone 目标主机identity_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ...
配置负责部署中网络相关角色的适当主机集
network-infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ... network-northd_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ...
在使用 OVN 部署 OpenStack 时,根据您的网络架构,正确配置
network-gateway_hosts至关重要。有两种典型的场景场景 1:计算节点上的网关的 DVR
network-gateway_hosts: compute01: ip: COMPUTE01_IP_ADDRESS compute02: ...
场景 2:独立的网络节点
network-gateway_hosts: network01: ip: NETWORK01_IP_ADDRESS network02: ...
在
compute_hosts部分配置至少一个计算目标主机compute_hosts: compute01: ip: COMPUTE01_IP_ADDRESS compute02: ...
在
repo-infra_hosts部分配置至少一个仓库目标主机repo-infra_hosts: infra01: ip: INFRA01_IP_ADDRESS infra02: ip: INFRA02_IP_ADDRESS infra03: ip: INFRA03_IP_ADDRESS infra04: ...
仓库通常位于一个或多个基础设施主机上。
可选地在
storage_hosts部分配置存储主机storage_hosts: storage01: ip: STORAGE01_IP_ADDRESS storage02: ...
每个存储主机需要额外的配置来定义后端驱动程序。默认配置包括一个可选的存储主机。要不安装存储主机,请注释掉以
storage_hosts:行开头的段落。
安装附加服务¶
要安装附加服务,etc/openstack_deploy/conf.d 中的文件提供了显示要使用的正确主机组的示例。要添加另一个服务,请添加主机组,分配主机到它,然后执行 playbook。
高级服务配置¶
OpenStack-Ansible 有许多选项可用于服务的先进配置。每个角色的文档提供了有关可用选项的信息。
重要提示
此步骤对于将 OpenStack-Ansible 定制化到您的需求至关重要,通常被新的部署者忽略。如果您想要定制的云,请查看每个角色的文档、用户指南和参考。
基础设施服务角色¶
OpenStack 服务角色¶
其他角色¶
配置服务凭据¶
在 /etc/openstack_deploy/user_secrets.yml 文件中配置每个服务的凭据。请考虑使用 Ansible Vault 功能来提高安全性,方法是加密包含凭据的任何文件。您可以使用 osa_ops.encrypt_secrets collection 来自动化简化密钥的加密和进一步管理过程。
调整这些文件的权限,以限制非特权用户对其的访问。
keystone_auth_admin_password 选项配置 OpenStack API 和 Dashboard 访问的 admin 租户密码。
我们建议使用 pw-token-gen.py 脚本为包含服务凭据的每个文件中的变量生成随机值
# cd /opt/openstack-ansible
# ./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml
要重新生成现有密码,请添加 --regen 标志。
有关如何轮换密码的信息,请参阅 密码轮换 文档。