Articles of 傀儡

在Puppet中检测基础设施提供者

注意:我们使用傀儡独立(无主)即傀儡申请。 通常,在部署Web应用程序时,会在前端应用程序后面运行一些后端服务和应用程序,例如数据库,search服务器,caching服务器和其他内部服务等。这些服务不需要监听在公共networking接口上。 相反,他们可以在专用networking接口上监听,所有的应用程序都可以通过安全的方式进行通信 这是我已经做的事情。 当您想要自动部署这些服务时,就会出现这个问题。 我们使用Puppet进行下一代configuration。 当这些服务被部署时,我们依靠事实来获取像ipaddress和hostname这样的东西。 取决于你的机器在哪里,接口的名字是不同的。 例如,Soft Layer提供的机器中的标识符是bond0,bond1等,Digital Ocean提供的是eth0,eth1等。其中,bond0和eth0是公共接口,bond1和eth1是私有的。 理想情况下,我们应该使用相同的Puppet脚本来configuration基​​础设施,无论您在哪里configuration。 我们使用hiera来获取类的默认值。 所以理想情况下,我想有像ipaddress_public,ipaddress_private可用的事实,然后我可以使用它们,但我想要在Puppet中的任何类。 事实上,这个事实应该隐藏出机器的软件层,软件层,数字海洋,AWS等等的血淋淋的细节,并为我提供这个工作的事实。 或者,我可以为hiera中的基础架构提供者创build一个层次结构,并为不同的基础架构提供者提供不同的默 问题是我不知道如何找出特定机器的提供者。 例如,如果我给你一台运行Puppet的机器,可以有一个可靠的方法来确定它是否在Soft Layer,Digital Ocean,AWS等上运行。 你们如何解决这些问题?

禁用系统日志中的ctrl + alt + delete

我试图更新一些在RHEL机器上禁用CAD的Puppet清单。 现在我正在做systemd:masking(即链接到/ dev / null) $ctrlaltdel_process = '/usr/bin/logger -p security.info "Control-Alt-Delete pressed"' # Every version of RHEL has a different way of doing this! 🙂 case $::operatingsystemmajrelease { '4','5': { augeas { 'disable-inittab-ctrlaltdel': context => '/files/etc/inittab', lens => 'inittab.lns', incl => '/etc/inittab', changes => "set *[action = 'ctrlaltdel']/process '${ctrlaltdelprocess}'", } } '6': { file { […]

在Vagrant&Puppet上使用代理

我试图运行一个木偶清单,这取决于具有代理设置的目标机器访问Internet。 我没有能够通过http_proxy_host木偶build议(我相信它的错误?)。 我试图更新我的Debian框中的.bashrc(通过木偶清单),虽然我不知道如何获得第一次的设置。 相反,我相信一个解决scheme将是设置/通过env var http_proxy但我不知道如何/在哪里做到这一点与stream浪汉。 https://groups.google.com/d/msg/puppet-users/2aivOoYHwZ0/rjRkJx1zdjQJbuild议使用像这样的包装… #!/bin/bash export http_proxy=my.proxy puppet apply "$@" 我不是100%确定在哪里做到这一点,或者如果这是最好的解决scheme。 当然,我不是唯一试图使用stream浪汉/木偶和代理的人?

是否值得做修订控制/傀儡/等等。 在一个单一的服务器设置?

阅读后有什么解决scheme允许使用服务器configuration文件的版本控制? ,我决定在我的服务器上安装etckeeper。 但是,这是一个单服务器设置,所以我只有一个物理机器,没有负载平衡器等,因为只有一个目的地路由stream量(加上我没有第二台机器做这项工作)。 我认为它仍然值得使用etckeeper,因为它跟踪本地机器。 我真正的问题是,是否值得“升级”到像木偶或厨师,因为我只有一个服务器。 如果是这样,为什么?

木偶用fqdn创build证书

