剧本之间的Ansible变量

时间:2018-12-05 23:39:37

标签: windows unix statistics ansible set

我正在尝试构建一个工作流,其中第一个剧本在Windows主机上运行,​​并为要执行的所有主机名设置一些变量。第二本剧本应该读取此变量,并在Windows主机名的unix中创建目录。

在第一个剧本中尝试使用set_stats,但是变量已被所有主机名所隐含,并且在Unix上使用大字符串创建了一个目录。

实现此目的的任何解决方法或建议。

Playbook在Windows上运行
-名称:在变量中设置主机名
  set_stats:
      数据:
        current_hostname:“ {{ansible_hostname}}”
      per_host:否

Playbook在Unix上运行

  • 名称:创建UNIX目录
    档案:
    路径:“ {{ARCH_DIR_LOC + current_hostname +'/'}}”
    状态:目录
    模式:0777

2 个答案:

答案 0 :(得分:1)

无法在Ansible运行之间保留变量。但是有个窍门:您可以将变量保存到yaml / json文件(在本地主机中),然后使用include_vars加载它们。

保存:

- copy:
    content: '{{ my_variable|to_json }}'
    dest: foo.json
  delegate_to: localhost

加载:

- include_vars:
    file: foo.json

答案 1 :(得分:0)

我能够编写以下脚本并为我工作:

<!doctype html>
<html>
    <meta charset="UTF-8"> 
    <head>
        <title>TIN cw4 C</title>
        <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
        <script >
            $(document).ready(function(){
                $("#add").click(function(){
                    $("table tbody").append('<tr><td>a</td><td>b</td><td>c</td></tr>');
                });
            });
        </script>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title text-center">Table</h3>
            </div>
            <form id="inputForm" class="form-inline">
                <div class="form-group">
                    <input class="form-control" type="text" id="first" placeholder="First name"/>
                    <input class="form-control" type="text" id="last" placeholder="Last name"/>
                    <input class="form-control" type="text" id="place" placeholder="Place"/>
                </div>
                <button class="btn btn-primary add-row" type="button" id="add">Add person</button>
            </form>
            <div class="panel-body">
                <table id="people" class="table" style="width:100%;">
                    <thead>
                        <tr>
                            <th>Firstname</th>
                            <th>Lastname</th>
                            <th>Place</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Jon</td>
                            <td>Snow</td>
                            <td>Great Wall</td>
                        </tr>
                        <tr>
                            <td>Arya</td>
                            <td>Stark</td>
                            <td>Winterfell</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </body>
</html>