AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 790374
Accepted
Zama Ques
Zama Ques
Asked: 2016-07-18 22:07:12 +0800 CST2016-07-18 22:07:12 +0800 CST 2016-07-18 22:07:12 +0800 CST

迁移到 Puppet 4.5.2

  • 772

我们正在迁移到更高版本的 puppet。

新版本:

# puppet --version
4.5.2

现有版本:

#puppet-3.8.7

我们现有的site.pp如下:

#A default site.pp to do a quick test run
import "../classes/*"
import "../nodes/*"
   file { 'testfile':
       path => '/home/test/testfile',
       ensure => present,
       mode => 0755,
       content => "A test file to check a different manifestdir" ,
      }
 Exec { path => ["/bin" , "/sbini/", "/usr/bin" , "/usr/sbin/"]  }

现在由于我们正在迁移到Puppet 4,我认为下面的导入功能包含多个 pp 文件将在这里不起作用Puppet 4

import "../classes/*"
import "../nodes/*" 

如果我没记错的话,我可以将 classes 和 nodes 目录下的所有清单复制到下面的清单目录

/apps/puppetlabs/code/environments/production/manifests/site.pp          

请建议如何将清单更新到 Puppet 的更高版本或没有兼容性问题?

puppet rhel6 puppet-agent
  • 2 2 个回答
  • 1228 Views

2 个回答

  • Voted
  1. Best Answer
    Dominic Cleal
    2016-07-18T23:24:40+08:002016-07-18T23:24:40+08:00

    如果我没记错的话,我可以将 classes 和 nodes 目录下的所有清单复制到下面的清单目录

    是的,清单目录将被递归导入,所以这是最好的做法。

    请建议如何将清单更新到 Puppet 的更高版本或没有兼容性问题?

    有许多细微的变化,因此请使用未来解析器 ( --parser future) 在 Puppet 3 上测试您的清单,看看它们的工作情况如何。

    从Puppet 3.x 到 4.x 开始:获取升级就绪、发行说明和Puppet 3.8 弃用。

    • 3
  2. Zama Ques
    2016-07-29T22:47:36+08:002016-07-29T22:47:36+08:00

    以下是将代码从 Puppet 迁移到 Puppet 4 时必须执行的更改。

    • 不推荐使用导入功能。

    木偶 3 代码:

    我的 site.pp 正在使用导入函数来调用其他清单,如下所示

     import "../classes/*"
     import "../nodes/*"
    

    木偶4代码:

    将节点和类目录复制到“puppet config print manifest”指定的清单目录

      # puppet config print manifest
       /etc/puppetlabs/code/environments/production/manifests
    
      # ls /etc/puppetlabs/code/environments/production/manifests
        classes nodes 
    

    在我的情况下不需要,site.pp因为我们有多个节点的清单。将类和节点放入清单目录将导致 puppet 递归读取每个节点清单节点

    • 编写 Puppet 模板时的语法更改

      木偶 3 代码:

      <%= ipaddress %> dev.example.com

      在 Puppet 4 上应用时看到以下错误

      Call, Failed to parse template /etc/puppet/templates/Node-002/hosts.erb: Filepath: /etc/puppet/templates/Node-002/hosts.erb: Line: 1 Detail: undefined local variable or method 'ipaddress' for #<Puppet::Parser::TemplateWrapper:0x007ffa98fb55c8>

      木偶4代码:

    更新代码如下,之后清单被很好地应用
    <%= @ipaddress %> node-002.example.com

    - 数值属性值的表示

    木偶 3 代码:

     ` file { "/etc/sudoers":
         path => "/etc/sudoers",
         ...
         mode => 440,
        }    `
    

    这因以下错误而失败

         `Error: Failed to apply catalog: Parameter mode failed on File[/etc/sudoers]: The file mode specification must be a string, not 'Fixnum' at /etc/puppetlabs/code/environments/production/manifests/classes/user_default.pp:7`
    

    Puppet 4 Code:修复是将模式值放在引号内

       `file { "/etc/sudoers":
         path => "/etc/sudoers",
         ...
         mode => "440",
        }      ` 
    

    这些是我在迁移到 Puppet 4 时遇到的主要问题。之后迁移就很顺利了。

    • 0

相关问题

  • 如何修复 Puppet 完全限定的参数路径错误?

  • puppet:修改配置文件后强制重启服务

  • 木偶模块资源

  • 傀儡主机名问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve