我使用木偶来提供一个stream浪者(基于Ubuntu的)虚拟机。 在我的脚本中,我需要: sudo apt-get build-dep python-lxml 我知道我可以安装apt puppet模块,所以我可以使用: apt::builddep { 'python-lxml': } 但是我找不到有关从脚本安装模块的任何参考,以及如何包含/需要它。 在我看来,木偶文档只是指从命令行木偶工具安装 我也尝试做类似的事情: define build_dep($pkgname){ exec { "builddepend_$pkgname": commmand => "sudo apt-get build-dep $pkgname"; } } build_dep{ "python-imaging": pkgname => "python-imaging"; "python-lxml": pkgname => "python-lxml"; } 但傀儡退出这个错误。 并且: exec{"install apt module": command => "puppet module install puppetlabs/apt" } class { 'apt': require => […]
当我定义(?)资源,例如确保目录结构时,是否有可用的循环? 像那样: for X in [app1,app2] do: file { '/opt/app/' + X: ensure => directory, owner => 'root', group => 'root', mode => '0644', } 我有几十个目录,我真的很厌烦在puppet中声明它。这将需要15 bash的bash。 有任何想法吗?
这是我的天真做法: # puppet/init.pp $x = 'hello ' + 'goodbye' 这不起作用。 如何在Puppet中连接string?
我想在Puppet运行时输出消息和variables。 我看到有两个function可能会帮助但不能真正使用它们。 我的site.pp文件: info "running site.pp info" debug "running site.pp debug" 当我在客户端上运行时: puppet -t 我没有得到这些打印。
我正在学习木偶,并试图在家里的虚拟机上进行试验。 我还没有使用puppet服务器,只是在本地运行。 它工作正常,但每次我运行puppet apply … ,我得到了几秒钟的延迟,之后它显示消息 warning: Could not retrieve fact fqdn 我假设这条消息与延迟有关,我想摆脱它(延迟 – 我可以忍受这个消息)。 谷歌search解决scheme似乎表明,这是与DNS查询有关,但我真的不能find任何其他的东西,这似乎令人惊讶。 我所要的只是能够快速地在我的虚拟机上应用清单,所以我可以尝试。 我如何加快速度? 更新:我没有看到任何额外的信息在debugging输出,但它看起来像这样: $ puppet apply -dv puppet-1.pp warning: Could not retrieve fact fqdn debug: Failed to load library 'rubygems' for feature 'rubygems' debug: Failed to load library 'selinux' for feature 'selinux' debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows is missing … […]
在黑暗时代,我通常开发的LAMP Web应用程序是在我的机器上进行本地testing。 PHP(在我的情况下),数据库和Web服务器都是本地安装的。 服务器是使用标准安装的Apache和MySQL进行安装的,而且我有多个虚拟主机用于Web应用程序的不同部分。 当我对我在本地机器上得到的结果感到满意时,我将login到服务器,然后在暂存环境中进行git pull 。 假设服务器上的所有东西都和我的机器一样,我也会为生产做同样的事情。 新的开始… 所以现在我从头开始一个全新的Web应用程序,我想要“正确的方式”。 我已经读了Docker,Vagrant和Puppet(还有厨师,尽pipe我个人更喜欢Puppet的依赖系统而不是Chef的迭代过程)。 尽pipe我所做的所有研究,似乎仍然有几个问题,我似乎无法find答案: 是否应为Web服务器(如Apache),数据库服务器(如MySQL)和Web应用程序的每个部分分别安装Docker容器? 当我谈论Web应用程序的某些部分时,我指的是mysite.com , controlpanel.mysite.com等等。这些“部分”将共享相同的数据库。 由于Docker似乎为Web和数据库服务器提供了现成的容器,所以至less应该将这些东西放在单独的容器中。 我的networking应用程序的不同部分应该在不同的容器中吗? Docker容器似乎被devise成可replace的,而不是我必须更新里面的软件。 他们写的数据怎么样,我不想丢失? 数据库服务器将pipe理与我的数据库内容相关的文件(我将要备份)。 Web服务器将创build日志,我的Web应用程序将pipe理各种文件和caching等。所有这些文件都需要写在应用程序的容器之外(因为我可能在更新时replace它们),所以它们在哪里? 直接进入主机的文件系统? 或成为一个单独的“docker卷”? 如果他们进入Docker卷,我应该使用一个单独的卷为数据库,Web服务器,应用程序等? 我是否仍然可以像现在一样使用本地机器上的SFTP轻松访问内容? 我不想在这里失去任何便利! 使用Puppet创build和pipe理开发服务器和生产服务器的Docker容器是不是一个好主意? 看来Puppet支持直接pipe理Docker容器,所以这似乎是从头开始轻松设置服务器或生产环境(使用Vagrant)的相当好的方法。 希望我已经提出了一些相关的问题; 为了开发和生产类似LAMP的networking应用程序,获得一些适当的“最佳实践”将是非常好的,只是似乎没有多less我find的!