diff --git a/providers/ec2/__init__.py b/providers/ec2/__init__.py index 15067ce..d0c16ee 100644 --- a/providers/ec2/__init__.py +++ b/providers/ec2/__init__.py @@ -10,6 +10,7 @@ from tasks import locale from tasks import apt from tasks import boot from tasks import security +from tasks import network def initialize(): @@ -47,7 +48,10 @@ def tasks(tasklist, manifest): boot.DisableGetTTYs(), security.EnableShadowConfig(), security.DisableSSHPasswordAuthentication(), - security.DisableSSHDNSLookup()) + security.DisableSSHDNSLookup(), + network.RemoveDNSInfo(), + network.ConfigureNetworkIF(), + network.ConfigureDHCP()) from common.tasks import TriggerRollback tasklist.add(TriggerRollback()) diff --git a/providers/ec2/tasks/network.py b/providers/ec2/tasks/network.py new file mode 100644 index 0000000..4fdecb5 --- /dev/null +++ b/providers/ec2/tasks/network.py @@ -0,0 +1,35 @@ +from base import Task +from common import phases +import os.path + + +class RemoveDNSInfo(Task): + description = 'Removing resolv.conf' + phase = phases.system_modification + + def run(self, info): + from os import remove + remove(os.path.join(info.root, 'etc/resolv.conf')) + + +class ConfigureNetworkIF(Task): + description = 'Configuring network interfaces' + phase = phases.system_modification + + def run(self, info): + interfaces_path = os.path.join(info.root, 'etc/network/interfaces') + if_config = {'squeeze': ('auto lo\niface lo inet loopback\n' + 'auto eth0\niface eth0 inet dhcp'), + 'wheezy': 'auto eth0\niface eth0 inet dhcp'} + 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\'')