Re: [Puppet Users] Custom Windows Fact (match ipaddress)
I still can't get it to work: Facter::Util::Resolution.exec(C:\\Windows\\System32\\cmd.exe /c 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]') On Wednesday, October 30, 2013 4:23:45 PM UTC+1, Josh Cooper wrote: The second issue is that findstr is a shell builtin, so you have wrap the entire command in: cmd.exe /c original command You may have to quote the original command and adjust the interior quotes accordingly. Josh On Wednesday, October 30, 2013, cko wrote: Still no effect. Facter::Util::Resolution.exec(C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) Is there anything else i need to escape? On Tuesday, October 29, 2013 3:07:12 PM UTC+1, cko wrote: Hi everybody, I'm trying to write a custom fact that gets the IP Address of any given NIC if it matches a specific IP range. On Linux i use this (works fine) Facter.add(ip_foo) do setcode do Facter::Util::Resolution.exec(/sbin/ifconfig | /bin/grep '192.168.20[567].' | /bin/awk '{ print $2 }' | /bin/cut -d':' -f2) end end Now my Windows Version: Facter.add(ip_foo_windows) do confine :operatingsystem = :windows setcode do Facter::Util::Resolution.exec(C:\Windows\System32\ WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) end end When i run the command C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567] on the box it works perfectly fine. It returns the value that i need. But it seems that puppet doesn't get that value into the fact. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/f0fbe47f-5bc0-4fc3-bc2a-5eb8d6cad367%40googlegroups.com . For more options, visit https://groups.google.com/groups/opt_out. -- Josh Cooper Developer, Puppet Labs -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/4e1302b5-1fdb-4a72-b696-9df65f586460%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Custom Windows Fact (match ipaddress)
The second issue is that findstr is a shell builtin, so you have wrap the entire command in: cmd.exe /c original command You may have to quote the original command and adjust the interior quotes accordingly. Josh On Wednesday, October 30, 2013, cko wrote: Still no effect. Facter::Util::Resolution.exec(C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) Is there anything else i need to escape? On Tuesday, October 29, 2013 3:07:12 PM UTC+1, cko wrote: Hi everybody, I'm trying to write a custom fact that gets the IP Address of any given NIC if it matches a specific IP range. On Linux i use this (works fine) Facter.add(ip_foo) do setcode do Facter::Util::Resolution.exec(**/sbin/ifconfig | /bin/grep '192.168.20[567].' | /bin/awk '{ print $2 }' | /bin/cut -d':' -f2) end end Now my Windows Version: Facter.add(ip_foo_windows) do confine :operatingsystem = :windows setcode do Facter::Util::Resolution.exec(**C:\Windows\System32\** WindowsPowerShell\v1.0\**powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) end end When i run the command C:\Windows\System32\**WindowsPowerShell\v1.0\**powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567] on the box it works perfectly fine. It returns the value that i need. But it seems that puppet doesn't get that value into the fact. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com javascript:_e({}, 'cvml', 'puppet-users%2bunsubscr...@googlegroups.com');. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/f0fbe47f-5bc0-4fc3-bc2a-5eb8d6cad367%40googlegroups.com . For more options, visit https://groups.google.com/groups/opt_out. -- Josh Cooper Developer, Puppet Labs -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CA%2Bu97umXqfg0sxcDx2mdnJsdA1PjP7sEJwOOXgcu_EiqL1BrtQ%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Custom Windows Fact (match ipaddress)
Hi everybody, I'm trying to write a custom fact that gets the IP Address of any given NIC if it matches a specific IP range. On Linux i use this (works fine) Facter.add(ip_foo) do setcode do Facter::Util::Resolution.exec(/sbin/ifconfig | /bin/grep '192.168.20[567].' | /bin/awk '{ print $2 }' | /bin/cut -d':' -f2) end end Now my Windows Version: Facter.add(ip_foo_windows) do confine :operatingsystem = :windows setcode do Facter::Util::Resolution.exec(C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) end end When i run the command C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567] on the box it works perfectly fine. It returns the value that i need. But it seems that puppet doesn't get that value into the fact. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/65472ec1-fe7d-4a83-a144-9534419c78e3%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Custom Windows Fact (match ipaddress)
On Tuesday, October 29, 2013, cko wrote: Hi everybody, I'm trying to write a custom fact that gets the IP Address of any given NIC if it matches a specific IP range. On Linux i use this (works fine) Facter.add(ip_foo) do setcode do Facter::Util::Resolution.exec(/sbin/ifconfig | /bin/grep '192.168.20[567].' | /bin/awk '{ print $2 }' | /bin/cut -d':' -f2) end end Now my Windows Version: Facter.add(ip_foo_windows) do confine :operatingsystem = :windows setcode do Facter::Util::Resolution.exec(C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567]) end end Since you've double quoted the string you need to escape the backslashes, eg C:\\Windows\\... When i run the command C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ipconfig | Select-String -pattern '192.168.20[567]' | %{$_.line.split()} | FINDSTR 192.168.20[567] on the box it works perfectly fine. It returns the value that i need. But it seems that puppet doesn't get that value into the fact. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com javascript:_e({}, 'cvml', 'puppet-users%2bunsubscr...@googlegroups.com');. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/65472ec1-fe7d-4a83-a144-9534419c78e3%40googlegroups.com . For more options, visit https://groups.google.com/groups/opt_out. Josh -- Josh Cooper Developer, Puppet Labs -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CA%2Bu97uncpMRX6UykTBG5cPnWNG3n9QLm_QVUj5zBjpZmC45U4A%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.