在本地生成ansible角色变量

Generate ansible role variable locally

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

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

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

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

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

我可以 运行 python 在本地而不是远程编码吗?执行此操作的最佳方法是什么?

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 }}