Implemented cleanup tasks

This commit is contained in:
Anders Ingemann 2013-07-07 16:59:12 +02:00
parent 5949c3c9cc
commit 4180f16656
2 changed files with 49 additions and 1 deletions

View file

@ -12,6 +12,7 @@ from tasks import boot
from tasks import security from tasks import security
from tasks import network from tasks import network
from tasks import initd from tasks import initd
from tasks import cleanup
def initialize(): def initialize():
@ -54,7 +55,10 @@ def tasks(tasklist, manifest):
network.ConfigureNetworkIF(), network.ConfigureNetworkIF(),
network.ConfigureDHCP(), network.ConfigureDHCP(),
initd.ResolveInitScripts(), initd.ResolveInitScripts(),
initd.InstallInitScripts()) initd.InstallInitScripts(),
cleanup.ClearMOTD(),
cleanup.ShredHostkeys(),
cleanup.CleanTMP())
from common.tasks import TriggerRollback from common.tasks import TriggerRollback
tasklist.add(TriggerRollback()) tasklist.add(TriggerRollback())

View file

@ -0,0 +1,44 @@
from base import Task
from common import phases
import os
class ClearMOTD(Task):
description = 'Clearing the MOTD'
phase = phases.system_cleaning
def run(self, info):
with open('/var/run/motd', 'w'):
pass
class ShredHostkeys(Task):
description = 'Securely deleting ssh hostkeys'
phase = phases.system_cleaning
def run(self, info):
ssh_hostkeys = ['ssh_host_dsa_key',
'ssh_host_rsa_key']
if info.manifest.system['release'] != 'squeeze':
ssh_hostkeys.append('ssh_host_ecdsa_key')
private = [os.path.join(info.root, 'etc/ssh', name) for name in ssh_hostkeys]
public = [path + '.pub' for path in private]
from common.tools import log_check_call
log_check_call(['/usr/bin/shred', '--remove'] + private + public)
class CleanTMP(Task):
description = 'Removing temporary files'
phase = phases.system_cleaning
def run(self, info):
import glob
tmp_files = glob.glob(os.path.join(info.root, 'tmp/*'))
for tmp_file in tmp_files:
os.remove(tmp_file)
log_files = glob.glob(os.path.join(info.root, 'var/log/{bootstrap,dpkg}.log'))
for log_file in log_files:
os.remove(log_file)