-
-
Save karlbunch/79f1da7090498bd12960f462447f3956 to your computer and use it in GitHub Desktop.
Docker-CE Cloud-init for Ubuntu 16.04 (LTS)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#cloud-config | |
# Upgrade the instance on first boot | |
# (ie run apt-get upgrade) | |
# | |
# Default: false | |
# Aliases: apt_upgrade | |
package_upgrade: true | |
# Install additional packages on first boot | |
# | |
# Default: none | |
# | |
# if packages are specified, this apt_update will be set to true | |
packages: ['docker-ce', 'golang-go'] | |
apt: | |
# The apt config consists of two major "areas". | |
# | |
# On one hand there is the global configuration for the apt feature. | |
# | |
# On one hand (down in this file) there is the source dictionary which allows | |
# to define various entries to be considered by apt. | |
############################################################################## | |
# Section 1: global apt configuration | |
# | |
# The following examples number the top keys to ease identification in | |
# discussions. | |
# 1.1 preserve_sources_list | |
# | |
# Preserves the existing /etc/apt/sources.list | |
# Default: false - do overwrite sources_list. If set to true then any | |
# "mirrors" configuration will have no effect. | |
# Set to true to avoid affecting sources.list. In that case only | |
# "extra" source specifications will be written into | |
# /etc/apt/sources.list.d/* | |
preserve_sources_list: true | |
############################################################################## | |
# Section 2: source list entries | |
# | |
# This is a dictionary (unlike most block/net which are lists) | |
# | |
# The key of each source entry is the filename and will be prepended by | |
# /etc/apt/sources.list.d/ if it doesn't start with a '/'. | |
# If it doesn't end with .list it will be appended so that apt picks up it's | |
# configuration. | |
# | |
# Whenever there is no content to be written into such a file, the key is | |
# not used as filename - yet it can still be used as index for merging | |
# configuration. | |
# | |
# The values inside the entries consost of the following optional entries: | |
# 'source': a sources.list entry (some variable replacements apply) | |
# 'keyid': providing a key to import via shortid or fingerprint | |
# 'key': providing a raw PGP key | |
# 'keyserver': specify an alternate keyserver to pull keys from that | |
# were specified by keyid | |
# This allows merging between multiple input files than a list like: | |
# cloud-config1 | |
# sources: | |
# s1: {'key': 'key1', 'source': 'source1'} | |
# cloud-config2 | |
# sources: | |
# s2: {'key': 'key2'} | |
# s1: {'keyserver': 'foo'} | |
# This would be merged to | |
# sources: | |
# s1: | |
# keyserver: foo | |
# key: key1 | |
# source: source1 | |
# s2: | |
# key: key2 | |
# | |
# The following examples number the subfeatures per sources entry to ease | |
# identification in discussions. | |
sources: | |
curtin-dev-ppa.list: | |
# 2.1 source | |
# | |
# Creates a file in /etc/apt/sources.list.d/ for the sources list entry | |
# based on the key: "/etc/apt/sources.list.d/curtin-dev-ppa.list" | |
source: "deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable" | |
# 2.2 keyid | |
# | |
# Importing a gpg key for a given key id. Used keyserver defaults to | |
# keyserver.ubuntu.com | |
keyid: 0EBFCD88 # GPG key ID published on a key server | |
ignored1: | |
# 2.3 PPA shortcut | |
# | |
# Setup correct apt sources.list line and Auto-Import the signing key | |
# from LP | |
# | |
# See https://help.launchpad.net/Packaging/PPA for more information | |
# this requires 'add-apt-repository'. This will create a file in | |
# /etc/apt/sources.list.d automatically, therefore the key here is | |
# ignored as filename in those cases. | |
source: "ppa:longsleep/golang-backports" # Quote the string | |
## poweroff or reboot system after finished | |
# default: none | |
# | |
# power_state can be used to make the system shutdown, reboot or | |
# halt after boot is finished. This same thing can be acheived by | |
# user-data scripts or by runcmd by simply invoking 'shutdown'. | |
# | |
# Doing it this way ensures that cloud-init is entirely finished with | |
# modules that would be executed, and avoids any error/log messages | |
# that may go to the console as a result of system services like | |
# syslog being taken down while cloud-init is running. | |
# | |
# If you delay '+5' (5 minutes) and have a timeout of | |
# 120 (2 minutes), then the max time until shutdown will be 7 minutes. | |
# cloud-init will invoke 'shutdown +5' after the process finishes, or | |
# when 'timeout' seconds have elapsed. | |
# | |
# delay: form accepted by shutdown. default is 'now'. other format | |
# accepted is +m (m in minutes) | |
# mode: required. must be one of 'poweroff', 'halt', 'reboot' | |
# message: provided as the message argument to 'shutdown'. default is none. | |
# timeout: the amount of time to give the cloud-init process to finish | |
# before executing shutdown. | |
# condition: apply state change only if condition is met. | |
# May be boolean True (always met), or False (never met), | |
# or a command string or list to be executed. | |
# command's exit code indicates: | |
# 0: condition met | |
# 1: condition not met | |
# other exit codes will result in 'not met', but are reserved | |
# for future use. | |
# | |
power_state: | |
delay: "now" | |
mode: reboot | |
message: First reboot | |
condition: True |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment