2013-07-11 2 views
4

Я пытался выяснить, как написать рецепт, который будет установить пакет ACL, а затем перемонтировать корневую файловую систему с него включено:Настройка ACL на Ubuntu 12.04 с Chef

  1. apt-get install acl
  2. Добавить "аКЛ" в опции в Fstab
  3. mount -o remount /

Моя попытка рецепта:

case node[:platform] 
when "debian","ubuntu" 
    package "acl" do 
     action :install 
    end 

    mount "/" do 
     options "acl" 
     action [:remount, :enable] 
    end 
end 

К сожалению (и не удивительно), шеф-повар не знает, как читать существующую запись fstab для/и добавлять acl к ней, не меняя ничего, чтобы она удаляла существующие параметры в точке монтирования. Любые мысли о том, как я могу это сделать?

ответ

4

Найден способ сделать это с Авгий:

# Install ACL and remount the root volume with ACL enabled 
case node[:platform] 
when "debian","ubuntu" 
    %w{acl augeas-tools}.each do |pkg| 
     package pkg 
    end 

    execute "update_fstab" do 
     command <<-EOF 
      echo 'ins opt after /files/etc/fstab/*[file="/"]/opt[last()] 
      set /files/etc/fstab/*[file="/"]/opt[last()] acl 
      save' | augtool 
      mount -o remount/
     EOF 
     not_if "augtool match '/files/etc/fstab/*[file=\"/\"]/opt' | grep acl" 
    end 
end 

Я не очень нравится решение, но это, кажется, работает. Но должен быть лучший способ, верно?

+0

Я опубликовал поваренную книгу с вашим решением https://supermarket.getchef.com/cookbooks/acl – Maks3w

Смежные вопросы