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

How can I make Puppet Device Management send my own commands?

我正在使用 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

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

我也在 puppet-users 上回答过您,核心数据类型的 Puppet DSL 视图或 puppet device 端点中没有允许您连接到底层的机制节点和网络设备之间的通信以注入任意 IOS 命令。要到达该层,您需要编写自定义类型和提供程序,或者可能需要修改其中一个核心类型。