在本地生成ansible角色变量

时间:2017-01-31 10:47:20

标签: ansible ansible-2.x ansible-role

我们有一个新的开源ansible角色,可以自动编译一些名为OpenWRT的自定义路由器(openwisp2-image-generator)图像

root用户的root密码可以在playbook YAML中定义,但是the process to do so is cumbersome

我想让用户在YAML上以明文形式定义他们的密码和盐,然后在幕后做类似的事情:

import crypt;
password = crypt.crypt('password', '$1$salt-here$')

该值应存储在变量中,以便我可以轻松地将其添加到正确的角色模板中。

我可以在本地而不是远程运行该python代码吗?最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

在ansible中有local_action个模块,你可以在本地运行它。

来自http://docs.ansible.com/ansible/playbooks_delegation.html

的示例
  - name: take out of load balancer pool
    local_action: command /usr/bin/take_out_of_pool {{ inventory_hostname }}

# ...

  - name: add back to load balancer pool
    local_action: command /usr/bin/add_back_to_pool {{ inventory_hostname }}