0

我想制作一个脚本来在计算机实例之间快速设置一个 TINC vpn。我需要的是一种通过“/tmp/setup_tinc.py”命令行传递以下参数的方法:

--connect-to %{{ ' '.join( groups['do'] }}%

在哪里%{{ part }}%将在 python 中解释。但我似乎找不到一个好方法来做到这一点。你能帮我修复这段代码吗?

我制作了以下剧本

- name: tinc install & setup
  hosts: do
  user: root
  vars:
    tincnet: cloudnet
  tasks:
  - name: Install tinc package
    action: command apt-get install tinc python-argparse -y
  - name: Copy tinc setup script
    action: copy src=setup_tinc.py dest=/tmp/setup_tinc.py mode=755
  - name: Run tinc setup script
    action: command /tmp/setup_tinc.py --network $tincnet --tinc-ip $tinc_ip --hostname     $hostname
  - name: Fetch back the tinc file
    action: fetch src=/etc/tinc/$tincnet/hosts/$hostname dst=hosts
  - name: Adding firewall rule
    action: command ufw allow 514
4

1 回答 1

1

在 Ansible 1.1 和更早的版本中,这有点棘手。您不能像在模板中那样在剧本中内嵌 Python 代码。但好消息是,GitHub 上最新代码库(将作为 1.2 版发布)中的一些功能也允许在剧本中使用 Jinja2 风格的模板!检查这个线程:

https://groups.google.com/forum/#!topic/ansible-project/Gb3ABiEtGtA

因此,这意味着您将能够:

--connect-to {{''.join(groups['do'] }}

...如果您使用的是最新的 GitHub 代码,就在剧本中。

希望这可以帮助!

于 2013-04-09T19:55:28.547 回答