diff --git a/bootstrapvz/plugins/cloud_init/__init__.py b/bootstrapvz/plugins/cloud_init/__init__.py index 9f7b1a2..5567251 100644 --- a/bootstrapvz/plugins/cloud_init/__init__.py +++ b/bootstrapvz/plugins/cloud_init/__init__.py @@ -1,3 +1,6 @@ +from bootstrapvz.common.tools import rel_path + +assets = rel_path(__file__, 'assets') def validate_manifest(data, validator, error): @@ -11,11 +14,15 @@ def resolve_tasks(taskset, manifest): from bootstrapvz.common.tasks import apt from bootstrapvz.common.tasks import initd from bootstrapvz.common.tasks import ssh - from bootstrapvz.common.releases import wheezy + from bootstrapvz.common.releases import jessie + if manifest.release == wheezy: taskset.add(apt.AddBackports) + if manifest.release >= jessie: + taskset.add(tasks.SetCloudInitMountOptions) + taskset.update([tasks.SetMetadataSource, tasks.AddCloudInitPackages, ]) diff --git a/bootstrapvz/providers/ec2/assets/cloud-init/debian_cloud.cfg b/bootstrapvz/plugins/cloud_init/assets/cloud-init/debian_cloud.cfg similarity index 100% rename from bootstrapvz/providers/ec2/assets/cloud-init/debian_cloud.cfg rename to bootstrapvz/plugins/cloud_init/assets/cloud-init/debian_cloud.cfg diff --git a/bootstrapvz/plugins/cloud_init/tasks.py b/bootstrapvz/plugins/cloud_init/tasks.py index 9282da5..57ffa06 100644 --- a/bootstrapvz/plugins/cloud_init/tasks.py +++ b/bootstrapvz/plugins/cloud_init/tasks.py @@ -3,8 +3,10 @@ from bootstrapvz.common import phases from bootstrapvz.common.tools import log_check_call from bootstrapvz.common.tasks import apt from bootstrapvz.common.tasks import locale +from . import assets +from shutil import copy import logging -import os.path +import os class AddCloudInitPackages(Task): @@ -121,3 +123,15 @@ class EnableModules(Task): if int(entry['position']) == int(count): print(" - %s" % entry['module']) print line, + + +class SetCloudInitMountOptions(Task): + description = 'Setting cloud-init default mount options' + phase = phases.system_modification + + @classmethod + def run(cls, info): + cloud_init_src = os.path.join(assets, 'cloud-init/debian_cloud.cfg') + cloud_init_dst = os.path.join(info.root, 'etc/cloud/cloud.cfg.d/01_debian_cloud.cfg') + copy(cloud_init_src, cloud_init_dst) + os.chmod(cloud_init_dst, 0644) diff --git a/bootstrapvz/providers/ec2/__init__.py b/bootstrapvz/providers/ec2/__init__.py index 3bc838a..4a3daa6 100644 --- a/bootstrapvz/providers/ec2/__init__.py +++ b/bootstrapvz/providers/ec2/__init__.py @@ -86,7 +86,6 @@ def resolve_tasks(taskset, manifest): taskset.add(tasks.network.EnableDHCPCDDNS) if manifest.release >= jessie: - taskset.add(tasks.tuning.SetCloudInitMountOptions) taskset.add(tasks.packages.AddWorkaroundGrowpart) taskset.add(initd.AdjustGrowpartWorkaround) if manifest.system['bootloader'] == 'grub': diff --git a/bootstrapvz/providers/ec2/tasks/tuning.py b/bootstrapvz/providers/ec2/tasks/tuning.py index a360092..8b088e4 100644 --- a/bootstrapvz/providers/ec2/tasks/tuning.py +++ b/bootstrapvz/providers/ec2/tasks/tuning.py @@ -1,7 +1,6 @@ from bootstrapvz.base import Task from bootstrapvz.common import phases from . import assets -from shutil import copy import os @@ -17,18 +16,6 @@ class TuneSystem(Task): os.chmod(sysctl_dst, 0644) -class SetCloudInitMountOptions(Task): - description = 'Setting cloud-init default mount options' - phase = phases.system_modification - - @classmethod - def run(cls, info): - cloud_init_src = os.path.join(assets, 'cloud-init/debian_cloud.cfg') - cloud_init_dst = os.path.join(info.root, 'etc/cloud/cloud.cfg.d/01_debian_cloud.cfg') - copy(cloud_init_src, cloud_init_dst) - os.chmod(cloud_init_dst, 0644) - - class BlackListModules(Task): description = 'Blacklisting unused kernel modules' phase = phases.system_modification