客户端上的hostname是dns01.srv.acentauri.net.uk ,但是当我运行 puppet agent -t Info: Creating a new SSL key for dns01 Info: Caching certificate for ca Info: Caching certificate_request for dns01 Exiting; no certificate found and waitforcert is disabled 它为主机dns01创build证书, dns01我使用木偶大师这个域的srv.acentauri.net.uk 任何想法为什么puppet不创buildFQDN的SSL密钥?

只有在Puppet中存在资源时才需要

我有一个在节点上启用防火墙的类(在Ubuntu中使用ufw): class ufw { package { ["ufw"]: ensure => latest } exec { "enable-firewall": command => "/usr/bin/yes | /usr/sbin/ufw enable", unless => "/usr/sbin/ufw status | grep \"Status: active\"", require => [Package["ufw"]] } } 这工作正常。 在包含该类的节点上,启用防火墙。 然后我有另一个课程,用于启用OpenSSH: class openssh { package { "openssh-server": ensure => latest } service { ssh: enable => true, ensure => running, […]

傀儡代理偶尔失败,无论是超时还是“无法find类”错误

我在Xen dom0上运行puppet master ,并通过每小时一次的crontab puppet agent –test同步3个domU。 大约80%的时间, puppet agent –test成功完成: info: Retrieving plugin info: Caching catalog for test3 info: Applying configuration version '1333319732' notice: Finished catalog run in 5.08 seconds 另外20%的时间中途中断,出现以下错误: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class iptables for test1 at /etc/puppet/manifests/site.pp:1 on node […]

使用无标头的Augeas INI镜头

我正在使用带有augeas的IniFile模块来创buildSplunkpipe理镜头。 这适用于所有包含节标题的文件,如正常的INI文件,但是有一些文件不遵循这个scheme,只是使用name = value对。 有没有一个现成的方法来映射这些条目没有定义为一般的东西,如主? 我宁愿不必为第二种文件types学习另一个模块,现在就可以避免它。 module Splunk = autoload xfm let comment = IniFile.comment IniFile.comment_re IniFile.comment_default let sep = IniFile.sep IniFile.sep_re IniFile.sep_default let setting = IniFile.record_re let title = IniFile.title ( IniFile.record_re ) let entry = IniFile.entry steting sep comment let record = IniFile.record title entry let lns = IniFile.lns record comment let filter […]

Amazon EC2 EBS卷使用木偶/类似工具计划备份/快照

我不是一个Linuxpipe理员,虽然我希望我是,我也看到了这些问题 Amazon EC2备份策略 Amazon EC2 + EBS ::定期备份计划? Amazon EC2实例/卷的简单备份策略? 而这个build议http://alestic.com/2009/09/ec2-consistent-snapshot 我尝试使用命令行+ crontab(命令行工作,但由于某种原因crontab,不) 但是我还是很迷茫, 我只想要一个自动的,我的亚马逊EC2(EBS)数据的滚动备份 (通过滚动我的意思是保持3-4周,但删除旧的快照,因为新的成本控制) 就像往常一样,如果有一些困难和痛苦的事情,有人会为此创造一个解决scheme。 我的问题很简单,有没有一种方式使用像Puppet这样的工具来做到这一点,没有一个痛苦的学习曲线? (或通过其他工具,如http://ylastic.com ) 如果是的话,怎么样?

木偶上已经安装的包上的错误

我第一次在CentOS上使用木偶。 我有一个我的.pp文件中有以下内容: package {"openjdk-6-jdk": ensure => installed, } 应用时会产生以下错误: 错误:执行'/ usr / bin / yum -d 0 -e 0 -y install openjdk-6-jdk'返回1:错误:什么都不做 错误:/ stage [main] / Play / Package [openjdk-6-jdk] /确保:从缺席变为现在失败:执行/ usr / bin / yum -d 0 -e 0 -y install openjdk- jdk'返回1:错误:无事可做 安装最新的交换产生相同的结果。 package {"openjdk-6-jdk": ensure => latest, } 我该如何告诉傀儡,yum返回1在这里没关系? 我想傀儡yum适配器会知道如何处理这个结果代码已经。 这似乎是超级基本的东西,应该“只是工作”。 这是与傀儡3.1.1-1.el6的Centos […]