我在Windows上运行木偶,我想升级一个使用msi安装的软件包(java)。 我使用安装包 package { 'java': ensure => installed, provider => 'msi', source => 'S:\jdk1.6.0_30.msi', install_options => { 'INSTALLDIR' => 'C:\tools\java' }, } 现在我想升级到31例如,所以我试着运行 package { 'java': ensure => installed, provider => 'msi', source => 'S:\jdk1.6.0_31.msi', install_options => { 'INSTALLDIR' => 'C:\tools\java' }, } 这实际上并没有升级,因为已经安装了“java”包。 当我尝试将“确保”值更改为最新时,puppet说提供者types必须具有可升级的function。 这只是一个窗口限制? 有没有办法使用msi包升级现有的Java安装?
我们使用Ruby,Collectd,Ant,Java(以及更多)的版本,这在CentOS或EPEL版本中是不可用的。 到目前为止,我们的安装策略一直是一种破坏: 为每个包编写一个(版本控制的)脚本,将源代码或二进制代码通过curl下载到Puppet主机上,并在必要时编译源代码; 重新包装成gzipped tarball,如果有必要的话 使用Puppet文件服务器将二进制文件分发到我们的服务器,而Puppet则清除了在/ usr / local(或任何地方) 编写脚本可能会很痛苦,如果我们依赖下载的站点之一更改其API,则必须更新它们。 同样,软件在每个环境中分别编译,这看起来很浪费,并且可能会导致编译时依赖项缺失的问题(例如,Ruby:require'readline'或者'yaml'可能在某些环境中工作, 所以,我可以想到另外两个select: 只需将定制的第三方二进制文件检入到Subversion中,并将其与我们其余的Puppet代码一起分发即可。 我担心这会严重影响结账和木偶代码的性能, 我们正在研究将近800MB(和不断增长的)第三方代码。 再加上它只是感觉不对,像Java的多版本和体系结构并行版本控制。 不要版本控制二进制文件或编写下载脚本 – 当我们决定升级Ruby时,在开发箱上进行编译,并在我们决定升级时,将新软件包手动上传到我们所有的Puppet master。 除此之外,如果包裹被</s>灭了呢? 或在不同的主人不同步? 现在我们可以轻松地从头开始重新生成所有的定制软件包。 哪三种select更好? 人们通常如何使用Puppetpipe理自定义编译/重新打包的第三方软件? 如果您创build了本地Yum存储库,那么您是否使用版本控制来创buildRPM? 如果你的Yum回购消灭,会发生什么?
我已经使用以下文档configuration了一个模块来设置新组: http : //docs.puppetlabs.com/references/latest/type.html#group 。 [root@puppetmaster ~]# cat /etc/puppet/modules/change-groups/manifests/init.pp class change-groups { group { "newgroup": gid => 3651, members => "user1,user2", } } 不幸的是我得到一个错误信息。 可能是什么原因? info: /Group[newgroup]: Provider groupadd does not support features manages_members; not managing attribute members
我发现自己花了很多时间来设置新的服务器。 我总是有相同的软件堆栈: nginx mysql php + php-fpm + xcache memcached munin 我从我的github回购所有的configuration和init.d脚本。 我的所有服务器都运行Debian。 我的第一步通常是apt-get update和apt-get install vim(和其他基本包)。 Capistrano或Puppet能够自动化这个过程吗? 如果两者都是,哪一个更适合这个工作呢? PS:我更喜欢Capistrano,因为我对Ruby感到舒服。
使用ensure => latest ,我有不需要所有相同的包的系统。 将ensure => latest安装软件包,或只有在已经存在的情况下才进行更新? 如果他们不在场,我不希望他们安装。 这是为了保持现有的软件包与最新的补丁。 我没有尝试过,因为害怕在不需要它的系统上安装一个软件包。
在我目前正在使用的模块中,我得到了一些需要设置的configuration选项,它们具有默认值…并且应该被分割成更短的模板文件,否则它将成为滚动的噩梦。 推荐的方式是使用一些第三方模块。 有没有内置的方式?
CentOS 7自带了ruby 2.0.0.353-20.el7。 我试图在那里安装木偶,并且遇到错误。 首先我运行: rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm rpm -ivh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-1.noarch.rpm 那些工作很好。 然后我遇到了这个问题: [root@localhost /]# yum install puppet Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.beyondhosting.net * epel: mirrors.mit.edu * extras: mirror.tocici.com * updates: centos.chi.host-engine.com Resolving Dependencies –> Running transaction check —> Package puppet.noarch 0:3.6.2-3.el7 will be installed –> Processing Dependency: […]
我是新来的木偶和stream浪汉,但我正在开发自己的木偶清单,目的是build立一个stream浪汉盒子。 也就是说,傀儡清单在我主机上的stream浪目录中,stream浪者正在调用木偶 – 没有傀儡服务器。 事情是,我的工作stream程是: while(not working as desired) { vagrant destroy amend manifest vagrant up } …这意味着相当多的等待。 什么是更好的工作方式?
木偶使用augeas。 使用Puppet而不是Augeas本身的收益是多less?
我想有一个地方为我的用户定义了ssh密钥。 这些用户可以在单个服务器上具有不同(多个)angular色。 所以我将ssh_authorized_key定义为虚拟的,然后想要以不同的angular色来实现它们。 例: @ssh_authorized_key { "user_a": tag => ['deployer', 'developer', 'root'], key => "xxx", type => "ssh-dss", ensure => present; "user_b": tag => ['deployer', 'root'], key => "yyy", type => "ssh-dss", ensure => present; "user_c": tag => ['root', 'deployer'], key => 'zzz', type => "ssh-rsa", ensure => present; } 然后在单个节点上为多个用户实现它们: Ssh_authorized_key<| tag == 'root' […]