用于切换从锻造装置安装的木偶模块的过程

时间:2013-11-24 13:31:49

标签: puppet

我安装了:

puppet module uninstall branan/minecraft

并使用:

class { 'minecraft': }

伪造的模块。这个模块特别安装和配置了一个Minecraft服务器,但我遇到的问题确实与所有模块有关。

因此,在配置之后,服务器现在运行了一个新服务以及存储在/ opt / minecraft中的所有minecraft文件。

我想尝试新的Minecraft模块的那一天,因为它意味着允许更多的自定义,更容易使用等。

如何切换模块?在我看来,我需要做一些像:

  1. 以某种方式还原当前模块所做的所有更改,例如: class {'minecraft': ensure => purged }
  2. 运行puppet申请以应用更改......
  3. 运行puppet module uninstall branan/minecraft --modulepath puppet/forge-modules
  4. 安装新模块
  5. 使用高级配置选项添加新类,例如class {'minecraft': heap_size => '1024M' }
  6. 再次运行木偶......
  7. 这似乎是一个漫长而且手动的过程,涉及两个木偶申请和一个直至最后一步的一个Minecraft服务器。

    我认为class {'minecraft': ensure => purged }甚至不起作用,据我所知,该模块没有删除文件或创建服务的代码。

    正如你所看到的,我很困惑,我可能会遗漏一些明显的东西。谢谢!

1 个答案:

答案 0 :(得分:1)

你们大部分时间都是正确的。

ensure参数很大程度上取决于类如何使用它。据我所知,ensure参数是硬编码的。

与接受ensure参数的新模块相比,作者没有以允许卸载的方式编写模块。

您最好的选择是手动停止服务 - 通过命令行或使用puppet(未经测试)。

命令行:改编自linux script to kill java process

ps -ef | grep minecraft

注意id

kill 1234

其中1234是正在运行的minecraft实例的id。

Puppet :理论上,这应该有效,因为您可以访问模块提供的类。我自己亲自尝试过。

service { 'minecraft':
    ensure => stopped
}

最后,您可能想要也可能不想删除配置文件。它们似乎都位于minecraft主目录下,默认情况下位于/opt/minecraft下。这些不会影响新模块,因为新模块会覆盖它们或使用单独的目录进行配置。

然后您可以卸载旧模块,并安装新模块

一般来说,应用木偶脚本不应该花费太长时间,每次不超过一分钟。