0

3 人のユーザーを作成し、それらをグループに追加して sudoers ファイルに書き込むためのシェフのレシピが書かれています。

group "usergroup" do
  gid 2000
end

print "User1 or User2 or User3?"
env=$stdin.gets.chomp
case env
when "User1"
  user "User1" do
    uid 150
    gid "usergroup"
    home "/home/User1"
    shell "/bin/bash"
  end

  directory "/home/User1" do
    owner "User1"
    group "usergroup"
    mode "0777"
    action :create
  end

  execute "echo" do
    command "echo 'User1 ALL=(ALL) ALL' >> /etc/sudoers"
    not_if "grep -F 'User1 ALL=(ALL) ALL' /etc/sudoers"
  end

when "User2"
  user "User2" do
    uid 250
    gid "usergroup"
    home "/home/User2"
    shell "/bin/bash"
  end

  directory "/home/User2" do
    owner "User2"
    group "usergroup"
    mode "0777"
    action :create
  end

  execute "echo" do
    command "echo 'User2 ALL=(ALL) ALL' >> /etc/sudoers"
    not_if "grep -F 'User2 ALL=(ALL) ALL' /etc/sudoers"
  end

when "User3"
  user "User3" do
    uid 350
    gid "usergroup"
    home "/home/User3"
    shell "/bin/bash"
  end

  directory "/home/User3" do
    owner "User3"
    group "usergroup"
    mode "0777"
    action :create
  end

  execute "echo" do
    command "echo 'User3 ALL=(ALL) ALL' >> /etc/sudoers"
    not_if "grep -F 'User3 ALL=(ALL) ALL' /etc/sudoers"
  end
end

私は Chef を初めて使用するので、このレシピに適した属性ファイル (/cookbook/User/attributes/default.rb) を作成する際に助けが必要です。知っていることはすべて試しましたが、何もうまくいきません。また、case ステートメントを属性ファイルに含めることができるかどうかも知りたいです。

注: Chef をローカル モードで実行しています。

4

1 に答える 1