我有2个debian盒子。 一个与傀儡大师,第二个与木偶。 # puppet -V 2.7.18 在清单中我有: group { "tipadima": ensure => present, } user { "tipadima": shell => $operatingsystem ? { FreeBSD => '/usr/local/bin/zsh', Debian => '/usr/bin/zsh', }, comment => 'tipadima', home => '/home/tipadima', password => '$1$Iasdfsa33Pv$6vF/Pe.Xr.Nv0gGl.VNjx/', groups => 'tipadima', require => Group["tipadima"] , ensure => present, } 但是这在客户端上产生一个错误: 信息:应用configuration版本'1359531648'错误:/ Stage [main] / Tipadima_files […]
每次我在我的Ubuntu服务器上运行puppet时,我都会得到这个: 注意:/ Stage [main] / MyCompany :: Role :: MyApp / Package [ncurses-dev] / ensure:确保已更改'已清除'为'present' 每一个。 单。 时间。 为什么它为这个特定的包,而不是其他的,出现在相同的代码块? Package { ensure => present } package { [ "openjdk-6-jre-headless", # for SOLR "ncurses-dev", # for varnishstat built from buildout, used by munin "pkg-config", "nfs-common", "gettext", # for building PO @deployment "libpcre3", "libpcre3-dev", # for varnish […]
我正在努力改善我的开发工作stream程,但是遇到了一些重大的障碍。 目前,我们在运行XAMPP的本地Windows机器上开发,然后在单独的机器上进行testing,然后通过FTP将更改推送到我们的现场服务器上。 这(我知道)是非常低效的。 我们使用Mediatemple的Dedicate虚拟服务器作为我们的托pipe服务,而且我最近已经了解到使用configuration服务的虚拟机本地开发的优势。 这让我了解到stream浪和厨师 。 让stream浪汉跑起来很容易,但是我努力尝试重新生产我们的服务器,因为他们是如何configuration的(主要是因为Plesk界面),我需要使用特定版本的程序。 例如,我的服务器正在运行CentOS 5.9以下内容: 阿帕奇 / usr / sbin / httpd -v Apache / 2.2.22(Unix) PHP php -v PHP 5.3.5 NGINX (用作apache的前端来处理PHP文件) / usr / sbin / nginx -v nginx的/ 1.3.0 这些只是我需要在厨师食谱中创build的一些项目。 我使用托pipe的厨师,但不能指示如何指定我需要添加到模拟我的活服务器的软件的版本。 有没有人有这样的运气? 我不是100%与厨师绑在一起(也可以使用木偶 ),但主要是听取厨师对傀儡的build议。 谢谢!
你可以传入参数进入木偶像这样….. class foo ($install_version) } #checkout git branch depending on $install_version } 如果没有传递$ install_version,如何设置$ install_version的默认值? 理想情况下,清单将检查所需的git分支,但是如果没有指定分支,它将检出master分支。 http://docs.puppetlabs.com/guides/parameterized_classes.html
我在2.7.11-1ubuntu2.3中尝试了以下内容。 并得到以下错误:err:无法检索远程服务器的目录:服务器上的错误400:无法匹配$(节点xxxx上的/etc/puppet/modules/php5/manifests/init.pp:90 pecl。 任何想法如何我可以运行命令? 在客户端, 傀儡代理 – testing 在主人 exec { "pecl_memcache" : provider => shell, command => "if [ -n "$(pecl install memcache | egrep fail )" ]; then echo y | pecl install memcache-3.0.8; fi", logoutput => true, }
我使用Puppet自动设置服务器工作。 唯一的问题是,在我的堆栈中安装特定版本的软件有点棘手,因为依赖关系有时不符合要求。 例如,我使用的是Apache 2.2.25,但Ubunu 12.04目前以2.4为基础。 由于我不想马上升级,我设置了Puppet来编译并从源码安装Apache。 由于这通常需要一段时间,我想知道我是否可以构build和编译Apache并继续重用构build版本? 什么文件夹,二进制文件,我需要复制的文件,这甚至有可能? 我所尝试的替代scheme也是受欢迎的。
我们使用Puppet来生成我们的/ etc / motd文件。 不幸的是,主机名不总是有相同的长度。 这会在主机名之后创build一个/ etc / motd,有时候会有太多或太less的空间。 ############################################# ## This server is managed from Amsterdam ## ############################################# ############################################# ## web-tst-01 ## ############################################# 可以做些什么,以便根据主机名的长度dynamic改变空格的数量?
Ubuntu 12.04 LTS Server Puppet 3.1.1 根据木偶文件,安装木偶的最好方法是build立一个包裹。 http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#for-debian-and-ubuntu 所以对于Ubuntu 12.04,你可以运行下面的命令: $ wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb $ sudo dpkg -i puppetlabs-release-precise.deb $ sudo apt-get update 我不明白为什么即使运行这些命令,并进行apt-get升级,puppet仍然在版本3.1.1(不是更新的3.3.x)。 我几乎完全使用CentOS服务器,而且我对Debian不是很熟悉。 查看http://apt.puppetlabs.com/pool/precise/main/p/的内容显示.deb文件是在2013年9月12日最后更新的,这应该意味着该文件是最新的。 puppet_3.3.0-1puppetlabs1_all.deb 12-Sep-2013 16:37 9.4K 我怎么知道我是否安装了最新的ppa? 没有从源代码编译安装最新版本的puppet的正确方法是什么? 更新我忘了提及,我已经运行了apt-get升级 root@gitlab:/tmp# apt-get upgrade Reading package lists… Done Building dependency tree Reading state information… Done The following packages have been kept back: linux-headers-generic-lts-quantal linux-image-generic-lts-quantal […]
我有CentOS,5.8,5.7,6.1,6.3,4.7 Ubuntu,Debian,服务器与我的混合。 我希望他们都安装了nrpe。 我面对的问题是,当我写puppet代码来确保packe nrpe,它在Centos 6+上运行正常,但是当它在5.8上运行时,包名是nrpe-nagio,而不是nrpe ..我试过这样做,但无法执行所需的检查。 package { "nrpe": ensure => "installed", name => $operatingsystem ? { Ubuntu => "nagios-nrpe-server", CentOS => "nrpe", { /^5/: { package { "nagios-nrpe": ensure => "installed", } } } Debian => "nagios-nrpe-server", } } 我怎么能嵌套检查我需要什么? 谢谢
我有一些function,做chroot到某个目录。 我用exectypes执行这个命令两次if if-else语句。 第一次我在then一段执行命令,第二次执行else的一些参数。 虽然if返回true – 一切都很好,但如果它返回false所以我收到错误,如chroot not found 。 我的部分代码: define manage_users($some_variables) { some code here … if $action == "create" { $command = "…" exec {"${nsenter} && chroot ${some_dir} /bin/bash -c '${some_command}'": path => ["/usr/sbin", "/usr/bin", "/bin"], } } #delete user else { some code …. exec { "${nsenter} && chroot ${some_dir} /bin/bash […]