如何让Puppet设备管理发送我自己的命令?

时间:2015-12-21 14:09:45

标签: ruby puppet puppet-enterprise

我使用puppet的网络设备管理功能来配置Cisco路由器,但我不知道如何使用它来发送我自己的命令,我也想用它来创建我的自己的事实。

对于常规Windows或Linux客户端,我们有exec:

exec { 'test':
      command => 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy remotesigned -file C:\test.ps1',
    }

并将其与因子一起使用:

Facter.add('hardware_platform') do
  setcode do
    Facter::Core::Execution.exec('/bin/uname --hardware-platform')
  end
end

但是设备管理的等价物是什么?

查看github上的代码,看起来这些可能是相关的类: puppet/lib/puppet/util/network_device/transport/ ssh.rb和telnet.rb

但我不知道如何在我的模块中调用和使用它们。

1 个答案:

答案 0 :(得分:2)

正如我在puppet-users上回答你的那样,在Puppet DSL视图中没有核心数据类型或puppet device端点中的机制可以让你挂钩之间的底层通信节点和网络设备注入任意IOS命令。要获得该层,您需要编写自定义类型和提供程序,或者可能需要修改其中一种核心类型。