<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
We are seeing a new behavior with Fn::Join in user-data block that
makes our script fail to run. Previous behavior was that no white
space nor line breaks were inserted after a coma (',') or line ends.
But now it's inserting white space plus line break after ','
separated elements... Do you have any idea why?<br>
Thanks<br>
Patrick<br>
<br>
<u>Exemple</u>:<br>
<br>
"Fn::Join":[<br>
"\n",<br>
[<br>
"#!/bin/bash -v",<br>
"# Helper function",<br>
"function error_exit\n",<br>
"{\n",<br>
" /opt/aws/bin/cfn-signal -e 1 -r \"$1\"
'", { "Ref" : "BatchNodeWaitHandle" }, "'\n",<br>
" exit 1\n",<br>
"}\n",<br>
<br>
"# Flush iptables's default rules",<br>
"/sbin/iptables -F",<br>
"/sbin/iptables -X",<br>
"# prepare for packages install",<br>
"yum update -y",<br>
"yum upgrade -y",<br>
"export
http_proxy=ecfrec.frec.bull.fr:8080",<br>
"export
no_proxy=127.0.0.1,localhost,.amg.net.pl,169.254.169.254,10.197.217.62",<br>
<br>
"/opt/aws/bin/cfn-init -s ", { "Ref" :
"AWS::StackName" },<br>
" -r BatchNode ",<br>
" --region ", { "Ref" : "AWS::Region" },<br>
" || error_exit 'Failed to run cfn-init for
BatchNode'\n",<br>
<br>
"rpm -Uvh <a class="moz-txt-link-freetext" href="http://rbel.frameos.org/rbel6">http://rbel.frameos.org/rbel6</a>",<br>
"#install rubygems",<br>
"cd /opt",<br>
"tar zxf rubygems-1.8.10.tgz",<br>
"cd rubygems-1.8.10",<br>
"ruby setup.rb --no-format-executable",<br>
"gem install chef --no-ri --no-rdoc",<br>
"/opt/aws/bin/cfn-signal -e $? '", {
"Ref":"BatchNodeWaitHandle" }, "'"<br>
]<br>
]<br>
<br>
<u>Results in broken </u><u>cfn-userdata script</u><br>
<br>
#!/bin/bash -v<br>
# Helper function<br>
<br>
function error_exit<br>
<br>
{<br>
<br>
/opt/aws/bin/cfn-signal -e 1 -r "$1" '<br>
<a class="moz-txt-link-freetext" href="http://172.16.1.1:8002/stacks/1a7b8501-e117-4cf8-9838-416446a43fed/resources/BatchNodeWaitHandle">http://172.16.1.1:8002/stacks/1a7b8501-e117-4cf8-9838-416446a43fed/resources/BatchNodeWaitHandle</a><br>
'<br>
<br>
exit 1<br>
<br>
}<br>
<br>
<br>
# Flush iptables's default rules<br>
/sbin/iptables -F<br>
/sbin/iptables -X<br>
# prepare for packages install<br>
yum update -y<br>
yum upgrade -y<br>
export http_proxy=ecfrec.frec.bull.fr:8080<br>
export
no_proxy=127.0.0.1,localhost,.amg.net.pl,169.254.169.254,10.197.217.62<br>
/opt/aws/bin/cfn-init -s<br>
skeleton<br>
-r BatchNode<br>
--region<br>
ap-southeast-1<br>
|| error_exit 'Failed to run cfn-init for BatchNode'<br>
rpm -Uvh <a class="moz-txt-link-freetext" href="http://rbel.frameos.org/rbel6">http://rbel.frameos.org/rbel6</a><br>
#install rubygems<br>
cd /opt<br>
tar zxf rubygems-1.8.10.tgz<br>
cd rubygems-1.8.10<br>
ruby setup.rb --no-format-executable<br>
gem install chef --no-ri --no-rdoc<br>
/opt/aws/bin/cfn-signal -e $? '<br>
<a class="moz-txt-link-freetext" href="http://172.16.1.1:8002/stacks/1a7b8501-e117-4cf8-9838-416446a43fed/resources/BatchNodeWaitHandle">http://172.16.1.1:8002/stacks/1a7b8501-e117-4cf8-9838-416446a43fed/resources/BatchNodeWaitHandle</a><br>
'<br>
touch /var/lib/cloud/instance/provision-finished<br>
<br>
</body>
</html>