summaryrefslogtreecommitdiff
path: root/cloudinit/CloudConfig/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/CloudConfig/__init__.py')
-rw-r--r--cloudinit/CloudConfig/__init__.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/cloudinit/CloudConfig/__init__.py b/cloudinit/CloudConfig/__init__.py
index c8743ac3..0962c238 100644
--- a/cloudinit/CloudConfig/__init__.py
+++ b/cloudinit/CloudConfig/__init__.py
@@ -231,3 +231,20 @@ def run_per_instance(name, func, args, clear_on_fail=False):
except:
if clear_on_fail: os.unlink(semfile)
raise
+
+# apt_get top level command (install, update...), and args to pass it
+def apt_get(tlc,args=[]):
+ e=os.environ.copy()
+ e['DEBIAN_FRONTEND']='noninteractive'
+ cmd=[ 'apt-get',
+ '--option', 'Dpkg::Options::=--force-confold', '--assume-yes',
+ tlc ]
+ cmd.extend(args)
+ subprocess.check_call(cmd,env=e)
+
+def update_package_sources():
+ run_per_instance("update-sources", apt_get, ("update",))
+
+def install_packages(pkglist):
+ update_package_sources()
+ apt_get("install",pkglist)