Puppet:找到1个依赖循环
应用我的傀儡清单时出现以下错误:Puppet:找到1个依赖循环,puppet,Puppet,应用我的傀儡清单时出现以下错误: Error: Could not apply complete catalog: Found 1 dependency cycle: (Exec[pip install requirements] => File[change venv permissions] => File[enforce MinGW compiler] => Exec[pip install requirements]) Try the '--graph' option
Error: Could not apply complete catalog: Found 1 dependency cycle:
(Exec[pip install requirements] => File[change venv permissions] => File[enforce MinGW compiler] => Exec[pip install requirements])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
这是我的傀儡清单(相关部分),我没有看到任何依赖循环。有什么想法吗
exec {'create virtualenv':
command => "$install_dir/Scripts/virtualenv.exe venv",
cwd => $project_dir,
require => Exec['install virtualenv'],
}
file { "fix Mingw32CCompiler":
path => "C:/Python27/Lib/distutils/cygwinccompiler.py",
content => template($cygwinc_template),
ensure => present,
require => Exec['create virtualenv'],
}
file { "enforce MinGW compiler":
path => "$project_dir/venv/Lib/distutils/distutils.cfg",
owner => $user,
content => $mingw,
ensure => present,
require => File['fix Mingw32CCompiler'],
}
exec {'pip install requirements':
timeout => 1200,
command => "$project_dir/venv/Scripts/pip.exe install -r $project_dir/requirements.txt",
require => File['enforce MinGW compiler'],
}
file {'change venv permissions':
path => "$project_dir/venv",
recurse => true,
owner => $user,
mode => 0770,
require => Exec['pip install requirements'],
}
在puppet中,文件对声明的任何父目录都有一个隐式要求 实际上:
File['change venv permissions'] -> File['enforce MinGW compiler']
因此,父级需要exec,exec需要子级,子级需要父级,从而创建了一个循环。您上一次的更改是什么(可能就是您添加循环的那一刻)
尝试生成图表的建议。将生成的点文件作为要点发布,以便我们进一步调查
看一看。看起来这并不是所有相关的问题。您是否尝试过按照建议创建图形表示?在这些情况下,这通常是很有启发性的.“install virtualenv”的exec声明在哪里?