如何使用 Bash 脚本安装 Puppet 并立即 运行 一个模块?
How can I use Bash script to install Puppet and instantly run a module?
我目前无法让我的模块正常工作。
我的目标是拥有一个脚本,该脚本将添加一个存储库以安装支架、安装 puppet 并复制现有模块
finaldigi/manifests/init.pp ---->>> /etc/puppet/modules 文件夹
出于某种原因,如果我手动执行所有脚本命令,该模块可以正常工作,但是当我将它们放入脚本中并 运行 它时,它会显示此错误:
Error: Puppet::Parser::AST::Resource failed with error ArgumentError:
Could not find declared class packagemodule at line 1 on node
xubuntu.dhcp.inet.fi
Error: Puppet::Parser::AST::Resource failed with error ArgumentError:
Could not find declared class packagemodule at line 1 on node
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 脚本中,它就不起作用并开始显示该错误。
我在这里错过了什么?
sudo cp -r ./finaldigi /etc/puppet/modules
这将创建 /etc/puppet/modules/finaldigi
和 /etc/puppet/modules/finaldigi/manifests/init.pp
,但如果您在内部使用的是 class 名称,则该目录应称为 packagemodule
。
将其更改为:
sudo cp -r ./finaldigi /etc/puppet/modules/packagemodule
(如果这不起作用,请提供 find /etc/puppet/modules
输出,提供您正在使用的 Puppet 版本,以及 puppet apply --configprint modulepath
的输出)
我目前无法让我的模块正常工作。
我的目标是拥有一个脚本,该脚本将添加一个存储库以安装支架、安装 puppet 并复制现有模块
finaldigi/manifests/init.pp ---->>> /etc/puppet/modules 文件夹
出于某种原因,如果我手动执行所有脚本命令,该模块可以正常工作,但是当我将它们放入脚本中并 运行 它时,它会显示此错误:
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class packagemodule at line 1 on node xubuntu.dhcp.inet.fi
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class packagemodule at line 1 on node 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 脚本中,它就不起作用并开始显示该错误。
我在这里错过了什么?
sudo cp -r ./finaldigi /etc/puppet/modules
这将创建 /etc/puppet/modules/finaldigi
和 /etc/puppet/modules/finaldigi/manifests/init.pp
,但如果您在内部使用的是 class 名称,则该目录应称为 packagemodule
。
将其更改为:
sudo cp -r ./finaldigi /etc/puppet/modules/packagemodule
(如果这不起作用,请提供 find /etc/puppet/modules
输出,提供您正在使用的 Puppet 版本,以及 puppet apply --configprint modulepath
的输出)