我正在尝试构建一个工作流,其中第一个剧本在Windows主机上运行,并为要执行的所有主机名设置一些变量。第二本剧本应该读取此变量,并在Windows主机名的unix中创建目录。
在第一个剧本中尝试使用set_stats,但是变量已被所有主机名所隐含,并且在Unix上使用大字符串创建了一个目录。
实现此目的的任何解决方法或建议。
Playbook在Windows上运行
-名称:在变量中设置主机名
set_stats:
数据:
current_hostname:“ {{ansible_hostname}}”
per_host:否
Playbook在Unix上运行
答案 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>