无法将 shell 脚本从主机复制到 vagrant box

无法将 shell 脚本从主机复制到 vagrant box

主机是 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',

相关内容