如何使用Bash脚本安装Puppet并立即运行模块?

时间:2017-05-12 00:29:14

标签: linux bash ubuntu puppet

我目前无法让我的模块工作。

我的目标是创建一个脚本,添加存储库以安装括号,安装puppet和复制现有模块

finaldigi / manifests / init.pp ---->>> / etc / puppet / modules文件夹

出于某种原因,如果我手动执行所有脚本命令,模块就可以工作,但是当我将它们放入脚本并运行它时,它会显示以下错误:

  

错误:Puppet :: Parser :: AST ::资源失败,错误ArgumentError:   无法在节点的第1行找到声明的类packagemodule   xubuntu.dhcp.inet.fi

     

错误:Puppet :: Parser :: AST ::资源失败,错误ArgumentError:   无法在节点的第1行找到声明的类packagemodule   xubuntu.dhcp.inet.fi

这是我的init.pp文件

class packagemodule {

       package { brackets:
               ensure => 'installed',
               allowcdrom => 'true',
       }

       package { apache2:
             ensure => 'installed',
             allowcdrom => 'true',
       }

       file {'/var/www/html/index.html':
             content => "testing testing",
       }
    }

我的剧本:

#!/bin/bash
echo | sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install -y puppet
sudo cp -r ./finaldigi /etc/puppet/modules
sudo puppet apply -e 'class {packagemodule:}'

所以是的,如果我手动输入所有命令,它会工作并且不会显示任何错误,但如果我开始将所有这些命令放入我的bash脚本中,它就不起作用并开始显示该错误。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

 sudo cp -r ./finaldigi /etc/puppet/modules

这会创建/etc/puppet/modules/finaldigi/etc/puppet/modules/finaldigi/manifests/init.pp,但是如果这是您在里面使用的类名,那么该目录应该被称为packagemodule

将其更改为:

 sudo cp -r ./finaldigi /etc/puppet/modules/packagemodule

(如果这不起作用,请提供find /etc/puppet/modules输出,提供您正在使用的Puppet版本,并输出puppet apply --configprint modulepath