【问题标题】:What is the proper way to remove a previously deployed service from kolla-ansible从 kolla-ansible 中删除以前部署的服务的正确方法是什么
【发布时间】:2020-11-20 13:14:18
【问题描述】:

我最近部署了一个 kolla-ansible stable/victoria,其中包含几个我想尝试但不再需要的服务(指定、octavia 等)删除这些服务的“正确”方法是什么?我尝试过:

  • kolla-ansible -i multinode reconfigure --tags <services>
  • kolla-ansible -i multinode reconfigure --tags common,haproxy,<services>
  • kolla-ansible -i multinode deploy --tags <services>

在每种情况下,我都会留下仍在运行的容器、剩余的配置工件 (/etc/kolla/.*.conf) 和 haproxy 配置文件。

【问题讨论】:

    标签: ansible openstack


    【解决方案1】:

    我知道您发布此问题已经有一段时间了,但我最近遇到了同样的问题,并且在任何地方都没有找到有关此问题的文档。

    即使您将enable_<service> 设置为 no,reconfigure 和 deploy 也不会执行任何操作的原因是,Ansible playbook 仅在对应的 enable 为 true 时才运行涉及给定服务的任务。如果您查看使用 --tags 运行的命令的输出,您会发现 Ansible 并没有真正对您禁用的服务做任何事情。

    由于 Kolla-Ansible 使用容器部署所有内容,我发现大多数服务都可以通过以下操作轻松删除:

    • 停止并删除所有运行待移除服务的容器
    • 删除这些容器的卷
    • 删除配置和日志文件(分别在 /etc/kolla 和 /var/log/kolla 下)
    • 删除您要删除的服务使用的数据库
    • 您可以为要删除的每个服务删除 HAproxy 配置文件。

    我知道这可能不符合使用 Ansible 自动化 Openstack 管理的精神,但我已经这样做了几次,没有太多问题。我会避免删除 Keystone、Neutron、Nova、Mariadb 或 Rabbitmq 之类的核心服务,因为如果你这样做,你就会破坏整个 Openstack 部署。

    您可以在运行容器的主机上运行 cleanup-hostcleanup-containers 脚本,但这些脚本会删除与 Kolla-Ansible 相关的所有内容。如果要删除特定服务,则可以修改这些脚本。我知道 Nova、Neutron、Openvswitch 和 Zun 等某些服务也会重新配置主机以进行网络连接,但我无法找到一种可靠的方法来恢复这些更改,并且 cleanup-host/cleanup-containers 无法解决这些问题任何一个。如果您停止并删除 openvswitch 容器,Openvswitch 的接口会在下次主机重新启动时消失,这对您来说也可能是一种可行的方法。请记住,Kolla-Ansible 会持续加载 openvswitch 内核模块,因此您可能还想删除它。

    【讨论】:

      【解决方案2】:

      我最近也在为这种情况而苦苦挣扎,我发现了这些:

      https://bugs.launchpad.net/kolla-ansible/+bug/1874044

      https://review.opendev.org/c/openstack/kolla-ansible/+/504592

      很遗憾,似乎工作已经开始了一段时间,但还没有大的进展。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-16
        • 2011-12-08
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多