代码之家  ›  专栏  ›  技术社区  ›  nemesisdesign

局部生成ansible角色变量

  •  0
  • nemesisdesign  · 技术社区  · 8 年前

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

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

    我想让用户在YAML上以明文定义他们的密码和salt,然后在幕后执行以下操作:

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

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

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   BMW    8 年前

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