[ English | Indonesia | русский ]

容器管理

使用 Ansible,OpenStack 的安装过程完全通过 YAML 编写的 playbook 自动化。安装完成后,可以通过 playbook 配置的设置进行更改和修改。服务和容器可以根据特定的环境需求进行调整。通过调整容器内的服务,或添加新的部署组来实现服务扩展。在完成更改和修改后,如果需要,也可以销毁容器。

扩展单个服务

单个 OpenStack 服务和其他开源项目服务在容器内运行。可以通过修改 /etc/openstack_deploy/openstack_user_config.yml 文件来扩展这些服务。

  1. 导航到 /etc/openstack_deploy/openstack_user_config.yml 文件。

  2. 访问配置文件的部署组部分。在部署组名称下方,添加一个亲和性值行来扩展 OpenStack 服务中的容器

    infra_hosts:
      infra1:
        ip: 10.10.236.100
        # Rabbitmq
        affinity:
          galera_container: 1
          rabbit_mq_container: 2
    

    在此示例中,galera_container 的容器值为一。实际上,任何不需要调整的容器都可以保持默认值一,并且不应将其调整到高于或低于一的值。

    默认情况下,每个容器的亲和性值设置为一。对于当扩展其他所需服务时,特定容器内的 OpenStack 服务将不需要的情况,请将亲和性值调整为零。

  3. affinity 配置下列出的容器数量更新为所需数量。上面的示例将 galera_container 设置为一,将 rabbit_mq_container 设置为二,从而扩展 RabbitMQ 服务,但 Galera 服务保持不变。

  4. 更改配置后,运行适当的 playbook 命令以创建新的容器,并安装适当的服务。

    例如,从 openstack-ansible/playbooks 仓库运行 **openstack-ansible lxc-containers-create.yml rabbitmq-install.yml** 命令,以完成上述示例中描述的扩展过程

    $ cd openstack-ansible/playbooks
    $ openstack-ansible lxc-containers-create.yml rabbitmq-install.yml
    

销毁并重新创建容器

解决某些问题可能需要销毁一个容器,并从头开始重建该容器。可以使用 lxc-containers-destroy.ymllxc-containers-create.yml 命令来销毁和重新创建容器。这些 Ansible 脚本位于 openstack-ansible/playbooks 仓库中。

  1. 导航到 openstack-ansible 目录。

  2. 运行 **openstack-ansible lxc-containers-destroy.yml** 命令,指定目标容器和要销毁的容器。

    $ openstack-ansible lxc-containers-destroy.yml --limit "CONTAINER_NAME"
    $ openstack-ansible lxc-containers-create.yml --limit "CONTAINER_NAME"
    
  3. CONTAINER_NAME 替换为目标容器。