如何使用Terraform Local-Exe Provisioner在VirtualEnv中运行Ansible

时间:2019-08-29 09:04:39

标签: python docker ansible terraform

我相信标题描述了一切。 :) 我的剧本看起来很简单:

- hosts: all
  become: yes
  roles:
    - geerlingguy.docker

我在virtualenv中运行它。现在,我想为我创建的每台计算机使用terraform local-exec提供程序启动它。怎么做?有例子吗?

1 个答案:

答案 0 :(得分:1)

在不首先在外壳中激活virtualenv的情况下如何在virtualenv中运行Python软件的一般答案是通过环境{{1}中的pythonpython3解释程序显式运行该软件。 }目录。

如果运行该解释器,则它将自动配置为在virtualenv中而不是系统范围内查找依赖项。

例如,如果您的virtualenv位于bin中,则可以将其Python解释程序作为/home/example/foo/env(或/home/example/foo/env/bin/python)运行。

要在Terraform的python3设置程序中执行此操作,可以执行以下操作:

local-exec

请注意,Terraform的供应者功能旨在在无法采用其他方法时作为务实的不得已的手段。推荐的方法是构建一个预配置的机器映像(也许在构建时使用Ansible或其他配置管理系统),以便该机器将立即以正确的配置启动,而不必单独进行配置。

然后,该方法又允许使用自动缩放等功能,使新计算机可以随时启动,而与Terraform无关。