虚拟环境¶
Python 虚拟环境 提供了一种机制,用于将 python 包与系统 site 包和其他虚拟环境隔离。 Kolla-ansible 通过在 Docker 容器中部署服务,在很大程度上避免了这个问题,但是需要在 Ansible 控制主机和目标主机上安装一些 python 依赖项。
Kolla Ansible 支持 支持的操作系统 提供的默认 Python 3 版本。 更多信息请参见 测试运行时。
Ansible 控制主机¶
kolla-ansible python 包及其依赖项可以安装在 Ansible 控制主机上的 python 虚拟环境中。 例如
python3 -m venv /path/to/venv
source /path/to/venv/bin/activate
pip install -U pip
pip install kolla-ansible
pip install 'ansible>=6,<8'
deactivate
要使用虚拟环境,首先需要激活它
source /path/to/venv/bin/activate
(venv) kolla-ansible --help
必要时可以停用虚拟环境
(venv) deactivate
请注意,在 Ansible 控制主机上使用虚拟环境并不意味着将在目标主机上使用虚拟环境来执行 Ansible 模块。
目标主机¶
Ansible 支持通过 ansible_python_interpreter 变量在 python 虚拟环境中远程执行模块。 可以将其配置为虚拟环境中安装的 python 解释器的路径。 例如
ansible_python_interpreter: /path/to/venv/bin/python
请注意,ansible_python_interpreter 不能进行模板化处理。
Kolla-ansible 提供了在 bootstrap-servers 命令中作为一部分在目标主机上创建 python 虚拟环境的支持。 虚拟环境的路径通过 virtualenv 变量配置,并且对 site-packages 的访问通过 virtualenv_site_packages 控制。 通常我们需要启用从这个虚拟环境中对系统 site-packages 的使用,以支持使用 yum、apt 和 selinux 等模块,这些模块在 PyPI 上不可用。
在执行 bootstrap-servers 以外的 kolla-ansible 命令时,变量 ansible_python_interpreter 应设置为安装在 virtualenv 中的 python 解释器。