我开始使用 ansible_runner python 库,我真的很喜欢它。
唯一的事情是我需要检索一个注册的变量。我就是找不到方法。
import ansible_runner
class Infra:
def __init__(self, extravars, envvars, private_data_dir):
self.extravars = extravars
self.envvars = envvars
self.private_data_dir = private_data_dir
self.runner = None
def create(self):
self.run("create.yml")
def destroy(self):
self.run("destroy.yml")
def run(self, playbook):
self.runner = ansible_runner.run(
private_data_dir=self.private_data_dir,
playbook=playbook,
verbosity=5,
extravars=self.extravars,
envvars=self.envvars
)
if __name__ == "__main__":
extravars = {}
envvars = {}
private_data_dir = ""
i = infra(extravars, envvars, private_data_dir)
i.create()
现在,在我创建了基础设施之后,我想检索在我的 create.yml 中注册的 IP
- name: "Get terraform output"
shell: >
cd {{ TERRAFORM_CONTEXT_PATH }} && \
export TF_VAR_provisionning_ssh_private_key_path={{ SSH_PRIVATE_KEY }} && \
terraform output -json
register: terraform_output
有可能吗?我查看了runner.events,但我没有找到它。
谢谢