Назад | Перейти на главную страницу

Как удалить группу с помощью марионетки, когда основная группа другого пользователя

У меня есть следующий рецепт куклы:

group{'pablo':
  ensure => absent,
  gid    => 1020,
}

user{'pablo':
  ensure     => absent,
  gid        => 1020,
  managehome => false,
}

Но зависимости "обратные": пользователь зависит от группы. Это нормально работает при создании ресурсов, но когда мы хотим удалить, отношения должны быть обратными. На данный момент ресурс пользователя будет зависеть от группы, но группу нельзя удалить, потому что пользователь сам является основной группой. Ой ...

Точные сообщения об ошибках:

Error: Could not delete group pablo: Execution of '/usr/sbin/groupdel pablo' returned 8: groupdel: cannot remove the primary group of user 'pablo'
Error: /Stage[main]/Seevibes::Admins/Seevibes::User[pablo]/Group[pablo]/ensure: change from present to absent failed: Could not delete group pablo: Execution of '/usr/sbin/groupdel pablo' returned 8: groupdel: cannot remove the primary group of user 'pablo'
Error: Could not delete group pablo: Execution of '/usr/sbin/groupdel pablo' returned 8: groupdel: cannot remove the primary group of user 'pablo'
Error: /Stage[main]/Seevibes::Admins/Seevibes::User[pablo]/Group[pablo]/ensure: change from present to absent failed: Could not delete group pablo: Execution of '/usr/sbin/groupdel pablo' returned 8: groupdel: cannot remove the primary group of user 'pablo'
Notice: /User[pablo]: Dependency Group[pablo] has failures: true
Warning: /User[pablo]: Skipping because of failed dependencies

Как я могу удалить пользователя и группу с помощью Puppet?

Попробуйте сначала удалить пользователя, а затем удалите группу только после удаления пользователя. например.

user {'pablo':
   ensure  =>  absent,
   }

group {'pablo':
   ensure => absent,
   require => User['pablo'],
     }