使用Puppet在Windows上管理主机文件
我正在尝试使用Puppet和Hiera在Windows计算机上管理我的主机文件。我的问题是,我从来没有真正使用过Hiera,我正在努力将数据内容解析为正确的格式使用Puppet在Windows上管理主机文件,puppet,hosts,hiera,Puppet,Hosts,Hiera,我正在尝试使用Puppet和Hiera在Windows计算机上管理我的主机文件。我的问题是,我从来没有真正使用过Hiera,我正在努力将数据内容解析为正确的格式 hieradata/hiera.yaml中的相关部分如下所示: myhosts : [ 'host1 1.2.3.4', 'host2 2.3.4.5', 'host3 3.4.5.6'] 我有使用主机模块的代码,但它也依赖于我没有的类,所以它自然不起作用 class hosts::module ( $myhosts = hier
hieradata/hiera.yaml
中的相关部分如下所示:
myhosts : [
'host1 1.2.3.4',
'host2 2.3.4.5',
'host3 3.4.5.6']
我有使用主机模块的代码,但它也依赖于我没有的类,所以它自然不起作用
class hosts::module (
$myhosts = hiera('myhosts'),
)
{
define update_hosts {
$value = split($name,' ')
host {
"${value[0]}" : ip => "${value[1]}",
}
}
update_hosts { $myhosts :; }
}
我尝试过使用文件
资源而不是主机
资源,也尝试过在没有任何类的情况下使用它,但由于某种原因,我遇到了这个错误
Error: Could not retrieve catalog from remote server: Error 500 on SERVER:
Server Error: Evaluation Error: Error while evaluating a Resource Statement,
Evaluation Error: Error while evaluating a Resource Statement, Duplicate
declaration: File[C:\Temp\tmp.txt] is already declared in file
/etc/puppetlabs/code/environments/production/manifests/site.pp:4; cannot redeclare
at /etc/puppetlabs/code/environments/production/manifests/site.pp:4
at /etc/puppetlabs/code/environments/production/manifests/site.pp:4:1
at /etc/puppetlabs/code/environments/production/manifests/site.pp:10 on node puppet-agent
正如你所看到的,它声称我有一个重复的声明,但奇怪的是,它说它在同一行有问题。它认为出于某种原因,它两次声明同一件事
这就是我现在拥有的代码(我知道它不起作用,但错误听起来并不相关)
你知道怎么做吗?解决了这个问题
site.pp
include update_hosts
init.pp
class update_hosts::host
(
$hosts = hiera('hosts_list'),
)
{
update_host { $hosts :; }
}
host.pp
define update_host {
$value = split($name,' ')
host {
"${value[0]}" : ip => "${value[1]}",
target => "C:/Windows/System32/drivers/etc/hosts"
}
}
修好了
site.pp
include update_hosts
init.pp
class update_hosts::host
(
$hosts = hiera('hosts_list'),
)
{
update_host { $hosts :; }
}
host.pp
define update_host {
$value = split($name,' ')
host {
"${value[0]}" : ip => "${value[1]}",
target => "C:/Windows/System32/drivers/etc/hosts"
}
}
首先让我感到吃惊的是,您的yaml数据和两个Puppet片段都有语法错误。此外,错误消息属于您的站点清单,与您正在显示的代码无关,因此请向我们显示该代码。这就是代码。您在
站点内的类中放置了定义。pp
?lol yes,起初它不在那里,这是最后一次尝试好的,我将重新表述我的问题。有人能告诉我需要做什么才能使它工作吗?你可以忽略我的代码。我只需要了解如何在windows和linux上实现它,它工作得非常好。我首先想到的一件大事是,您的yaml数据和两个Puppet片段都有语法错误。此外,错误消息属于您的站点清单,与您正在显示的代码无关,因此请向我们显示该代码。这就是代码。您在站点内的类中放置了定义。pp
?lol yes,起初它不在那里,这是最后一次尝试好的,我将重新表述我的问题。有人能告诉我需要做什么才能使它工作吗?你可以忽略我的代码。我只需要了解如何在windows和linux上实现它,它非常好用