Managing repositories and packages using cloud-init
Unless we need a very specific release of a Linux distribution, it's highly probable we'll expect a fully updated system as soon as possible (think security patches and other bug fixes). Similarly, we usually expect a set of tools to be available in the new system. However, things might change, default tools might be removed – better to be safe than sorry. If one of our bootstrap scripts needs wget
or curl
and nmap
, let's ensure those are present long before the proper configuration management tool starts its job (such as Chef or Puppet). We may also want to reboot the server after applying critical initial packages such as the kernel, or add a custom package repository.
Getting ready
To step through this recipe, you will need:
Access to a cloud-config enabled infrastructure
How to do it…
To upgrade all the packages right after bootstrap, simply set the package_upgrade
directive to true
:
#cloud-config package_upgrade: true
Another useful directive...