主机是 Windows 8 我准备了一个执行 secure_mysql_installation 的 shell 脚本 这是文件夹结构
c:\我的项目\ 瓦格兰文件 木偶\ 文件\ 安全mysql配置文件 主節\ 初始化文件
这是我的 puppet 代码,用于将本地主机 shell 脚本复制到 vagrant box
类安全mysql安装{ 文件 {'/tmp/secure_mysql.sh': 源 => 'puppet:///files/secure_mysql.sh', 确保 => 存在, } }
当 vagrant up 时,它给了我一个错误 ==> default: 错误:/Stage[main]/Secure_mysql_installation/File[/tmp/secure_mysq l.sh]:无法评估:找不到文件:无效的挂载'secure_mysql.sh' 无法检索 puppet:///files/secure_mysql.sh 的文件元数据:找不到文件:无效的挂载'secure_mysql.sh'
答案1
在客户机上,该文件夹将位于/vagrant/puppet/files
,但您根本不想使用它,因为它不会从 vagrant 转换到其他地方。@deagh 的回答开始引导您朝着正确的方向前进。您需要将所有文件移动到模块文件夹中。
所以
c:\myproject\
Vagranfile
puppet\
modules\
mymodulename\
files\
secure_mysql.sh
mainfests\
init.pp
然后你就可以达到目的了
class secure_mysql_installation {
file { '/tmp/secure_mysql.sh':
source => 'puppet:///modules/mymodulename/secure_mysql.sh',
ensure => present,
}
}
有关文件服务和挂载点的更多信息,请参阅https://docs.puppetlabs.com/guides/file_serving.html
答案2
你的source
定义缺少模块名称尝试
source => 'puppet:///modules/[MODULENAME]/secure_mysql.sh',