
私は Puppet を学び始めたばかりですが、問題に遭遇しました。解決方法を知っている人がいたら教えてください。ユーザーを削除しようとすると、ログインしているため削除できないというエラー メッセージが表示されます。
この場合、ユーザーがログインしているサーバーがわかっているので、ユーザーをログアウトさせてそこから先に進むことができます。しかし、ユーザーがログインしているサーバーがわからない場合はどうすればいいかという質問です。サーバーが複数ある可能性もあることを念頭に置いてください。
Puppet で強制削除オプションまたはユーザーをログアウトする方法はありますか?
以下のコード:
user {'art':
ensure => absent,
}
エラー:
エラー: ユーザー art を削除できませんでした: '/usr/sbin/userdel art' の実行で 8 が返されました: userdel: ユーザー art は現在ログインしています
エラー: /Stage[main]/Main/Node[demo]/User[art]/ensure: 存在から不在への変更に失敗しました: ユーザー art を削除できませんでした: '/usr/sbin/userdel art' の実行で 8 が返されました: userdel: ユーザー art は現在ログインしています
答え1
ユーザーが所有するすべてのプロセスを強制終了する exec リソースを作成できます。
次のようになります:
exec {'kill-art':
command => 'pkill -u art',
onlyif => 'pgrep -u art',
}
user {'art':
ensure => absent,
require => Exec['kill-art'],
}