尽可能多的人,我和傀儡有一个阶级依赖问题。 一个类得到执行得太早,或者我最终在一个依赖周期。 以下设置: node foo: require base include somethingelse class base: require sources // <- class defines package sources needed for everything class somethingelse apt::builddep { 'foo': } // <- requires some package sources 据我了解,节点foo被执行,但有一个base的要求,所以木偶继续执行。 base的第一线需要sources所以木偶将首先执行。 builddep最后。 然而它却完全相反。 源代码在任何时候都没有任何逻辑(比如没有依赖的资源)被执行。 在builddep之后的很多次,因为它需要的源码还没有出现,所以导致了一个puppet错误。 当我像这样定义节点依赖关系时: include "base" include "somethingelse" Class['base'] -> Class['somethingelse'] 或者添加Class['sources']作为依赖到builddep,我得到一个类似这样的依赖循环: (Anchor[apt::source::puppetlabs] => Apt::Source[puppetlabs] => Class[Sources] => […]
我们这样定义用户: user { 'belmin': ensure => present, uid => 308, comment => 'Belmin Fernandez', managehome => true, password => '$6$NrtZpXEauUqjdRh0$vE9oJwbNTSWVCGrlDe4KHXFB0KXY7hszSas3v0DZvhUej4SIb/WLfaCy.lmSU7Hh8AAvAbPuDRai2p1X9mDcM0', } 我想定义一个types,它将在puppet master的本地/etc/shadow查找,如果用户在那里,则使用该密码散列。 就像是: define our_user ($user = $title, $uid, $fullname, $default_hash) { $shadow_hash = get_hash_from_local_shadown_somehow if $shadow_hash == '' { $shadow_hash = $default_hash } user { $user: ensure => present, uid => $uid, comment […]
假设我有一个site.pp像这样: class videoServer { file { '/root/testFile' : ensure => present } file { '/root/testFile2' : ensure => present } file { '/root/testFile3' : ensure => present } } node s1.example.comf { include videoServer } node s2.example.comf { include videoServer } 所以我有一个类文件的资源和两个节点,其中包括这个类3 videoServer。 我试图找出是否有一个简单的方法来改变资源的属性,甚至完全排除它们。 例如,我想排除s2.example.com节点中的/ root / testFile2。 我会改变它的确保属性为'缺席'。 但是,如果它确实存在,那么这个语法是什么? 如果这是不可能的,我应该如何回顾课程,使其不那么痛苦? 是的,我可以使用这样的类参数: class videoServer ( […]
我正试图让烧杯与启用了Upstart的Dockerfile集成。 这是我当前的节点集: HOSTS: ubuntu-server: roles: – master platform: ubuntu-14.04-x64 image: ubuntu-upstart:14.04 hypervisor: docker docker_cmd: '/sbin/init' docker_preserve_image: true docker_image_commands: – wget –no-check-certificate https://apt.puppetlabs.com/puppetlabs-release-trusty.deb – apt-get install -y wget ca-certificates – dpkg -i puppetlabs-release-trusty.deb – apt-get update – apt-get -y install puppet curl ntpdate git ruby – "sed –in-place=.bak 's/without-password/yes/' /etc/ssh/sshd_config" CONFIG: log_level: verbose type: foss 问题是这个容器从来没有启动,如docker […]
我知道这个问题之前已经有很多不同的变种。 我读了所有与这个问题有关的post,但是我不能让代理人和主人彼此交谈。 我通过在linuxmint 17上运行的vmwork站启动了2个vm。 我将通过告诉客户端和puppetmaster中的/ etc / hosts和/ etc / hostname是什么来启动这个线程。 在我的客户端的vm中,我在/ etc / hostname中的主机名如下所示: puppetclient / etc / hosts中客户端的虚拟主机如下所示: 127.0.0.1 localhost 127.0.1.1 puppetclient 192.168.75.143 puppetmaster 在我的主人的VM / etc /主机名如下所示: puppetmaster 我的主vm / etc / hosts如下所示: 127.0.0.1 localhost 127.0.1.1 puppetmaster 192.168.75.144 puppetclient 在我的主人/我的/etc/puppet/puppet.conf如下所示: [main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter templatedir=$confdir/templates prerun_command=/etc/puppet/etckeeper-commit-pre postrun_command=/etc/puppet/etckeeper-commit-post [master] # These […]
微软似乎更喜欢厨师而不是木偶? 厨师和Azure周围似乎比木偶更“嗡嗡”。 https://docs.getchef.com/plugin_knife_azure.html https://www.getchef.com/solutions/azure/ 如果这个问题不清楚的话,那就是。 在Azure上运行Chef over Puppet有多less好处? 我并不是指“概念性”“大观”式的优势。 我希望听到那些有脏手的人,可以谈论“哦,如果我只是使用木偶,这会更容易”或“感谢上帝,我在厨师或这将已经难以在木偶“。 所以,例如我主要处理AWS,对于我来说,使用OpsWorks,我可以直接指向一个厨师食谱并运行它。 傀儡不可能实现木偶客户端安装。 作为一名顾问,有时候为不想要/不需要整个剪贴的客户工作,就派上用场了。
请参阅puppetmaster.conf和dashboard-vhost.conf文件的要点 。 我有我的Puppetmaster(3.7.3)在Apache和Passenger端口TCP / 8140下运行在CentOS 6.5上。 它工作正常。 但是我的Puppet仪表板也运行在80端口的Passenger下,当我浏览到端口80上的服务器IP /主机名时会产生这个错误: The environment must be purely alphanumeric, not '' 如果我从/etc/httpd/conf.d删除了puppetmaster.conf文件,我可以浏览到仪表盘。 当我把它放回去,我得到的错误。 我已经研究过这个,而且我发现的所有东西在有人在端口8140上浏览到Puppetmaster的上下文中显示了这个错误,尽pipe我正在浏览端口80.我感觉我正在寻找错误的地方。
我试图通过使用Puppet在生产环境中的所有服务器上设置自定义的.vimrcconfiguration文件。 我写了下面的清单: class vim { file { "/etc/skel/.vimrc": path => '/etc/skel/.vimrc', ensure => present, mode => "664", source => "puppet:///modules/vim/.vimrc", } } file { "/root/.vimrc": path => '/root/.vimrc', ensure => present, mode => "664", source => "puppet:///modules/vim/.vimrc", } } 清单的第一部分工作起来像一个魅力,并将.vimrc文件添加到/etc/skel ,但由于某种原因,第二部分不起作用,即使您可以看到它与path完全相同的configuration,第二部分的path是root的主目录。 木偶是否有理由忽略这一部分? 那是因为它涉及到root的home文件夹有一些防御? 编辑#1: [root@sgproxy04 ~]# ls -la /root/ total 2452 dr-xr-x—. 3 root root […]
我最近注意到,Puppet代理正在我定义的目录中创build名称为“1”的零长度文件: file { '/opt/foo/': ensure => directory, owner => 'bar', group => 'bar', } 结果是: ls -lah /opt/foo drwxr-xr-x 2 bar bar 4.0K Feb 23 18:58 . drwxr-xr-x. 7 root root 4.0K Feb 23 18:42 .. -rw-r–r– 1 root root 0 Feb 23 18:59 1 木偶版本:3.7.4 CentOS 6.5
当我尝试在我的服务器(Windows 2008 R2)上安装我的木偶代理时,confdir似乎默认为u:\ drive。 U:用户不存在驱动器。 我也可以看到puppet labs目录在C:\ProgramData\PuppetLabs\puppet\etc 当我试图通过运行木偶: puppet agent –test 我仍然得到以下错误。 Validation of File[U:/.puppet/var/log] failed: Failed to get volume information: The system cannot find the path specified. 我已经在我的其他Windows 2008 R2服务器上成功安装了这个软件。 有任何想法吗?