我的公司要求我用autokey在ntpd中实现签名时间。 自动密钥工作的一个要求是在每个主机上生成密钥。 所有的客户端都是同一个组的一部分,所以他们都使用相同的密码。 如果可能的话,我不想在每个主机上手动生成密钥。 如果puppet检测到它不存在,是否有文件types执行命令的方法? 还是有一些其他的select,我可以用来通过木偶pipe理密钥?
我正尝试通过Puppet部署Redmine服务器。 安装过程使用Bundle来安装它的依赖关系 。 交互式安装时,当Bundle需要安装一些系统级的库时, sudo提示用户input密码。 不build议将Redmine作为root用户安装。 我使用Ubuntu 14.04 64位。 puppet从LXC非特权容器内运行。 我曾经有过一个解决scheme,包括在Bundle安装之前触摸适当的/var/lib/sudo文件。 这是hacky,最近sudo升级后停止工作。 有没有其他办法可以做到这一点? 或者,也许sudo确实允许非交互式授予宽限期,我只是错过了? 我的sudoers文件已经包含了Defaults !tty_tickets条目。 我宁愿不要这样做,但是没有这条路线,我认为解决scheme的希望就更小了。 这是我的forcesudo资源: define forcesudo ($user = $name, $notify = $notify) { file { "/etc/sudoers.d/fix-${user}": content => "${user} ALL = (root) NOPASSWD: ALL\n" } file { "/etc/sudoers.d/tty_tickets": content => "Defaults !tty_tickets\n" } file { "/var/lib/sudo/${user}": ensure => directory, owner => […]
好吧,我已经花了几天时间追逐这个。 在Windows 7 x64上的puppet代理3.7.1 x64是否存在问题,其中“除非”的exec永远不会运行该命令? 我试过做批处理的例子: 除非=>“C:/ProgramData/chocolatey/choco.exe源列表| findstr -i'巧克力[Disabled]'”, Powershell和现在编译的AutoIT可执行文件: exec { 'disablepublicchocolatey': command => "C:/ProgramData/chocolatey/choco.exe source disable -n=chocolatey", unless => 'c:/ProgramData/puppetfiles/checkifexists.exe repo "chocolatey [disabled]"', require => [Exec['chocolatelyinstall'],File['checkifexists.exe']], } 我的脚本返回1,如果它发现巧克力源列表(文本匹配是不区分大小写的)输出文本'巧克力[禁用] …所以…这不应该运行如果 c:\TEMP\AutoitScripts\chocolatey>choco source list Chocolatey v0.9.9.6 chocolatey [Disabled] – https://chocolatey.org/api/v2/ 但它似乎总是运行…有没有一个错误? 我只是很困惑?
所以假设在一个非常特定的hiera yaml文件中,我定义了一个variables,比如“env_name”。 env_name:“dev-unstable” 现在在一个更通用的hiera文件中,我想把这个variables插入到一个string中。 server_name:“service – %{env_name}。%{:: domain}” 我的testing似乎意味着层次结构中其他地方的hieravariables在一般情况下不能用于插值。 不幸的是,这是真的吗?
我有一种情况,我必须生成在不同层次的puppet中声明的数组的数组。 可以说在环境一级我有一个声明 test: – [a,b,c,d] – [e,f,g,h] 在common.yaml我有一个声明 test: – [i,j,k,l] – [m,n,o,p] 现在,当我通过hiera_array值我想输出为 [[i,j,k,l],[m,n,o,p],[a,b,c,d],[e,f,g,h]] 目前输出基本上是在一个合并数组值中[i,j,k,l……e,f,g,h] 。 我希望它是一个数组格式的数组,以便我可以将它传递给模板并将其应用于所需的逻辑。 请告诉我是否有办法实现这一点。
我试图自动发现我的整个networking,这是用puppetpipe理的,我想用zabbixnetworking发现function代替Puppetdb出于多种原因。 我已经尝试创build一个名为puppet.classes的用户参数,它将所有类作为逗号分隔值(例如:apache,mysql,zabbix)返回。 这被称为检查发现规则。 然后在我的行动中设置“像apache接收值”,然后“链接到模板:Apache”。 截图 一切都很好,只有less数木偶类,但在我的testing环境中的数据库中的值被截断: [zabbix]> select dserviceid,dhostid,status,lastup,lastdown,value,dns from dservices where dcheckid=3 and type=9 and key_='puppet.classes' \G *************************** 1. row *************************** dserviceid: 9 dhostid: 3 status: 0 lastup: 1464103581 lastdown: 0 value: ,apache,apache::default_confd_files,apache::default_mods,apache::mod::alias,apache::mod::dir,apache::mod::filter,apache::mod::mime,apache::mod::php,apache::mod::prefork,apache::mod::ssl,apache::mod::status,apache::params,apache::service,apache::version,ap dns: 经过很多debugging,我终于发现发现检查不能超过255个字节 src/libs/zbxdbhigh/discovery.c static void discovery_update_dservice(zbx_uint64_t dserviceid, int status, int lastup, int lastdown, const char *value) { char *value_esc; value_esc = […]
你能指导我如何使用hiera或site.pp使我们的服务器知道在环境中的其他服务器的名称? 例如,我们在uat2中有10台服务器,我想把它们列入傀儡,以便服务器知道别人可用
我有我们自己的简单configuration文件的自定义防火墙系统。 它基本上是bash源码,定义一个众所周知的variables: SUPERACCESS="127.0.0.1 192.168.11.0/24" SERVICES="ping 80/tcp 443/tcp 22/tcp" FORWARDING=1 ….. 我想用puppetpipe理这些configuration文件(如果需要的话可能通过augeas)。 因为我是整个木偶生态系统的新手,所以我正在寻找合理简洁的“最佳实践”,以达到这个目的。 我需要只能修改一些选项(所以我不能将configuration作为puppet master的整个文件发送),我不想将这些文件的访问权限制为puppet。 我所需要的只是如何确保某个子网,服务等等是(或不是)在适当的列表中,例如: firewall::superaccess { "LAN" : target => "192.168.11.0/24", ensure=> "present", } 我设法强制augeas使用Shell_variables镜头,我能够改变“简单”的领域,如FORWARDING。 不幸的是,我没有使用Shell_variables_list镜头获得列表值(即SUPERACCESS)。 也许有比使用augeas更好的方法。 我试图看看木偶伪造,如果有一些模块类似的configuration格式,但我没有find任何。 不幸的是,我不太了解ruby和augeas镜头语言,但是如果需要,我会学习一些。 我只是不想从错误的方向开始 更新:感谢Raphink我设法find问题。 这是中间的评论。 如果文件中有这一行: service_ping="ping/icmp" #ping 我得到这个错误: /tmp/augcheck.TCTUBq/parse_file.aug:3.0-.58:exception thrown in test /tmp/augcheck.TCTUBq/parse_file.aug:3.5-.54:exception: Iterated lens matched less than it should Lens: /usr/share/augeas/lenses/dist/shellvars_list.aug:40.12-.37: Error encountered at 176:0 […]
我是新来的傀儡 我读了一堆,设法写一个简单的(可能笨拙的)清单来configuration一个主机和一个类似的简单的结构脚本来处理pre-puppet设置。 太好了,时间更加严肃。 我在apache2下configuration了一个puppet master。 (我在ubuntu 14.04上安装了3.8版的包,感谢来自puppet实验室的deb …) 到目前为止,这么好,但是现在我仍然陷入了一些困境,尽pipe他们正在进行很多的search和比赛。 最终,这归结于如何设置回归testing,以便我相信我总是可以重新创build我的基础。 木偶大师正在apache2下运行。 我认为这是健康的,尽pipe它不抱怨,我在8140服务。但是我想要一个更好的方式来确认,而不是没有错误。 有没有方法来询问主人的健康? 我希望能够做自动化testing。 对于代理人(我的(小)舰队中的个别主机),我可以提出stream浪汉的虚拟名称,告诉他们他们的名字是X,然后做一个傀儡申请。 那么我可以看到主机是否按照我期望的主机X的方式出现。然后我可以在虚拟机上运行一个脚本来检查主机应该做的事情。 但我想自动化,但我奇怪的是没有find常见的食谱这样做。 我敢打赌,这不是我需要发明的东西。 任何指针? 同样的,我也想为主人做自动化testing。 所以这是(1)和(2)在一起,因为我不知道如何testing主。 感谢任何指针。
chef或puppet是否有任何懒散的支持? 是否有任何slackwarepipe理员使用这些? 你有什么经验,你会推荐哪个人维护大约十几台Slackware机器?