在Chef配方中运行代码块的适当方法

问题描述 投票:0回答:1

我似乎无法找到在Chef中运行shell代码块的证明。例如,我有一个脚本如下:

for user in `awk -F: '($3 < 500) {print $1 }' /etc/passwd` ; do
    if [ $user != "root" ]; then
      usermod -L $user 
      if [ $user != "sync" ] && [ $user != "shutdown" ] && [ $user != "halt" ];
then 
        usermod -s /sbin/nologin $user
        fi
      fi
done

..我怀疑运行这个块的方法如下

bash 'run script' do
  code <<-EOH
        "for user in `awk -F: '($3 < 500) {print $1 }' /etc/passwd` ; do
            if [ $user != "root" ]; then
            usermod -L $user
            if [ $user != "sync" ] && [ $user != "shutdown" ] && [ $user != "halt" ];
        then
                usermod -s /sbin/nologin $user
            fi
        fi
    done"
 EOH
end

但我真的不确定这个结构是否有效。

chef chef-recipe
1个回答
1
投票

你不需要外面的额外""<<-EOH ... EOH已经是一种引用,称为heredoc。

© www.soinside.com 2019 - 2024. All rights reserved.