puppet/puppet-dev-toolsPuppet Dev Tools是一个集成了多种Puppet开发工具的Docker镜像,旨在简化Puppet模块的开发、测试和验证流程。该镜像包含PDK(Puppet Development Kit)、Onceover以及一系列预安装的Rake任务,适用于Puppet模块的语法检查、测试执行、文档生成等开发环节。
<year>-<month>-<day>-<short-string>每次合并到master分支会生成以此标签命名的镜像,格式为构建日期加简短Git SHA。适合需要固定版本而非使用4.x动态更新的场景。镜像间的变更包括GitHub提交历史中的更新以及构建时拉取的操作系统包更新,同时会包含最新版本的PDK。
<year>-<month>-<day>-<short-string>-rootless与上述标签功能相同,但容器以puppetdev用户身份运行,提供无root权限的执行环境。
4.x用于CD4PE(Continuous Delivery for Puppet Enterprise)4.x版本的标签,由维护团队定期手动更新。
latest遗留标签,并非最新的puppet-dev-tools构建,适用于CD4PE 4.0之前的旧版本,由CD4PE团队手动创建。
通过以下命令运行容器,其中<command>替换为支持的工具命令:
bashdocker run --rm -v $(pwd):/repo puppet/puppet-dev-tools <command>
--rm:容器退出后自动删除-v $(pwd):/repo:将当前工作目录挂载到容器内的/repo目录,便于工具访问本地代码pdkbashdocker run --rm puppet/puppet-dev-tools:4.x pdk --help
onceoverbashdocker run --rm puppet/puppet-dev-tools:4.x onceover --help
bashdocker run --rm -v $(pwd):/repo puppet/puppet-dev-tools:4.x rake -f /Rakefile lint
bashdocker run --rm -v $(pwd):/repo puppet/puppet-dev-tools:4.x rake -f /Rakefile lint syntax yamllint
若控制仓库包含Gemfile,需修改命令以安装依赖:
bashdocker run --rm -v $(pwd):/repo puppet/puppet-dev-tools:latest \ /bin/bash -c "bundle install && bundle exec onceover run spec --force --trace --parallel"
| 命令 | 描述 |
|---|---|
| rake beaker | 运行beaker验收测试 |
| rake beaker:sets | 列出可用的beaker节点集 |
| rake beaker:ssh[set,node] | 尝试使用vagrant登录到Beaker节点 |
| rake build | 构建Puppet模块包 |
| rake build:pdk | 使用PDK构建Puppet模块 |
| rake build:pmt | 使用PMT构建Puppet模块包(仅支持Puppet < 6.0.0) |
| rake check | 运行静态发布前检查 |
| rake check:dot_underscore | 若目录中存在._文件则失败 |
| rake check:git_ignore | 若目录包含.gitignore中指定的文件则失败 |
| rake check:symlinks | 若目录中存在符号链接则失败 |
| rake check:test_file | 若tests文件夹中存在.pp文件则失败 |
| rake check_for_spec_tests | 获取spec测试状态 |
| rake clean | 清理已构建的模块包 |
| rake compute_dev_version | 打印模块的开发版本 |
| rake generate_fixtures | 基于Puppetfile生成fixtures.yml文件 / 为role/profile生成Fixtures文件 |
| rake generate_spec_tests | 为缺失的类生成spec测试 |
| rake help | 显示可用的rake任务列表 |
| rake hiera_setup | 修改hiera.yaml以指向与其位置相对的hieradata |
| rake lint | 运行puppet-lint |
| rake lint_fix | 运行puppet-lint |
| rake parallel_spec | 并行运行spec测试,成功后清理fixtures目录 |
| rake parallel_spec_standalone | 并行运行spec测试 |
| rake pe_only_mods | 显示仅PE的模块 |
| rake r10k:dependencies | 打印过时的forge模块 |
| rake r10k:duplicates | 检查Puppetfile中的重复项 |
| rake r10k:install | 安装Puppetfile中指定的模块 |
| rake r10k:solve_dependencies[allow_major_bump] | 查找缺失或过时的模块依赖 |
| rake r10k:syntax | 语法检查Puppetfile |
| rake r10k:validate | 验证git URL及分支、引用或标签 |
| rake release_checks | 在模块发布前运行所有必要检查 |
| rake rubocop | 运行RuboCop |
| rake rubocop:auto_correct | 自动纠正RuboCop违规 |
| rake run_tests | 运行测试 |
| rake spec | 运行spec测试,成功后清理fixtures目录 |
| rake spec:simplecov | 使用ruby simplecov代码覆盖率运行spec测试 |
| rake spec_clean | 清理fixtures目录 |
| rake spec_clean_symlinks | 清理所有fixture符号链接 |
| rake spec_list_json | 以JSON文档列出spec测试 |
| rake spec_prep | 创建fixtures目录 |
| rake spec_standalone | 运行RSpec代码示例 |
| rake strings:generate[patterns,debug,backtrace,markup,json,markdown,yard_args] | 使用YARD生成Puppet文档 |
| rake strings:generate:reference[patterns,debug,backtrace] | 生成Puppet参考文档 |
| rake strings:gh_pages:update | 更新gh-pages分支上的文档并推送到GitHub |
| rake syntax | 语法检查Puppet清单和模板 |
| rake syntax:hiera | 语法检查Hiera配置文件 |
| rake syntax:manifests | 语法检查Puppet清单 |
| rake syntax:templates | 语法检查Puppet模板 |
| rake validate | 检查Ruby文件语法并调用:syntax和:metadata_lint |
| rake yamllint | 运行yamllint |



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务