1

I'm new to both puppet and Augeas and I'm having trouble. I have a puppet module that installs JBoss EAP 6.3 (in standalone mode), but I need to upgrade the scripts to allow users to configure their JBoss deployment with SSL. This leads me to try and use puppet to insert some XML into the standalone.xml configuration file. One of the xml elements must have multiple attributes in it. I used the augtool on the command line and was able to insert the element with one attribute. But when I try to set more attributes in the existing element I am not able to figure out how to format the path or commands. Any assistance you can provide would be greatly appreciated!

Example augtool commands:

augtool> set /augeas/load/Xml/lens Xml.lns
augtool> set /augeas/load/Xml/incl[2] /usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml
augtool> load
augtool> set /files/usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml/server/profile/subsystem[#attribute/xmlns="urn:jboss:domain:web:2.1"]/connector[last()+1]/#attribute[name="https"]/name "https"
augtool> save
Saved 1 file(s)

Attempt 1:

augtool> set /augeas/load/Xml/lens Xml.lns
augtool> set /augeas/load/Xml/incl[2] /usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml
augtool> load
augtool> set /files/usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml/server/profile/subsystem[#attribute/xmlns="urn:jboss:domain:web:2.1"]/connector[last()+1]/#attribute[name="https"]/name "https"
augtool> set /files/usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml/server/profile/subsystem[#attribute/xmlns="urn:jboss:domain:web:2.1"]/connector[last()]/#attribute[protocol="HTTP/1.1"]/protocol "HTTP/1.1"
augtool> save
error: Failed to execute command
saving failed (run 'print /augeas//error' for details)
augtool> print /augeas//error

/augeas/files/usr/share/jboss/jboss-eap-6.3/standalone/configuration/standalone.xml/error/message = "Failed to match \n    { /#attribute/ }?({ /#text/ = /(\\\\]\\\\]\\\\]*[^]\\001-\\004<>][^]\\001-\\004<]*\\\\]|(\\\\][^]\\001-\\004<]|[^]\\001-\\004<][^]\\001-\\004<])[^]\\001-\\004<]*\\\\]|[^]\\001-\\004<]\\\\])(\\\\]\\\\]*[^]\\001-\\004<>][^]\\001-\\004<]*\\\\]|[^]\\001-\\004<][^]\\001-\\004<]*\\\\])*(\\\\]\\\\]*([^]\\001-\\004<>][^]\\001-\\004<]*|)|[^]\\001-\\004<][^]\\001-\\004<]*|)|\\\\]\\\\]\\\\]*([^]\\001-\\004<>][^]\\001-\\004<]*|)|(\\\\][^]\\001-\\004<]|[^]\\001-\\004<][^]\\001-\\004<])[^]\\001-\\004<]*|\\\\]|[^]\\001-\\004<]/ } | { /#comment/ = /([^\\001-\\004-]|-[^\\001-\\004-])*/ } | <<rec>> | { /[:A-Z_a-z][.0-:A-Z_a-z-]*/ = /#empty/ } | { /#pi/ })*\n  with tree\n    { \"#attribute\" } { \"#attribute\" }"

Ultimately what I'd like to do is figure out a set of commands that will help me create and insert the following XML that looks like:

<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https"> <ssl name="https" password="mypassword" certificate-key-file="${jboss.server.config.dir}/keystore.jks"/> </connector>

Jackie
  • 83
  • 1
  • 7

0 Answers0