如何以正确的方式修复我的木偶依赖?
How to fix my puppet dependency in the correct way?
我有一个适合 apt-get update
的模块(我的自定义模块,我正在学习并想探索更多)。我还有两个用户定义的资源类型 apt::key
和 apt::source
。
假设我想安装一个包示例 docker
,我们需要为其添加 apt 密钥和源代码。因此,我理想情况下希望按顺序执行
- 配置密钥然后为apt
配置源
- apt-get 更新
- 安装docker包
现在我想确保我的代码也位于正确的 类 下并遵循正确的依赖关系。我的目录结构看起来像
├── apt
│ └── manifests
│ ├── init.pp
│ ├── key.pp
│ ├── packages.pp
│ ├── source.pp
│ └── update.pp
└── docker
└── manifests
├── init.pp
├── install.pp
我应该在哪里定义 docker 的键和源以及我应该如何实现依赖?我的依赖项应该在这些模块内还是在节点定义下的默认清单文件中?
编辑:添加更多上下文
我很困惑,因为我可以通过两种选择来实现这一点:
- 有 docker::install 有 apt::source 和 apt::key docker。在这种情况下,我的 apt::source 将通知 apt::update 并且 docker 软件包将在 apt-update 之后安装。虽然这种方法的问题是我必须在每次 apt 源更改后 运行 apt 更新。
- 有 apt::source 声明我的项目所需的所有源和密钥。问题是我的 apt 模块会与其他模块耦合。
因此我想看看人们是如何做到这一点的,还有其他我没有想到的选择。
having docker::install have apt::source and apt::key for docker
我认为这是正确的方法,因为它 contains/encapsulates 将所有资源整齐地放入需要它们的模块 (docker
) 中。
Though the problem with this approach is I have to run apt update after each apt source change.
这是系统应该做的事情 - 如果源发生变化,例如URL 更改,您应该 运行 apt-get update
重新加载包列表,因为它们可能已过时。在我看来,来源不太可能经常更改。
如果您在整个目录中有多个 apt 源(即来自其他模块),那么 Puppet 代理在评估所有 apt 源资源(通知某些东西放置一个也隐含 before
关系。)
我有一个适合 apt-get update
的模块(我的自定义模块,我正在学习并想探索更多)。我还有两个用户定义的资源类型 apt::key
和 apt::source
。
假设我想安装一个包示例 docker
,我们需要为其添加 apt 密钥和源代码。因此,我理想情况下希望按顺序执行
- 配置密钥然后为apt 配置源
- apt-get 更新
- 安装docker包
现在我想确保我的代码也位于正确的 类 下并遵循正确的依赖关系。我的目录结构看起来像
├── apt
│ └── manifests
│ ├── init.pp
│ ├── key.pp
│ ├── packages.pp
│ ├── source.pp
│ └── update.pp
└── docker
└── manifests
├── init.pp
├── install.pp
我应该在哪里定义 docker 的键和源以及我应该如何实现依赖?我的依赖项应该在这些模块内还是在节点定义下的默认清单文件中?
编辑:添加更多上下文 我很困惑,因为我可以通过两种选择来实现这一点:
- 有 docker::install 有 apt::source 和 apt::key docker。在这种情况下,我的 apt::source 将通知 apt::update 并且 docker 软件包将在 apt-update 之后安装。虽然这种方法的问题是我必须在每次 apt 源更改后 运行 apt 更新。
- 有 apt::source 声明我的项目所需的所有源和密钥。问题是我的 apt 模块会与其他模块耦合。
因此我想看看人们是如何做到这一点的,还有其他我没有想到的选择。
having docker::install have apt::source and apt::key for docker
我认为这是正确的方法,因为它 contains/encapsulates 将所有资源整齐地放入需要它们的模块 (docker
) 中。
Though the problem with this approach is I have to run apt update after each apt source change.
这是系统应该做的事情 - 如果源发生变化,例如URL 更改,您应该 运行 apt-get update
重新加载包列表,因为它们可能已过时。在我看来,来源不太可能经常更改。
如果您在整个目录中有多个 apt 源(即来自其他模块),那么 Puppet 代理在评估所有 apt 源资源(通知某些东西放置一个也隐含 before
关系。)