Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet 木偶罐头';找不到类防火墙_Puppet_Ubuntu 16.04 - Fatal编程技术网

Puppet 木偶罐头';找不到类防火墙

Puppet 木偶罐头';找不到类防火墙,puppet,ubuntu-16.04,Puppet,Ubuntu 16.04,我有一个基本的木偶安装使用本教程 当我在我的节点上运行/opt/puppetlabs/bin/puppet代理--test时,我得到 错误:无法从远程服务器检索目录:服务器上的错误500:服务器错误:评估资源语句时出错。在节点标记inspiron上的/etc/puppetlabs/code/environments/production/manifests/site.pp:7:1处找不到声明的类防火墙 在我的节点上: /opt/puppetlabs/bin/puppet module list

我有一个基本的木偶安装使用本教程

当我在我的节点上运行
/opt/puppetlabs/bin/puppet代理--test
时,我得到

错误:无法从远程服务器检索目录:服务器上的错误500:服务器错误:评估资源语句时出错。在节点标记inspiron上的/etc/puppetlabs/code/environments/production/manifests/site.pp:7:1处找不到声明的类防火墙

在我的节点上:

/opt/puppetlabs/bin/puppet module list
返回

/etc/puppetlabs/code/environment/production/modules

-----puppetlabs防火墙(v1.9.0)

在我的木偶主人/etc/puppetlabs/code/environments/production/manifests/site.pp上:

file {'/tmp/it_works.txt':                        # resource type file and filename
  ensure  => present,                             # make sure it exists
  mode    => '0644',                              # file permissions
  content => "It works on ${ipaddress_eth0}!\n",  # Print the eth0 IP fact
}

class { 'firewall': }

resources { 'firewall':
    purge => true,
}

firewall { "051 asterisk-set-rate-limit-register":
    string      => "REGISTER sip:",
    string_algo => "bm",
    dport       => '5060',
    proto       => 'udp',
    recent      => 'set',
    rname       => 'VOIPREGISTER',
    rsource     => 'true';
}
firewall { "052 asterisk-drop-rate-limit-register":
    string      => "REGISTER sip:",
    string_algo => "bm",
    dport       => '5060',
    proto       => 'udp',
    action      => 'drop',
    recent      => 'update',
    rseconds    => '600',
    rhitcount   => '5',
    rname       => 'VOIPREGISTER',
    rsource     => true,
    rttl        => true;
}

文件部分起作用,但防火墙不起作用。

您需要使用Puppet在主设置中将模块安装到主设置中。它们需要位于
模块路径中的某个位置。您可以将其放置在
$codedir
(通常为
/etc/puppetlabs/code/modules
)的模块目录中,也可以将其放置在您的环境模块目录中(可能是
/etc/puppetlabs/code/environments/production/modules
,因为您引用的
站点pp
就在那里)。如果在
environment.conf
中定义了其他模块路径,则也可以将模块放置在那里

您可以使用多种方法安装/部署它们,例如Library puppet、r10k或代码管理器(在企业中)。但是,最简单的方法是在主机上安装puppetlabs防火墙。然后,您的Puppet目录将在编译期间找到
防火墙

另一方面,请注意:

resources { 'firewall':
  purge => true,
}

将删除对相关防火墙配置(根据模块对资源管理内容的定义,由Puppet对系统防火墙配置的了解定义)的任何更改,这些更改不是由Puppet管理的。这有助于消除人们进行的本地更改,但也可能产生有趣的副作用,因此请小心。

当我运行puppet module install puppetlabs firewall时,我发现程序“puppet”当前未安装。您可以通过键入:apt install puppet common来安装它,然后如果我安装它,它将中断我的puppetserver installsystemctl启动puppetserver作业,因为puppetserver.service失败,因为控制进程已退出,并显示错误代码。有关详细信息,请参阅“systemctl status puppetserver.service”和“journalctl-xe”。@markhorrocks该命令的假设是Puppet位于您的路径中(通常是安装后)。如果Puppet不在您的路径中,您需要提供它的完整路径。我安装了Puppet common,然后安装了模块,然后重新安装了puppetserver,最后将防火墙从/etc/Puppet modules复制到/etc/puppetlabs/code/environments/production/modules,最后它成功了。谢谢。@markhorrocks请看一看,以帮助将来部署模块:。