Templates ansible模板附加到文件

Templates ansible模板附加到文件,templates,ansible,Templates,Ansible,下面的代码用于附加到配置文件。我想做的是引入一个循环循环:“{{INTERFACE}}”,但这不起作用(因为临时文件将被覆盖),模板没有附加选项 有没有关于如何修复的建议 -名称:构建CE配置Cisco 模板: src=/opt/netsec/ansible/orchestration/cisco_templates/NOKIA_T1_PORT.js dest=/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}

下面的代码用于附加到配置文件。我想做的是引入一个循环
循环:“{{INTERFACE}}”
,但这不起作用(因为临时文件将被覆盖),
模板
没有附加选项

有没有关于如何修复的建议

-名称:构建CE配置Cisco
模板:
src=/opt/netsec/ansible/orchestration/cisco_templates/NOKIA_T1_PORT.js
dest=/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}
循环:“{{INTERFACE}}”
-名称:构建PE配置Cisco输出
shell:cat/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}>/opt/netsec/ansible/orchestration/config_outputs/new/{{CE_HOSTNAME}}.conf
接口
如下所示:

接口:
-接口:Gi0/3/0
设备描述:ethxxsr01
-接口:Gi0/3/1
设备描述:ETHXXSR01\U备用

从描述中可以看出,您似乎希望使用
NOKIA_T1_PORT.js
文件的现有内容,但在目标位置使用
界面添加一些内容

但是,一个
模板
任务无法完成此操作。你可以这样做:

-名称:构建CE配置Cisco
副本:
src:/opt/netsec/ansible/orchestration/cisco_templates/NOKIA_T1_PORT.js
dest:“/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}”
-名称:更新接口信息
区块填充:
路径:“/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}”
区块:|
{接口%中的项的%s}
接口:{{item.INTERFACE}}
设备描述:{{item.device\u DESCRIPTION}
{%endfor%}

从描述中可以看出,您似乎希望使用
NOKIA_T1_PORT.js
文件的现有内容,但在目标位置使用
界面添加一些内容

但是,一个
模板
任务无法完成此操作。你可以这样做:

-名称:构建CE配置Cisco
副本:
src:/opt/netsec/ansible/orchestration/cisco_templates/NOKIA_T1_PORT.js
dest:“/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}”
-名称:更新接口信息
区块填充:
路径:“/opt/netsec/ansible/orchestration/config_outputs/tmp/{{CE_HOSTNAME}”
区块:|
{接口%中的项的%s}
接口:{{item.INTERFACE}}
设备描述:{{item.device\u DESCRIPTION}
{%endfor%}

如果模板是多行的

shell>cat nokia_t1_port.j2
设备{item.device_DESCRIPTION}
接口{{item.interface}}
使用。比如说

-blockinfle:
插入者:EOF
路径:ce_hostname.conf
块:“{lookup('template','nokia_t1_port.j2')}”
标记:“”
循环:“{{INTERFACES}}”
给予

shell>cat ce\u hostname.conf
设备ETHXXSR01_备用
接口Gi0/3/1
设备ETHXXSR01
接口Gi0/3/0
由于“标记”,在附加的块之间将有一条空行


如果模板是单行的

shell>cat nokia_t1_port.j2
{{item.device_DESCRIPTION}}接口{{{item.interface}}
使用。比如说

-lineinfle:
插入者:EOF
路径:ce_hostname.conf
行:“{{lookup('template','nokia_t1_port.j2')}”
循环:“{{INTERFACES}}”
给予

shell>cat ce\u hostname.conf
ETHXXSR01接口Gi0/3/0
ETHXXSR01_备用接口Gi0/3/1

如果模板是多行的

shell>cat nokia_t1_port.j2
设备{item.device_DESCRIPTION}
接口{{item.interface}}
使用。比如说

-blockinfle:
插入者:EOF
路径:ce_hostname.conf
块:“{lookup('template','nokia_t1_port.j2')}”
标记:“”
循环:“{{INTERFACES}}”
给予

shell>cat ce\u hostname.conf
设备ETHXXSR01_备用
接口Gi0/3/1
设备ETHXXSR01
接口Gi0/3/0
由于“标记”,在附加的块之间将有一条空行


如果模板是单行的

shell>cat nokia_t1_port.j2
{{item.device_DESCRIPTION}}接口{{{item.interface}}
使用。比如说

-lineinfle:
插入者:EOF
路径:ce_hostname.conf
行:“{{lookup('template','nokia_t1_port.j2')}”
循环:“{{INTERFACES}}”
给予

shell>cat ce\u hostname.conf
ETHXXSR01接口Gi0/3/0
ETHXXSR01_备用接口Gi0/3/1

您在
{{INTERFACE}}
中的内容不清楚。但是,您可能应该在模板文件中循环
接口
。这是否回答了您的问题?谢谢你的回答,我想我做不到这一点,因为文件已经存在,其中的内容不是本节添加的。这是否回答了你的问题?您在
{{INTERFACE}}
中有什么不清楚。但是,您可能应该在模板文件中循环
接口
。这是否回答了您的问题?谢谢你的回答,我想我做不到这一点,因为文件已经存在,其中的内容不是本节添加的。这是否回答了你的问题?