跳转到主要内容

tripleo-upgrade - 一个用于升级和更新TripleO部署的Ansible角色

项目描述

tripleo-upgrade

此角色旨在为基于TripleO的部署提供一个统一的升级工具。

要求

此角色需要

  • 一个Ansible库存文件,其中包含可达的undercloud和overcloud节点

  • 库存文件中的节点根据其角色分组(例如,计算节点是“计算”组的成员)

  • 包含要升级的软件包的存储库已经安装在undercloud和overcloud节点上(或者,对于overcloud,定义一个upgrade_init_command变量)

  • 初始overcloud部署命令放置在由overcloud_deploy_script变量设置的路径中的脚本文件中。每个选项/环境文件应放在单独的新行上,例如

    source ~/stackrc
    export THT=/usr/share/openstack-tripleo-heat-templates/
    
    openstack overcloud deploy --templates $THT \
    -r ~/openstack_deployment/roles/roles_data.yaml \
    -e $THT/environments/network-isolation.yaml \
    -e $THT/environments/network-management.yaml \
    -e $THT/environments/storage-environment.yaml \
    -e ~/openstack_deployment/environments/nodes.yaml \
    -e ~/openstack_deployment/environments/network-environment.yaml \
    -e ~/openstack_deployment/environments/disk-layout.yaml \
    -e ~/openstack_deployment/environments/neutron-settings.yaml \
    --log-file overcloud_deployment.log &> overcloud_install.log

角色变量

以下列出了可用变量。

仅创建升级脚本,不运行它们

upgrade_noop: false

仅创建更新脚本,不运行它们

update_noop: false

运行undercloud升级

undercloud_upgrade: false

运行容器化undercloud升级

containerized_undercloud_upgrade: false

运行overcloud升级

overcloud_upgrade: false

运行undercloud更新

undercloud_update: false

运行overcloud更新

overcloud_update: false

更新后验证overcloud

overcloud_images_validate: false

初始overcloud部署脚本的路径

overcloud_deploy_script: "~/overcloud_deploy.sh"

此角色将要生成的undercloud升级脚本的路径

undercloud_upgrade_script: "~/undercloud_upgrade.sh"

此角色将要生成的用于可组合Docker升级步骤的升级脚本的路径

overcloud_composable_upgrade_script: "~/composable_docker_upgrade.sh"

此角色将要生成的用于收敛Docker升级步骤的升级脚本的路径

overcloud_converge_upgrade_script: "~/converge_docker_upgrade.sh"

undercloud凭证文件的路径

undercloud_rc: "~/stackrc"

overcloud凭证文件的路径

overcloud_rc: "~/overcloudrc"

允许用户在升级过程中应用已知问题的解决方案。应通过 –extra-vars 传递用于解决方案的补丁/命令列表,并且它应包括 undercloud/overcloud 解决方案的字典。

upgrade_workarounds: false

当部署由 tripleo quickstart 完成,设置为 true。

use_oooq: false

在开始升级前启动一个实例,设置为 true。这在升级期间运行测试很有用,例如实时迁移或浮动 IP 连接检查。

workload_launch: false

当更新/升级完成后,设置为 true 以清理之前启动的工作负载。

workload_cleanup: false

提供实例连接浮动 IP 的外部网络名称。这提供了外部连接,需要事先存在,由用户创建。

external_network_name: "public"

用于工作负载实例的镜像的 URL。

workload_image_url: "https://download.cirros-cloud.net/0.6.0/cirros-0.6.0-x86_64-disk.img"

分配给工作负载实例的内存量。

workload_memory: "512"

在工作负载创建时使用 SRIOV PF 端口,设置为 true。注意,这与 cirros 镜像不兼容。

workload_sriov: false

在 TripleO CI 作业中运行角色时设置为 true。通过跳过重启和 ssh 杀死任务,它避免了与 undercloud 失去连接。

tripleo_ci: false

Bash 命令,定义了在 overcloud 升级期间要考虑的自定义升级 init。

upgrade_init_command: |
    sudo tripleo-repos -b pike current

设置为 true 以获取多细胞更新。它改变了 oc_roles_hosts 的计算方式。

update_cell: false

设置为 true 时,在 undercloud 添加一个带有附加 fip 的 vm 并监视从 undercloud 的 ping。如果 ping 丢失时间高于 loss_threshold 秒或 loss_threshold_percent 百分比,则失败。

l3_agent_connectivity_check: false

对于更新运行任务,我们默认设置 0 秒的丢失阈值。

update_loss_threshold: 0

ping 丢失的默认时间为 60 秒。

loss_threshold: 60

丢失阈值百分比的安全百分比检查。

loss_threshold_percent: 1

设置为 true 以启用验证。

updates_validations: true

依赖关系

无。

示例 Playbook

