Hi List,

I’m trying to securely place a vhost file for apache.
Before I place a new chost from template, I want it to be checked for 
correct behaviour before really deploying it:

- name: Plaats de verschillende extra vhosts
  template: src=vhost.j2 dest=/etc/httpd/conf.d/vhosts.conf backup=yes 
validate="/usr/sbin/apachectl -tf /etc/httpd/conf/httpd.conf"
  notify: reload httpd
  tags: httpd

Well, this will result in this error message:

TASK: [httpd | Plaats de verschillende extra vhosts] ************************** 
<10.34.34.66> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO 10.34.34.66
<10.34.34.66> EXEC /bin/sh -c 'mkdir -p 
$HOME/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263 && echo 
$HOME/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263'
<10.34.34.66> EXEC /bin/sh -c 'rc=0; [ -r "/etc/httpd/conf.d/vhosts.conf" ] || 
rc=2; [ -f "/etc/httpd/conf.d/vhosts.conf" ] || rc=1; [ -d 
"/etc/httpd/conf.d/vhosts.conf" ] && echo 3 && exit 0; (/usr/bin/md5sum 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/sbin/md5sum -q 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/usr/bin/digest -a md5 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/sbin/md5 -q 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/usr/bin/md5 -n 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/bin/md5 -q 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/usr/bin/csum -h MD5 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (/bin/csum -h MD5 
/etc/httpd/conf.d/vhosts.conf 2>/dev/null) || (echo "${rc} 
/etc/httpd/conf.d/vhosts.conf")'
<10.34.34.66> PUT /tmp/tmpJob224 TO 
/root/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263/source
<10.34.34.66> PUT /tmp/tmpAvdktD TO 
/root/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263/copy
<10.34.34.66> EXEC /bin/sh -c 'LANG=C LC_CTYPE=C /usr/bin/python 
/root/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263/copy; rm -rf 
/root/.ansible/tmp/ansible-tmp-1412077952.61-262594095082263/ >/dev/null 2>&1'
failed: [ISUFD4ACCPRES03] => {"failed": true}
msg: validate must contain %s: /usr/sbin/apachectl -tf 
/etc/httpd/conf/httpd.conf

FATAL: all hosts have already failed -- aborting

Apparantly I need to add %s to the validate command. But validating in 
apachectl does not work that way, it just needs the “top” config and then 
works it’s way through that one and all “include” directories inside that 
file and validate the complete setup for me.

I tried altering the command to: “validate=”/usr/sbin/apachectl -tf 
/etc/httpd/conf/httpd.conf #%s” but ansible then thinks I forgot the 
closing quotes (Because it’s behind a comment sign ;-)

Then I tried “validate=”/usr/sbin/apachectl -tf /etc/httpd/conf/httpd.conf 
\#%s” you see? trying to escape the hash sign, which then gets translated 
to the command as: “/usr/sbin/apachectl -tf /etc/httpd/conf/httpd.conf 
\#/etc/httpd/confd./vhosts.conf” which then causes apachectl to fail again 
;-)

A bit stuck here. Can we make %s optional?

Thanks,
Mark
​

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/50a60728-40b1-4552-8249-edf59a339044%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to