我需要实例化一个防火墙相关的类,该类允许一个允许访问数据库服务器上的数据库端口的主机的数组。 该列表中的内容取决于各种networking应用中的哪一个开启了哪些主机。 我想要在应用程序的逻辑中说'确保这个服务器的ip在哪个可以访问数据库'的列表中,但是不能重新声明variables,我不是确定如何积累这些信息。 这就像concat所做的那样,尽pipe这最多只能给我一个我可以在防火墙规则中包含的文件。 我可以重写防火墙模块,所以我可以这样做,但它很杂乱,我希望避免这种情况。 在应用程序逻辑中定义虚拟资源,然后收集它们似乎是一个更好的方法,但我不知道如何从一个收集器实例化一个给定types的资源束从有一个数组每个资源? WebApp::FirewallHole <| dbhost == $fqdn |> $app_hosts = ??? Firewall::Hole {'mysql': proto => 'tcp', dport => '3306', saddr=> $app_hosts, } 在这个代码中, WebApp::FirewallHole纯粹是为了吸引这些信息而存在,并且可以用任何有帮助的方式来定义。 Firewall::Hole目前是一个固定的接口。 以上掩盖了防火墙逻辑的一些细节。 我不能只在这里重复实例化Firewall :: Hole类,并且改变接口以允许将问题进一步推入到防火墙逻辑中,所以问题是如何构build一个来自一套收集的资源。
我正试图在傀儡中实施基于策略的自动签名。 我已经执行了以下步骤: 木偶大师 : 我已经创build了一个ruby实用程序来自动签名证书,如果匹配在puppet代理csr_attributes.yaml中指定的扩展名,然后退出0,否则返回退出1。 我已经给所有用户的Ruby实用程序可执行权限。 在主服务器上的puppet.conf的[master]部分指定了ruby实用程序的完整path。 这是我所设定的: autosign = $ confdir / certsign.rb 在傀儡代理 创build文件/etc/puppet/csr_attributes.yaml与内容: extension_requests:pp_uuid:abcdefghijk 现在当我运行puppet agent -t它是抛出错误,而不是自动签署CSR: Error: Could not request certificate: Error 400 on SERVER: Invalid pattern "first line of script" 我该如何解决这个错误?
木偶大师版本:3.3.1 伪装代理版本:3.3.1 site.pp的内容 import '*/*.pp' node default { include 'auth' } 在site.pp所在的文件夹中有一个名为“VirtualMachines”的文件夹在“VirtualMachines”文件夹中有一个名为server1mycompanycom.pp的文件 文件server1mycompanycom.pp的权限 -rw-r–r– 1 puppet sudo 81 Oct 15 14:33 server1_mycompany_com.pp 文件server1mycompanycom.pp的内容 node 'server1.mycompany.com' inherits 'default' { include 'zabbix::agent' } 问题在于运行时 傀儡代理 – testing 在server1.mycompany.com上只应用默认configuration的模块,称为auth。 来自节点configuration的模块(称为zabbix-agent)不适用。 site.pp有什么问题吗? 其他节点工作正常,并应用默认部分和节点部分的configuration。
在我工作的公司的过去,有人在/etc/profileconfiguration了许多别名和导出。 从那时起我们已经实现了Puppet,并且有一个pipe理应用程序用户输出和别名的模块。 新模块实际上是一个非常简单的模块…它确保名为application_env.sh的文件驻留在/etc/profile.d/ ,基本上这是configuration相关输出和别名的文件。 我已经得到了一个任务,确保这些导出和别名仅来自application_env.sh文件,而不是来自/etc/profile 。 所以我打算做的是添加到application_env的清单,目前看起来像这样: class appuser-env { file{ "/etc/profile.d/appuser-env.sh": ensure => "present", content => template("appuser-env/appuser-env.sh.erb"), mode => "774", require => Class["facts"], } } 另一种types看起来像这样: file_line{ "remove_old_exports_aliases": ensure => absent, line => ['export ANT_HOME_1_7_0=/appdir/org/apache/ant/1.7.0', 'export ANT_HOME=$ANT_HOME_1_7_0', 'export PATH=$ANT_HOME/bin:$PATH', 'export JAVA_HOME_1_6_0=/appdir/com/sun/jdk', 'export JAVA_HOME=$JAVA_HOME_1_6_0', 'export PATH=$JAVA_HOME/bin:$PATH','export ENVIRONMENT_TYPE=prod','export CVS_RSH=${CVS_RSH-ssh}# change default from rsh to ssh for […]
当我尝试将木偶与Nagios集成时,我遇到了一些问题。 这是我的configuration(我知道,这是如此简单,但这是我第一次尝试) /etc/puppet/modules/nagios/manifests/init.pp class nagios::server { package { ["nagios"]: ensure => installed, } service { nagios: ensure => running, enable => true, } file { 'resource-d': path => '/etc/nagios/objects', ensure => directory, owner => 'nagios', } # Collect the nagios_host resources Nagios_host <<||>> { require => File[resource-d], notify => [Service[nagios]], } } /etc/puppet/modules/nagios/manifests/export.pp class nagios::export […]
木偶企业CENTOS7(Vmware)上的安装问题 在运行单片安装时遇到以下问题: "Error: Could not start Service[pe-puppetserver]: Execution of '/bin/systemctl start pe-puppetserver' returned 1: Job for pe-puppetserver.service failed. See 'systemctl status pe-puppetserver.service' and 'journalctl -xn' for details. Error: /Stage[main]/Puppetenterprise::Master::Puppetserver/Service[pe-puppetserver]/ensure: change from stopped to running failed: Could not start Service[pe-puppetserver]: Execution of '/bin/systemctl start pe-puppetserver' returned 1: Job for pe-puppetserver.service failed. See 'systemctl status pe-puppetserver.service' and […]
我正在使用Puppet的设备pipe理来pipe理一些思科设备。 现在我的device.conf如下所示: [someCity] type cisco url telnet://puppet:[email protected]/ [someOtherCity] type cisco url telnet://puppet:[email protected]/ [someOtherOtherCity] type cisco url telnet://puppet:[email protected]/ 所有的路由器将有相同的特殊木偶用户configuration,所以他们所有的凭据将是相同的。 我可以使用通配符还是从文件中导入名称/ IP,而不必在device.conf中单独定义它们?
Puppet Azure模块需要安装特定的gem。 说明https://github.com/puppetlabs/puppetlabs-azure显示以下示例: /opt/puppetlabs/puppet/bin/gem install azure azure_mgmt_compute azure_mgmt_storage azure_mgmt_resources azure_mgmt_network hocon retries –no-ri –no-rdoc 具体的gem二进制/opt/puppetlabs/puppet/bin/gem用来确保gem安装到puppet安装目录并使用puppet的捆绑版本的ruby。 傀儡的包资源有一个gem提供者,但它会使用系统ruby安装。 我怎么可以puppetize傀儡具体的gem安装? 我不想使用一个exec资源。 有没有傀儡代理安装gem的资源?
我们使用Puppet + Foreman通过检查自定义事实来监视环境中的变化。 例如,只要自定义事实等于“真”,木偶就会使用发送给代理日志的消息来调用通知资源。 木偶在代理报告中包含此消息,Foreman在UI中显示此消息。 问题是,无论何时抛出一条消息,Foreman都认为这个动作是“Applied”,节点状态变为“Active”(蓝色图标)。 我们希望节点保持“无变化”(绿色),并显示通知消息。 这在某种程度上可能吗? 也许定义一个新的自定义资源types? 有没有办法使用通知资源,而不使傀儡报告该节点已经改变? 含义只是将消息打印到客户端日志(因此消息将在报告中可见),但没有木偶将事件分类为应用configuration? 原因是当puppet触发Notify资源时,Foreman将该节点标记为活动(更改) 这里是傀儡代码: class mymodule::myclass::mysubclass { if $::fact023 == 'fail' { notify {'mynotify1': message => "WARNING: Node ${::fqdn} failed fact023", loglevel => hiera('warnings_loglevel'), } } } 看截图: 更新#1我正在考虑更改Foreman报告文件,以便UI将忽略通知事件,以便该节点的状态将保持不变,但仍显示在报告中的消息。 有人能指点我正确的方向吗?
我最近在运行fedora 23工作站的独立虚拟机上设置了puppet服务器/代理实例。 从代理请求证书时,出现以下错误: Error: Could not request certificate: Error 400 on SERVER: Cannot save fedoraclient.localdomain; parent directory /etc/puppet/ssl/ca/requests is not writable 以前我无法连接到服务器,然后我发现了命令: firewall-cmd –zone=public –add-port=8140/tcp –permanent让我连接,不幸的是现在我得到上面提到的错误。 我可以从客户端到服务器,反之亦然,所以我猜测它可能与selinux有关。 另外,我可以看到代理/etc/puppet没有ssl目录,它位于: /var/lib/puppet 。 在那里做一个ls -l结果 drwxr-x—. 2 root root 4096 Feb 4 21:11 clientbucket drwxr-x—. 2 root root 4096 Feb 4 21:11 client_data drwxr-x—. 2 root root 4096 […]