在 tests/test.yml 中提供了一个示例 playbook。

- hosts: undercloud
  gather_facts: true
  become: true
  become_method: sudo
  become_user: stack
  roles:
    - tripleo-upgrade

与 tripleo Quickstart 一起使用

在 OOOQ 成功部署后,可以使用此示例 playbook(从 ./tests/oooq-test.yaml 复制)创建必要的脚本。

---
- hosts: undercloud
  gather_facts: true
  become: true
  become_method: sudo
  become_user: stack
  roles:
  - { role: tripleo-upgrade, use_oooq: 'true'}

然后按如下方式运行它(调整路径以适应您的 oooq 特定路径)

ANSIBLE_SSH_ARGS="-F $(pwd)/ssh.config.ansible" \
  ANSIBLE_CONFIG=$PWD/ansible.cfg \
  ansible-playbook -i hosts -vvv tripleo-upgrade/tests/oooq-test.yaml
这将只创建文件(而不运行实际的升级)
  • undercloud_upgrade.sh

  • composable_docker_upgrade.sh

  • overcloud-compute-*_upgrade_pre.sh

  • overcloud-compute-*_upgrade.sh

  • overcloud-compute-*_upgrade_post.sh

  • converge_docker_upgrade.sh

使用正确的参数。

与 InfraRed 一起使用

tripleo-upgrade 作为 InfraRed 插件预安装。要手动安装,应使用以下 InfraRed 命令

infrared plugin add tripleo-upgrade
# add with a specific revision / branch
infrared plugin add --revision stable/rocky tripleo-upgrade

在 InfraRed overcloud 部署成功后,需要运行以下步骤以升级部署

符号链接角色路径

ln -s $(pwd)/plugins $(pwd)/plugins/tripleo-upgrade/infrared_plugin/roles

设置 undercloud 升级仓库

infrared tripleo-undercloud \
    --upgrade yes \
    --mirror ${mirror_location} \
    --ansible-args="tags=upgrade_repos"

设置 undercloud 更新仓库

infrared tripleo-undercloud \
    --update-undercloud yes \
    --mirror ${mirror_location} \
    --build latest \
    --version 12 \
    --ansible-args="tags=upgrade_repos"

升级 undercloud

infrared tripleo-upgrade \
    --undercloud-upgrade yes

更新 undercloud

infrared tripleo-upgrade \
    --undercloud-update yes

设置 overcloud 升级仓库

infrared tripleo-overcloud \
    --deployment-files virt \
    --upgrade yes \
    --mirror ${mirror_location} \
    --ansible-args="tags=upgrade_collect_info,upgrade_repos"

设置 overcloud 更新仓库/容器

infrared tripleo-overcloud \
    --deployment-files virt \
    --ocupdate True \
    --build latest \
    --ansible-args="tags=update_collect_info,update_undercloud_validation,update_repos,update_prepare_containers"

升级 overcloud

infrared tripleo-upgrade \
    --overcloud-upgrade yes

更新 overcloud

infrared tripleo-upgrade \
    --overcloud-update yes

高级升级选项

操作员现在可以通过使用 roles_upgrade_order 变量来指定升级角色的顺序。

指定 Controller 角色作为第一优先级,然后是所有其他角色,这是操作员的 责任

roles_upgrade_order 变量期望角色由 ;(分号) 分隔,例如

infrared tripleo-upgrade \
    --overcloud-upgrade yes \
    -e 'roles_upgrade_order=ControllerOpenstack;Database;Messaging'

将升级 ControllerOpenstack 组,然后是数据库,最后是消息传递。

可以并行升级多个角色,为了实现这一点,它们应该由 ,(逗号) 分隔,例如

infrared tripleo-upgrade \
    --overcloud-upgrade yes \
    -e 'roles_upgrade_order=ControllerOpenstack,Database;Messaging'

将并行升级 Controller 和数据库组,然后继续进行消息传递。

从 undercloud 手动运行角色

可以通过以下步骤从 undercloud 手动运行此角色

注意:在开始升级过程之前,请确保 undercloud 和 overcloud 节点都设置了升级包的仓库

克隆此仓库

git clone https://opendev.org/openstack/tripleo-upgrade

设置 ansible 角色路径:

ANSIBLE_ROLES_PATH=$(pwd)

创建清单文件:

printf "[undercloud]\nlocalhost ansible_connection=local" > hosts

运行包含此角色的playbook:

ansible-playbook -i hosts tripleo-upgrade/tests/test.yml

许可证

Apache License 2.0

作者信息

这是一个可选部分,角色作者可以在此处包含联系方式或网站(不允许HTML)。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

tripleo-upgrade-10.0.0.tar.gz (88.7 kB 查看哈希值)

上传时间

构建分布

tripleo_upgrade-10.0.0-py2.py3-none-any.whl (115.2 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面