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 节点都设置了升级包的仓库
- 克隆此仓库
- 设置 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
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
tripleo-upgrade-10.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89274101aaa157ecc017b81505082c03261ea0707571beff71b8b7cee002bc5e |
|
MD5 | 6de6b8492bf5260211a31edc7116a9f9 |
|
BLAKE2b-256 | 14fac423c0b95ba3c823714a061153db2e038aa8f1b2e7570ea7abe333b219b8 |
tripleo_upgrade-10.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5c4ad710c13d0d4f230af1c9f0395d44808fa01741fce2ab23a0f9ea983ac571 |
|
MD5 | afde6594773fd1cf50b2c4d6763622af |
|
BLAKE2b-256 | 81736e89666e9cae0e6cd7d601b2b1904a977100af63b60b5d8df82bce2e7553 |