<div dir="ltr"><br><div><div>So I have this script that does deployments of large numbers of virtual machines by cloning from a template and customizing the clone based on the contents of a CSV file. It's not especially pretty, but the functionality is there, it's pretty solid (sans ONE bug). It doesn't adjust the ip addresses in /etc/hosts properly. I was hoping the cluebies might provide some advice. Our /etc/hosts files look like this:</div>
<div><br></div><div><div>xx.xx.xx.xx (server).domain</div><div>xx.xx.xx.xx (server)gpfs server.domain</div></div><div><br></div><div>the code from the script looks like this:</div><div><br></div><div><div>#changes IP addresses in /etc/hosts</div>
<div><span class="" style="white-space:pre">                                        </span>$cmd = "sed -i 's/[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9] $VMName /$publicIP/g' /etc/hosts"</div><div><span class="" style="white-space:pre">                                        </span>Invoke-VMScript -VM $VMName -GuestUser "root" -GuestPassword $guestPass -ScriptText $cmd -Confirm:$false</div>
</div><div><br></div><div>There's two logical problems I'm trying to solve.</div><div><br></div><div>Problem#1 is we have two common IP spaces, one of which is xx.xx.xx.xx, and the other is xx.xx.xxx.xxx. Obviously with the regex the way it is, it only catches xx.xx.xx.xx.</div>
<div><br></div><div>Problem#2 is how to adjust the sed command so that it replaces the public line with the public address, and the gpfs line with the gpfs address.</div><div><br></div><div>I'm kinda scratching my head here trying to figure out a regex that would fit the bill, advice is appreciated.</div>
<div><br></div><div>(Oh, distro is RHEL6.3)</div><div><br></div><div>eep - the longer I look at that, the more I realize that sed is all kinds of messed up.</div><div><br></div><div>Mike B.</div></div></div>