我相信标题描述了一切。 :) 我的剧本看起来很简单:
- hosts: all
become: yes
roles:
- geerlingguy.docker
我在virtualenv中运行它。现在,我想为我创建的每台计算机使用terraform local-exec提供程序启动它。怎么做?有例子吗?
答案 0 :(得分:1)
在不首先在外壳中激活virtualenv的情况下如何在virtualenv中运行Python软件的一般答案是通过环境{{1}中的python
或python3
解释程序显式运行该软件。 }目录。
如果运行该解释器,则它将自动配置为在virtualenv中而不是系统范围内查找依赖项。
例如,如果您的virtualenv位于bin
中,则可以将其Python解释程序作为/home/example/foo/env
(或/home/example/foo/env/bin/python
)运行。
要在Terraform的python3
设置程序中执行此操作,可以执行以下操作:
local-exec
请注意,Terraform的供应者功能旨在在无法采用其他方法时作为务实的不得已的手段。推荐的方法是构建一个预配置的机器映像(也许在构建时使用Ansible或其他配置管理系统),以便该机器将立即以正确的配置启动,而不必单独进行配置。
然后,该方法又允许使用自动缩放等功能,使新计算机可以随时启动,而与Terraform无关。