如何解决Ansible-动态目录结构创建
我正在尝试从Ansible剧本创建目录结构。有人可以提出解决方法吗?
我的剧本看起来像这样
---
- name: Install DB2 on RHEL
hosts: dbserver
include_vars: main.yml
tasks:
- name: Make additinal directory structure
file:
state: directory
group: db2iadm1
owner: db2inst1
path: "{{ item.path }}"
with_items:
- { path: "/data1/DB2/tablespaces/{{ dbname }}" }
- { path: "/data2/DB2/tablespaces/{{ dbname }}" }
这是我的var文件
dbname: [db1,db2]
我希望以以下格式创建目录结构
/data1/DB2/tablespaces/db1
/data1/DB2/tablespaces/db2
/data2/DB2/tablespaces/db1
/data2/DB2/tablespaces/db2
但是上述剧本无法正常工作
解决方法
with_nested完成了任务。例如
string OrderBy = "Entity";
var dict = new Dictionary<string,string>();
dict[OrderBy] = "asc";
List<Dictionary<string,string>> list = new List<Dictionary<string,string>>();
list.Add(dict);
var output = new { orderBy = list };
var str = JsonConvert.SerializeObject(output);
Console.WriteLine(str);
给予
- debug:
msg: mkdir {{ item.0 }}/{{ item.1 }}
with_nested:
- - /data1/DB2/tablespaces
- /data2/DB2/tablespaces
- - db1
- db2
具有变量中数据的相同代码
"msg": "mkdir /data1/DB2/tablespaces/db1"
"msg": "mkdir /data1/DB2/tablespaces/db2"
"msg": "mkdir /data2/DB2/tablespaces/db1"
"msg": "mkdir /data2/DB2/tablespaces/db2"
,
您正在寻找与product
filter中的join
类似的东西
- debug:
msg: mkdir {{ item }}
with_items: '{{ base_dirs | product(dbname) | map("join","/") | list }}'
vars:
base_dirs:
- /data1/DB2/tablespaces
- /data2/DB2/tablespaces
dbname: [db1,db2]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。