
방금 꼭두각시를 배우기 시작했는데 문제를 발견했습니다. 해결 방법을 아는 사람이 있는지 궁금합니다. 사용자를 제거하려고 하는데 해당 사용자가 로그인되어 있으므로 제거할 수 없다는 오류 메시지가 나타납니다.
이제 이 경우에는 사용자가 어떤 서버에 로그인했는지 알 수 있으므로 간단히 사용자를 로그아웃하고 거기서부터 진행할 수 있습니다. 그런데 제 질문은 사용자가 어떤 서버에 로그인했는지 모를 때 어떻게 하느냐는 것입니다. 서버가 많을 수 있다는 점을 염두에 두세요.
강제 제거 옵션이나 꼭두각시에서 사용자를 로그아웃시키는 방법이 있습니까?
아래 코드:
user {'art':
ensure => absent,
}
오류:
오류: 사용자 아트를 삭제할 수 없습니다. '/usr/sbin/userdel art' 실행 시 8이 반환되었습니다. userdel: 사용자 아트가 현재 로그인되어 있습니다.
오류: /Stage[main]/Main/Node[demo]/User[art]/ensure: 현재에서 없음으로 변경 실패: 사용자 아트를 삭제할 수 없습니다: '/usr/sbin/userdel art' 실행 시 8이 반환됨: userdel : 사용자 아트가 현재 로그인되어 있습니다
답변1
사용자가 소유한 모든 프로세스를 종료하는 exec 리소스를 만들 수 있습니다.
다음과 같이 보일 것입니다 :
exec {'kill-art':
command => 'pkill -u art',
onlyif => 'pgrep -u art',
}
user {'art':
ensure => absent,
require => Exec['kill-art'],
}