diff --git a/common/tasks/network.py b/common/tasks/network.py index 0910608..e3129d6 100644 --- a/common/tasks/network.py +++ b/common/tasks/network.py @@ -12,6 +12,15 @@ class RemoveDNSInfo(Task): remove(os.path.join(info.root, 'etc/resolv.conf')) +class RemoveHostname(Task): + description = 'Removing the hostname file' + phase = phases.system_modification + + def run(self, info): + from os import remove + remove(os.path.join(info.root, 'etc/hostname')) + + class ConfigureNetworkIF(Task): description = 'Configuring network interfaces' phase = phases.system_modification @@ -26,13 +35,3 @@ class ConfigureNetworkIF(Task): 'iface eth0 inet dhcp\n'} with open(interfaces_path, 'a') as interfaces: interfaces.write(if_config.get(info.manifest.system['release'])) - - -class ConfigureDHCP(Task): - description = 'Configuring the DHCP client' - phase = phases.system_modification - - def run(self, info): - from common.tools import sed_i - dhcpcd = os.path.join(info.root, 'etc/default/dhcpcd') - sed_i(dhcpcd, '^#*SET_DNS=.*', 'SET_DNS=\'yes\'') diff --git a/providers/ec2/__init__.py b/providers/ec2/__init__.py index 533ccf7..68c47c5 100644 --- a/providers/ec2/__init__.py +++ b/providers/ec2/__init__.py @@ -16,7 +16,8 @@ from common.tasks import apt from tasks import boot from common.tasks import boot as common_boot from common.tasks import security -from common.tasks import network +from tasks import network +from common.tasks import network as common_network from tasks import initd from common.tasks import initd as common_initd from common.tasks import cleanup @@ -56,9 +57,9 @@ def tasks(tasklist, manifest): security.EnableShadowConfig(), security.DisableSSHPasswordAuthentication(), security.DisableSSHDNSLookup(), - network.RemoveDNSInfo(), - network.ConfigureNetworkIF(), - network.ConfigureDHCP(), + common_network.RemoveDNSInfo(), + common_network.ConfigureNetworkIF(), + network.EnableDHCPCDDNS(), common_initd.ResolveInitScripts(), initd.AddEC2InitScripts(), common_initd.InstallInitScripts(), diff --git a/providers/ec2/tasks/network.py b/providers/ec2/tasks/network.py new file mode 100644 index 0000000..3f00fb2 --- /dev/null +++ b/providers/ec2/tasks/network.py @@ -0,0 +1,15 @@ +from base import Task +from common import phases +import os.path + + +class EnableDHCPCDDNS(Task): + description = 'Configuring the DHCP client to set the nameservers' + phase = phases.system_modification + + def run(self, info): + # The dhcp client that ships with debian sets the DNS servers per default. + # For dhcpcd we need to configure it to do that. + from common.tools import sed_i + dhcpcd = os.path.join(info.root, 'etc/default/dhcpcd') + sed_i(dhcpcd, '^#*SET_DNS=.*', 'SET_DNS=\'yes\'') diff --git a/providers/virtualbox/__init__.py b/providers/virtualbox/__init__.py index 18c9fef..0eb7475 100644 --- a/providers/virtualbox/__init__.py +++ b/providers/virtualbox/__init__.py @@ -50,15 +50,12 @@ def tasks(tasklist, manifest): common_boot.BlackListModules(), common_boot.DisableGetTTYs(), security.EnableShadowConfig(), - security.DisableSSHPasswordAuthentication(), - security.DisableSSHDNSLookup(), network.RemoveDNSInfo(), network.ConfigureNetworkIF(), - network.ConfigureDHCP(), + network.RemoveHostname(), initd.ResolveInitScripts(), initd.InstallInitScripts(), cleanup.ClearMOTD(), - cleanup.ShredHostkeys(), cleanup.CleanTMP(), apt.PurgeUnusedPackages(), apt.AptClean(),