Ubuntu 如何自动化Puppet';s模块安装

Ubuntu 如何自动化Puppet';s模块安装,ubuntu,deployment,puppet,continuous-delivery,Ubuntu,Deployment,Puppet,Continuous Delivery,我正在Ubuntu机器上一键部署一个系统。刚开始用木偶做这个。看来,为了让我使用外部模块,我必须使用类似于 puppet module install foo 问题: 我是否总是需要预装模块才能使用它们 如何自动安装Puppet模块 这是一个独立的木偶设置(所以不是主从木偶)。对于不同的客户,我必须重复多次。因此,将很高兴有一个单一的按钮为我做所有的工作。在后期,有一个主从设置的位置。但是,对于每个客户来说,它必须是独立的。我在一个无主机的设置中工作 你应该看看 您可以编写描述所有模块的Pup

我正在Ubuntu机器上一键部署一个系统。刚开始用木偶做这个。看来,为了让我使用外部模块,我必须使用类似于

puppet module install foo
问题:

  • 我是否总是需要预装模块才能使用它们
  • 如何自动安装Puppet模块
    这是一个独立的木偶设置(所以不是主从木偶)。对于不同的客户,我必须重复多次。因此,将很高兴有一个单一的按钮为我做所有的工作。在后期,有一个主从设置的位置。但是,对于每个客户来说,它必须是独立的。

    我在一个无主机的设置中工作

    你应该看看 您可以编写描述所有模块的Puppetfile:

    • 本地目录
    • 远程git
    • 木偶锻造厂
    图书管理员puppet将为您计算模块目录

    librarian-puppet install 图书馆员木偶安装 然后,您可以将其上载到目标计算机并启动puppet apply。 它也适用于流浪汉

    config.vm.provision :puppet, :module_path => "modules" config.vm.provision:puppet,:module_path=>“modules”
    如果您使用的是puppet主机,则只需在主机上安装模块。客户机将不需要它们,因为主机将为它们编译配置


    因此,如果您想使用某个模块,只需在主机上安装一次“puppet module install foo”即可。

    回答我自己的问题

    我是否总是需要预装模块才能使用它们

    不,我没有。在单节点设置(无主)中,可以将模块放入
    --modulepath=/my module root
    路径中,puppet将拾取它们。我的问题是模块的文件夹名与
    init.pp
    中的类不匹配。比如说

    | modules | -- gini_cassandra ++ HERE ++ | ---- manifests | ------ init.pp 有一次,我把基尼·卡桑德拉(gini_cassandra)改名为卡桑德拉(cassandra)

    如何自动安装Puppet模块


    由于我不需要
    在无主设置中安装
    模块,因此我不需要将其自动化。然而,我发现
    图书管理员傀儡
    (多亏了这个)真的很有用。我不需要对外部模块进行版本控制。图书管理员将在我的机器、我运行安装的目标机器和构建机器上为我提取它们。

    有意义。然而,在我的设置中,它是一个单独的傀儡节点。对于每个客户,我必须重复多次。有没有办法排除
    puppet module install foo
    的手动步骤?创建一个puppet类,用exec资源安装它们?这不完全是我想要的,但我发现Library puppet非常有用。它也可以在Windows上工作,Windows是我的开发平台。竖起大拇指寻求帮助。我会把我自己的答案标记为接受。
    class cassandra ...