Использование ansible для изменения свойства JBoss без изменения всех тегов свойств - PullRequest
0 голосов
/ 13 мая 2019

Java-агент AppDynamics требует, чтобы файлы JBoss Domain.xml и Host.xml были изменены для запуска.

Чтобы заставить AppDynamics работать, я должен добавить элемент «property» с двумя атрибутами.

<property name="jboss.modules.system.pkgs" value="com.singularity"/>

Я также пытался добавить элемент и атрибуты в тот же блок кода, но получил ошибку, сообщающую, что элемент и атрибуты являются исключительными:

      xml: 
        path:/opt/jboss/domain/configuration/domain.xml
        xpath: /ns:fomain/ns:systemproperties
        namespaces: {'ns': 'urn:jboss:domain:5.0'}
        prettyprint: yes
        add_children:
        - property
        attribute: 'name'
        value: 'test'

Проблема, с которой я сталкиваюсь, заключается в следующем: на том же пути есть дублирующее свойство с различными атрибутами, которые должны остаться неизменными

<property name="java.net.preferIPv4Stack" value="true"/>

При использовании Ansible я всегда перезаписываю ВСЕ элементы "свойства".

Я попытался добавить элемент свойства с такими же атрибутами (как если бы это было имя свойства), но получил ошибку Python:

        add_children:
        - "property name='test' value='test'"

Последняя версия кода Ansible, которую я использую, выглядит следующим образом:

      xml: 
        path:/opt/jboss/domain/configuration/domain.xml
        xpath: /ns:fomain/ns:systemproperties
        namespaces: {'ns': 'urn:jboss:domain:5.0'}
        prettyprint: yes
        add_children:
        - property
    - name: update attributes
      xml:
        path:/opt/jboss/domain/configuration/domain.xml
        xpath: /ns:fomain/ns:systemproperties
        namespaces: {'ns': 'urn:jboss:domain:5.0'}
        content: attribute
        attribute: 'name'
        value: 'test'
      when: not 'name'

Я в недоумении, как обращаться с дублированными именами элементов с различными атрибутами через ansible.

В конце мне нужно было бы закончить с этим:

<system-properties>
        <!-- IPv4 is not required, but setting this helps avoid unintended use of IPv6 -->
        <property name="java.net.preferIPv4Stack" value="true"/>
        <property name="jboss.modules.system.pkgs" value="com.singularity"/>
</system-properties>

Любая помощь будет принята с благодарностью. Я знаю, что ответ смотрит мне в лицо, но я просто не вижу его

И добавленный пункт также должен гарантировать, что у меня нет одинаковых элементов с одинаковыми атрибутами.

Заранее спасибо.

...