Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加嵌套子项的Ansible XML模块_Xml_Xpath_Ansible - Fatal编程技术网

添加嵌套子项的Ansible XML模块

添加嵌套子项的Ansible XML模块,xml,xpath,ansible,Xml,Xpath,Ansible,我正在为aws基础设施设置一个ansible项目,需要编辑多个XML文件,主要是添加嵌套元素。过了一段时间,我得到了一个比我预期的更难的例子 - name: HTTPS Config - Add SSLConfig to VHost.xml xml: path: /usr/local/WowzaStreamingEngine/conf/VHost.xml xpath: "/descendant::HostPort[1]" pretty_print: Yes a

我正在为aws基础设施设置一个ansible项目,需要编辑多个XML文件,主要是添加嵌套元素。过了一段时间,我得到了一个比我预期的更难的例子

- name: HTTPS Config - Add SSLConfig to VHost.xml
  xml:
    path: /usr/local/WowzaStreamingEngine/conf/VHost.xml
    xpath: "/descendant::HostPort[1]"
    pretty_print: Yes
    add_children:
      - SSLConfig:
          _:
            - KeyStorePath: Censored
            - KeyStorePassword: 'XXXXXX'
            - CipherSuites: "{{ ciphersuites }}"
            - Protocols: 'TLSv1,TLSv1.1,TLSv1.2'
  when: wowza_install.changed
这将导致在第一个HostPort元素(格式化)的末尾添加嵌套元素


1935
审查
XXXXXX
TLS
密码套件列表
TLSv1、TLSv1.1、TLSv1.2
现在的第一个问题(或多或少)是第二个示例“HTTPS-Config-Logging-SSL”插入了未格式化的xml,尽管我给出了选项
pretty\u print:Yes
。这对于前面的示例“HTTPS-Config-Add SSLConfig to VHost.xml”非常有效,其中插入的xml格式正确

- name: HTTPS Config - Logging SSL
  xml:
    path: /usr/local/WowzaStreamingEngine/conf/Server.xml
    xpath: "/descendant::Server/Properties"
    pretty_print: Yes
    add_children:
      - Name: 'sslLogConnectionInfo'
      - Value: 'false'
      - Type: 'Boolean'
  when: wowza_install.changed

名称
描述
sslLogConnectionInfofalseBoolean
第二个也是更烦人的部分是,重新运行我的ansible项目会再次添加xml标记,我在获取新设置时注册了
woza_install
,避免了这种情况。我尝试了
set_children
而不是
add_children
,但这会覆盖元素中的所有现有子元素。因为我对XPath比较陌生,所以我假设我的错误是选择了“想要的”元素(“/genderant::”)的所有子元素,然后这些子元素被
集\u children
删除

因此,欢迎对我遗漏的内容提出任何建议。

是否应该是
的孩子?或者应该有一个
元素包装这些值吗?
应该包装这些值,如示例中所示。但问题是,为什么ansible在另一个示例中添加了未格式化的内容,但对其进行了格式化。