diff options
author | Scott Moser <smoser@ubuntu.com> | 2016-08-10 09:06:15 -0600 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2016-08-10 09:06:15 -0600 |
commit | c3c3dc693c14175e110b5fe125d4d5f98ace9700 (patch) | |
tree | 8858702c2c8a6ad4bf1bb861a4565e0a9c28e588 /doc/examples | |
parent | 5bd3493d732e5b1902872958e8681f17cbc81ce5 (diff) | |
download | cloud-init-trunk.tar.gz |
cloud-init development has moved its revision control to git.
It is available at
https://code.launchpad.net/cloud-init
Clone with
git clone https://git.launchpad.net/cloud-init
or
git clone git+ssh://git.launchpad.net/cloud-init
For more information see
https://git.launchpad.net/cloud-init/tree/HACKING.rst
Diffstat (limited to 'doc/examples')
48 files changed, 0 insertions, 2416 deletions
diff --git a/doc/examples/cloud-config-add-apt-repos.txt b/doc/examples/cloud-config-add-apt-repos.txt deleted file mode 100644 index be9d5472..00000000 --- a/doc/examples/cloud-config-add-apt-repos.txt +++ /dev/null @@ -1,34 +0,0 @@ -#cloud-config - -# Add apt repositories -# -# Default: auto select based on cloud metadata -# in ec2, the default is <region>.archive.ubuntu.com -# apt_mirror: -# use the provided mirror -# apt_mirror_search: -# search the list for the first mirror. -# this is currently very limited, only verifying that -# the mirror is dns resolvable or an IP address -# -# if neither apt_mirror nor apt_mirror search is set (the default) -# then use the mirror provided by the DataSource found. -# In EC2, that means using <region>.ec2.archive.ubuntu.com -# -# if no mirror is provided by the DataSource, and 'apt_mirror_search_dns' is -# true, then search for dns names '<distro>-mirror' in each of -# - fqdn of this host per cloud metadata -# - localdomain -# - no domain (which would search domains listed in /etc/resolv.conf) -# If there is a dns entry for <distro>-mirror, then it is assumed that there -# is a distro mirror at http://<distro>-mirror.<domain>/<distro> -# -# That gives the cloud provider the opportunity to set mirrors of a distro -# up and expose them only by creating dns entries. -# -# if none of that is found, then the default distro mirror is used -apt_mirror: http://us.archive.ubuntu.com/ubuntu/ -apt_mirror_search: - - http://local-mirror.mydomain - - http://archive.ubuntu.com -apt_mirror_search_dns: False diff --git a/doc/examples/cloud-config-archive-launch-index.txt b/doc/examples/cloud-config-archive-launch-index.txt deleted file mode 100644 index e2ac2869..00000000 --- a/doc/examples/cloud-config-archive-launch-index.txt +++ /dev/null @@ -1,30 +0,0 @@ -#cloud-config-archive - -# This is an example of a cloud archive -# format which includes a set of launch indexes -# that will be filtered on (thus only showing -# up in instances with that launch index), this -# is done by adding the 'launch-index' key which -# maps to the integer 'launch-index' that the -# corresponding content should be used with. -# -# It is possible to leave this value out which -# will mean that the content will be applicable -# for all instances - -- type: foo/wark - filename: bar - content: | - This is my payload - hello - launch-index: 1 # I will only be used on launch-index 1 -- this is also payload -- | - multi line payload - here -- - type: text/upstart-job - filename: my-upstart.conf - content: | - whats this, yo? - launch-index: 0 # I will only be used on launch-index 0 diff --git a/doc/examples/cloud-config-archive.txt b/doc/examples/cloud-config-archive.txt deleted file mode 100644 index 23b1024c..00000000 --- a/doc/examples/cloud-config-archive.txt +++ /dev/null @@ -1,16 +0,0 @@ -#cloud-config-archive -- type: foo/wark - filename: bar - content: | - This is my payload - hello -- this is also payload -- | - multi line payload - here -- - type: text/upstart-job - filename: my-upstart.conf - content: | - whats this, yo? - diff --git a/doc/examples/cloud-config-boot-cmds.txt b/doc/examples/cloud-config-boot-cmds.txt deleted file mode 100644 index 3e59755d..00000000 --- a/doc/examples/cloud-config-boot-cmds.txt +++ /dev/null @@ -1,15 +0,0 @@ -#cloud-config - -# boot commands -# default: none -# this is very similar to runcmd, but commands run very early -# in the boot process, only slightly after a 'boothook' would run. -# bootcmd should really only be used for things that could not be -# done later in the boot process. bootcmd is very much like -# boothook, but possibly with more friendly. -# - bootcmd will run on every boot -# - the INSTANCE_ID variable will be set to the current instance id. -# - you can use 'cloud-init-boot-per' command to help only run once -bootcmd: - - echo 192.168.1.130 us.archive.ubuntu.com > /etc/hosts - - [ cloud-init-per, once, mymkfs, mkfs, /dev/vdb ] diff --git a/doc/examples/cloud-config-ca-certs.txt b/doc/examples/cloud-config-ca-certs.txt deleted file mode 100644 index 5e9115a0..00000000 --- a/doc/examples/cloud-config-ca-certs.txt +++ /dev/null @@ -1,31 +0,0 @@ -#cloud-config -# -# This is an example file to configure an instance's trusted CA certificates -# system-wide for SSL/TLS trust establishment when the instance boots for the -# first time. -# -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. - -ca-certs: - # If present and set to True, the 'remove-defaults' parameter will remove - # all the default trusted CA certificates that are normally shipped with - # Ubuntu. - # This is mainly for paranoid admins - most users will not need this - # functionality. - remove-defaults: true - - # If present, the 'trusted' parameter should contain a certificate (or list - # of certificates) to add to the system as trusted CA certificates. - # Pay close attention to the YAML multiline list syntax. The example shown - # here is for a list of multiline certificates. - trusted: - - | - -----BEGIN CERTIFICATE----- - YOUR-ORGS-TRUSTED-CA-CERT-HERE - -----END CERTIFICATE----- - - | - -----BEGIN CERTIFICATE----- - YOUR-ORGS-TRUSTED-CA-CERT-HERE - -----END CERTIFICATE----- - diff --git a/doc/examples/cloud-config-chef-oneiric.txt b/doc/examples/cloud-config-chef-oneiric.txt deleted file mode 100644 index 2e5f4b16..00000000 --- a/doc/examples/cloud-config-chef-oneiric.txt +++ /dev/null @@ -1,90 +0,0 @@ -#cloud-config -# -# This is an example file to automatically install chef-client and run a -# list of recipes when the instance boots for the first time. -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. -# -# This example assumes the instance is 11.10 (oneiric) - - -# The default is to install from packages. - -# Key from http://apt.opscode.com/packages@opscode.com.gpg.key -apt_sources: - - source: "deb http://apt.opscode.com/ $RELEASE-0.10 main" - key: | - -----BEGIN PGP PUBLIC KEY BLOCK----- - Version: GnuPG v1.4.9 (GNU/Linux) - - mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu - twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99 - dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC - JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W - ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I - XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe - DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm - sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO - Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ - YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG - CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K - +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu5Ag0ESmkLtBAIAIO2SwlR - lU5i6gTOp42RHWW7/pmW78CwUqJnYqnXROrt3h9F9xrsGkH0Fh1FRtsnncgzIhvh - DLQnRHnkXm0ws0jV0PF74ttoUT6BLAUsFi2SPP1zYNJ9H9fhhK/pjijtAcQwdgxu - wwNJ5xCEscBZCjhSRXm0d30bK1o49Cow8ZIbHtnXVP41c9QWOzX/LaGZsKQZnaMx - EzDk8dyyctR2f03vRSVyTFGgdpUcpbr9eTFVgikCa6ODEBv+0BnCH6yGTXwBid9g - w0o1e/2DviKUWCC+AlAUOubLmOIGFBuI4UR+rux9affbHcLIOTiKQXv79lW3P7W8 - AAfniSQKfPWXrrcAAwUH/2XBqD4Uxhbs25HDUUiM/m6Gnlj6EsStg8n0nMggLhuN - QmPfoNByMPUqvA7sULyfr6xCYzbzRNxABHSpf85FzGQ29RF4xsA4vOOU8RDIYQ9X - Q8NqqR6pydprRFqWe47hsAN7BoYuhWqTtOLSBmnAnzTR5pURoqcquWYiiEavZixJ - 3ZRAq/HMGioJEtMFrvsZjGXuzef7f0ytfR1zYeLVWnL9Bd32CueBlI7dhYwkFe+V - Ep5jWOCj02C1wHcwt+uIRDJV6TdtbIiBYAdOMPk15+VBdweBXwMuYXr76+A7VeDL - zIhi7tKFo6WiwjKZq0dzctsJJjtIfr4K4vbiD9Ojg1iISQQYEQIACQUCSmkLtAIb - DAAKCRApQKupg++CauISAJ9CxYPOKhOxalBnVTLeNUkAHGg2gACeIsbobtaD4ZHG - 0GLl8EkfA8uhluM= - =zKAm - -----END PGP PUBLIC KEY BLOCK----- - -chef: - - # 11.10 will fail if install_type is "gems" (LP: #960576) - install_type: "packages" - - # Chef settings - server_url: "https://chef.yourorg.com:4000" - - # Node Name - # Defaults to the instance-id if not present - node_name: "your-node-name" - - # Environment - # Defaults to '_default' if not present - environment: "production" - - # Default validation name is chef-validator - validation_name: "yourorg-validator" - - # value of validation_cert is not used if validation_key defined, - # but variable needs to be defined (LP: #960547) - validation_cert: "unused" - validation_key: | - -----BEGIN RSA PRIVATE KEY----- - YOUR-ORGS-VALIDATION-KEY-HERE - -----END RSA PRIVATE KEY----- - - # A run list for a first boot json - run_list: - - "recipe[apache2]" - - "role[db]" - - # Specify a list of initial attributes used by the cookbooks - initial_attributes: - apache: - prefork: - maxclients: 100 - keepalive: "off" - - -# Capture all subprocess output into a logfile -# Useful for troubleshooting cloud-init issues -output: {all: '| tee -a /var/log/cloud-init-output.log'} diff --git a/doc/examples/cloud-config-chef.txt b/doc/examples/cloud-config-chef.txt deleted file mode 100644 index b886cba2..00000000 --- a/doc/examples/cloud-config-chef.txt +++ /dev/null @@ -1,95 +0,0 @@ -#cloud-config -# -# This is an example file to automatically install chef-client and run a -# list of recipes when the instance boots for the first time. -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. -# -# This example assumes the instance is 12.04 (precise) - - -# The default is to install from packages. - -# Key from http://apt.opscode.com/packages@opscode.com.gpg.key -apt_sources: - - source: "deb http://apt.opscode.com/ $RELEASE-0.10 main" - key: | - -----BEGIN PGP PUBLIC KEY BLOCK----- - Version: GnuPG v1.4.9 (GNU/Linux) - - mQGiBEppC7QRBADfsOkZU6KZK+YmKw4wev5mjKJEkVGlus+NxW8wItX5sGa6kdUu - twAyj7Yr92rF+ICFEP3gGU6+lGo0Nve7KxkN/1W7/m3G4zuk+ccIKmjp8KS3qn99 - dxy64vcji9jIllVa+XXOGIp0G8GEaj7mbkixL/bMeGfdMlv8Gf2XPpp9vwCgn/GC - JKacfnw7MpLKUHOYSlb//JsEAJqao3ViNfav83jJKEkD8cf59Y8xKia5OpZqTK5W - ShVnNWS3U5IVQk10ZDH97Qn/YrK387H4CyhLE9mxPXs/ul18ioiaars/q2MEKU2I - XKfV21eMLO9LYd6Ny/Kqj8o5WQK2J6+NAhSwvthZcIEphcFignIuobP+B5wNFQpe - DbKfA/0WvN2OwFeWRcmmd3Hz7nHTpcnSF+4QX6yHRF/5BgxkG6IqBIACQbzPn6Hm - sMtm/SVf11izmDqSsQptCrOZILfLX/mE+YOl+CwWSHhl+YsFts1WOuh1EhQD26aO - Z84HuHV5HFRWjDLw9LriltBVQcXbpfSrRP5bdr7Wh8vhqJTPjrQnT3BzY29kZSBQ - YWNrYWdlcyA8cGFja2FnZXNAb3BzY29kZS5jb20+iGAEExECACAFAkppC7QCGwMG - CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRApQKupg++Caj8sAKCOXmdG36gWji/K - +o+XtBfvdMnFYQCfTCEWxRy2BnzLoBBFCjDSK6sJqCu5Ag0ESmkLtBAIAIO2SwlR - lU5i6gTOp42RHWW7/pmW78CwUqJnYqnXROrt3h9F9xrsGkH0Fh1FRtsnncgzIhvh - DLQnRHnkXm0ws0jV0PF74ttoUT6BLAUsFi2SPP1zYNJ9H9fhhK/pjijtAcQwdgxu - wwNJ5xCEscBZCjhSRXm0d30bK1o49Cow8ZIbHtnXVP41c9QWOzX/LaGZsKQZnaMx - EzDk8dyyctR2f03vRSVyTFGgdpUcpbr9eTFVgikCa6ODEBv+0BnCH6yGTXwBid9g - w0o1e/2DviKUWCC+AlAUOubLmOIGFBuI4UR+rux9affbHcLIOTiKQXv79lW3P7W8 - AAfniSQKfPWXrrcAAwUH/2XBqD4Uxhbs25HDUUiM/m6Gnlj6EsStg8n0nMggLhuN - QmPfoNByMPUqvA7sULyfr6xCYzbzRNxABHSpf85FzGQ29RF4xsA4vOOU8RDIYQ9X - Q8NqqR6pydprRFqWe47hsAN7BoYuhWqTtOLSBmnAnzTR5pURoqcquWYiiEavZixJ - 3ZRAq/HMGioJEtMFrvsZjGXuzef7f0ytfR1zYeLVWnL9Bd32CueBlI7dhYwkFe+V - Ep5jWOCj02C1wHcwt+uIRDJV6TdtbIiBYAdOMPk15+VBdweBXwMuYXr76+A7VeDL - zIhi7tKFo6WiwjKZq0dzctsJJjtIfr4K4vbiD9Ojg1iISQQYEQIACQUCSmkLtAIb - DAAKCRApQKupg++CauISAJ9CxYPOKhOxalBnVTLeNUkAHGg2gACeIsbobtaD4ZHG - 0GLl8EkfA8uhluM= - =zKAm - -----END PGP PUBLIC KEY BLOCK----- - -chef: - - # Valid values are 'gems' and 'packages' and 'omnibus' - install_type: "packages" - - # Boolean: run 'install_type' code even if chef-client - # appears already installed. - force_install: false - - # Chef settings - server_url: "https://chef.yourorg.com:4000" - - # Node Name - # Defaults to the instance-id if not present - node_name: "your-node-name" - - # Environment - # Defaults to '_default' if not present - environment: "production" - - # Default validation name is chef-validator - validation_name: "yourorg-validator" - # if validation_cert's value is "system" then it is expected - # that the file already exists on the system. - validation_cert: | - -----BEGIN RSA PRIVATE KEY----- - YOUR-ORGS-VALIDATION-KEY-HERE - -----END RSA PRIVATE KEY----- - - # A run list for a first boot json - run_list: - - "recipe[apache2]" - - "role[db]" - - # Specify a list of initial attributes used by the cookbooks - initial_attributes: - apache: - prefork: - maxclients: 100 - keepalive: "off" - - # if install_type is 'omnibus', change the url to download - omnibus_url: "https://www.opscode.com/chef/install.sh" - - -# Capture all subprocess output into a logfile -# Useful for troubleshooting cloud-init issues -output: {all: '| tee -a /var/log/cloud-init-output.log'} diff --git a/doc/examples/cloud-config-datasources.txt b/doc/examples/cloud-config-datasources.txt deleted file mode 100644 index 2651c027..00000000 --- a/doc/examples/cloud-config-datasources.txt +++ /dev/null @@ -1,73 +0,0 @@ -# Documentation on data sources configuration options -datasource: - # Ec2 - Ec2: - # timeout: the timeout value for a request at metadata service - timeout : 50 - # The length in seconds to wait before giving up on the metadata - # service. The actual total wait could be up to - # len(resolvable_metadata_urls)*timeout - max_wait : 120 - - #metadata_url: a list of URLs to check for metadata services - metadata_urls: - - http://169.254.169.254:80 - - http://instance-data:8773 - - MAAS: - timeout : 50 - max_wait : 120 - - # there are no default values for metadata_url or oauth credentials - # If no credentials are present, non-authed attempts will be made. - metadata_url: http://mass-host.localdomain/source - consumer_key: Xh234sdkljf - token_key: kjfhgb3n - token_secret: 24uysdfx1w4 - - NoCloud: - # default seedfrom is None - # if found, then it should contain a url with: - # <url>/user-data and <url>/meta-data - # seedfrom: http://my.example.com/i-abcde - seedfrom: None - - # fs_label: the label on filesystems to be searched for NoCloud source - fs_label: cidata - - # these are optional, but allow you to basically provide a datasource - # right here - user-data: | - # This is the user-data verbatum - meta-data: - instance-id: i-87018aed - local-hostname: myhost.internal - - Azure: - agent_command: [service, walinuxagent, start] - set_hostname: True - hostname_bounce: - interface: eth0 - policy: on # [can be 'on', 'off' or 'force'] - - SmartOS: - # For KVM guests: - # Smart OS datasource works over a serial console interacting with - # a server on the other end. By default, the second serial console is the - # device. SmartOS also uses a serial timeout of 60 seconds. - serial_device: /dev/ttyS1 - serial_timeout: 60 - - # For LX-Brand Zones guests: - # Smart OS datasource works over a socket interacting with - # the host on the other end. By default, the socket file is in - # the native .zoncontrol directory. - metadata_sockfile: /native/.zonecontrol/metadata.sock - - # a list of keys that will not be base64 decoded even if base64_all - no_base64_decode: ['root_authorized_keys', 'motd_sys_info', - 'iptables_disable'] - # a plaintext, comma delimited list of keys whose values are b64 encoded - base64_keys: [] - # a boolean indicating that all keys not in 'no_base64_decode' are encoded - base64_all: False diff --git a/doc/examples/cloud-config-disk-setup.txt b/doc/examples/cloud-config-disk-setup.txt deleted file mode 100644 index 3e46a22e..00000000 --- a/doc/examples/cloud-config-disk-setup.txt +++ /dev/null @@ -1,251 +0,0 @@ -# Cloud-init supports the creation of simple partition tables and file systems -# on devices. - -# Default disk definitions for AWS -# -------------------------------- -# (Not implemented yet, but provided for future documentation) - -disk_setup: - ephmeral0: - table_type: 'mbr' - layout: True - overwrite: False - -fs_setup: - - label: None, - filesystem: ext3 - device: ephemeral0 - partition: auto - -# Default disk definitions for Windows Azure -# ------------------------------------------ - -device_aliases: {'ephemeral0': '/dev/sdb'} -disk_setup: - ephemeral0: - table_type: mbr - layout: True - overwrite: False - -fs_setup: - - label: ephemeral0 - filesystem: ext4 - device: ephemeral0.1 - replace_fs: ntfs - - -# Default disk definitions for SmartOS -# ------------------------------------ - -device_aliases: {'ephemeral0': '/dev/sdb'} -disk_setup: - ephemeral0: - table_type: mbr - layout: False - overwrite: False - -fs_setup: - - label: ephemeral0 - filesystem: ext3 - device: ephemeral0.0 - -# Cavaut for SmartOS: if ephemeral disk is not defined, then the disk will -# not be automatically added to the mounts. - - -# The default definition is used to make sure that the ephemeral storage is -# setup properly. - -# "disk_setup": disk partitioning -# -------------------------------- - -# The disk_setup directive instructs Cloud-init to partition a disk. The format is: - -disk_setup: - ephmeral0: - table_type: 'mbr' - layout: 'auto' - /dev/xvdh: - table_type: 'mbr' - layout: - - 33 - - [33, 82] - - 33 - overwrite: True - -# The format is a list of dicts of dicts. The first value is the name of the -# device and the subsequent values define how to create and layout the -# partition. -# The general format is: -# disk_setup: -# <DEVICE>: -# table_type: 'mbr' -# layout: <LAYOUT|BOOL> -# overwrite: <BOOL> -# -# Where: -# <DEVICE>: The name of the device. 'ephemeralX' and 'swap' are special -# values which are specific to the cloud. For these devices -# Cloud-init will look up what the real devices is and then -# use it. -# -# For other devices, the kernel device name is used. At this -# time only simply kernel devices are supported, meaning -# that device mapper and other targets may not work. -# -# Note: At this time, there is no handling or setup of -# device mapper targets. -# -# table_type=<TYPE>: Currently the following are supported: -# 'mbr': default and setups a MS-DOS partition table -# -# Note: At this time only 'mbr' partition tables are allowed. -# It is anticipated in the future that we'll have GPT as -# option in the future, or even "RAID" to create a mdadm -# RAID. -# -# layout={...}: The device layout. This is a list of values, with the -# percentage of disk that partition will take. -# Valid options are: -# [<SIZE>, [<SIZE>, <PART_TYPE]] -# -# Where <SIZE> is the _percentage_ of the disk to use, while -# <PART_TYPE> is the numerical value of the partition type. -# -# The following setups two partitions, with the first -# partition having a swap label, taking 1/3 of the disk space -# and the remainder being used as the second partition. -# /dev/xvdh': -# table_type: 'mbr' -# layout: -# - [33,82] -# - 66 -# overwrite: True -# -# When layout is "true" it means single partition the entire -# device. -# -# When layout is "false" it means don't partition or ignore -# existing partitioning. -# -# If layout is set to "true" and overwrite is set to "false", -# it will skip partitioning the device without a failure. -# -# overwrite=<BOOL>: This describes whether to ride with saftey's on and -# everything holstered. -# -# 'false' is the default, which means that: -# 1. The device will be checked for a partition table -# 2. The device will be checked for a file system -# 3. If either a partition of file system is found, then -# the operation will be _skipped_. -# -# 'true' is cowboy mode. There are no checks and things are -# done blindly. USE with caution, you can do things you -# really, really don't want to do. -# -# -# fs_setup: Setup the file system -# ------------------------------- -# -# fs_setup describes the how the file systems are supposed to look. - -fs_setup: - - label: ephemeral0 - filesystem: 'ext3' - device: 'ephemeral0' - partition: 'auto' - - label: mylabl2 - filesystem: 'ext4' - device: '/dev/xvda1' - - special: - cmd: mkfs -t %(FILESYSTEM)s -L %(LABEL)s %(DEVICE)s - filesystem: 'btrfs' - device: '/dev/xvdh' - -# The general format is: -# fs_setup: -# - label: <LABEL> -# filesystem: <FS_TYPE> -# device: <DEVICE> -# partition: <PART_VALUE> -# overwrite: <OVERWRITE> -# replace_fs: <FS_TYPE> -# -# Where: -# <LABEL>: The file system label to be used. If set to None, no label is -# used. -# -# <FS_TYPE>: The file system type. It is assumed that the there -# will be a "mkfs.<FS_TYPE>" that behaves likes "mkfs". On a standard -# Ubuntu Cloud Image, this means that you have the option of ext{2,3,4}, -# and vfat by default. -# -# <DEVICE>: The device name. Special names of 'ephemeralX' or 'swap' -# are allowed and the actual device is acquired from the cloud datasource. -# When using 'ephemeralX' (i.e. ephemeral0), make sure to leave the -# label as 'ephemeralX' otherwise there may be issues with the mounting -# of the ephemeral storage layer. -# -# If you define the device as 'ephemeralX.Y' then Y will be interpetted -# as a partition value. However, ephermalX.0 is the _same_ as ephemeralX. -# -# <PART_VALUE>: -# Partition definitions are overwriten if you use the '<DEVICE>.Y' notation. -# -# The valid options are: -# "auto|any": tell cloud-init not to care whether there is a partition -# or not. Auto will use the first partition that does not contain a -# file system already. In the absence of a partition table, it will -# put it directly on the disk. -# -# "auto": If a file system that matches the specification in terms of -# label, type and device, then cloud-init will skip the creation of -# the file system. -# -# "any": If a file system that matches the file system type and device, -# then cloud-init will skip the creation of the file system. -# -# Devices are selected based on first-detected, starting with partitions -# and then the raw disk. Consider the following: -# NAME FSTYPE LABEL -# xvdb -# |-xvdb1 ext4 -# |-xvdb2 -# |-xvdb3 btrfs test -# \-xvdb4 ext4 test -# -# If you ask for 'auto', label of 'test, and file system of 'ext4' -# then cloud-init will select the 2nd partition, even though there -# is a partition match at the 4th partition. -# -# If you ask for 'any' and a label of 'test', then cloud-init will -# select the 1st partition. -# -# If you ask for 'auto' and don't define label, then cloud-init will -# select the 1st partition. -# -# In general, if you have a specific partition configuration in mind, -# you should define either the device or the partition number. 'auto' -# and 'any' are specifically intended for formating ephemeral storage or -# for simple schemes. -# -# "none": Put the file system directly on the device. -# -# <NUM>: where NUM is the actual partition number. -# -# <OVERWRITE>: Defines whether or not to overwrite any existing -# filesystem. -# -# "true": Indiscriminately destroy any pre-existing file system. Use at -# your own peril. -# -# "false": If an existing file system exists, skip the creation. -# -# <REPLACE_FS>: This is a special directive, used for Windows Azure that -# instructs cloud-init to replace a file system of <FS_TYPE>. NOTE: -# unless you define a label, this requires the use of the 'any' partition -# directive. -# -# Behavior Caveat: The default behavior is to _check_ if the file system exists. -# If a file system matches the specification, then the operation is a no-op. diff --git a/doc/examples/cloud-config-final-message.txt b/doc/examples/cloud-config-final-message.txt deleted file mode 100644 index 0ce31467..00000000 --- a/doc/examples/cloud-config-final-message.txt +++ /dev/null @@ -1,7 +0,0 @@ -#cloud-config - -# final_message -# default: cloud-init boot finished at $TIMESTAMP. Up $UPTIME seconds -# this message is written by cloud-final when the system is finished -# its first boot -final_message: "The system is finally up, after $UPTIME seconds" diff --git a/doc/examples/cloud-config-gluster.txt b/doc/examples/cloud-config-gluster.txt deleted file mode 100644 index f8183e77..00000000 --- a/doc/examples/cloud-config-gluster.txt +++ /dev/null @@ -1,18 +0,0 @@ -#cloud-config -# vim: syntax=yaml -# Mounts volfile exported by glusterfsd running on -# "volfile-server-hostname" onto the local mount point '/mnt/data' -# -# In reality, replace 'volfile-server-hostname' with one of your nodes -# running glusterfsd. -# -packages: - - glusterfs-client - -mounts: - - [ 'volfile-server-hostname:6996', /mnt/data, glusterfs, "defaults,nobootwait", "0", "2" ] - -runcmd: - - [ modprobe, fuse ] - - [ mkdir, '-p', /mnt/data ] - - [ mount, '-a' ] diff --git a/doc/examples/cloud-config-growpart.txt b/doc/examples/cloud-config-growpart.txt deleted file mode 100644 index 393d5164..00000000 --- a/doc/examples/cloud-config-growpart.txt +++ /dev/null @@ -1,31 +0,0 @@ -#cloud-config -# -# growpart entry is a dict, if it is not present at all -# in config, then the default is used ({'mode': 'auto', 'devices': ['/']}) -# -# mode: -# values: -# * auto: use any option possible (any available) -# if none are available, do not warn, but debug. -# * growpart: use growpart to grow partitions -# if growpart is not available, this is an error. -# * off, false -# -# devices: -# a list of things to resize. -# items can be filesystem paths or devices (in /dev) -# examples: -# devices: [/, /dev/vdb1] -# -# ignore_growroot_disabled: -# a boolean, default is false. -# if the file /etc/growroot-disabled exists, then cloud-init will not grow -# the root partition. This is to allow a single file to disable both -# cloud-initramfs-growroot and cloud-init's growroot support. -# -# true indicates that /etc/growroot-disabled should be ignored -# -growpart: - mode: auto - devices: ['/'] - ignore_growroot_disabled: false diff --git a/doc/examples/cloud-config-install-packages.txt b/doc/examples/cloud-config-install-packages.txt deleted file mode 100644 index 2edc63da..00000000 --- a/doc/examples/cloud-config-install-packages.txt +++ /dev/null @@ -1,15 +0,0 @@ -#cloud-config - -# Install additional packages on first boot -# -# Default: none -# -# if packages are specified, this apt_update will be set to true -# -# packages may be supplied as a single package name or as a list -# with the format [<package>, <version>] wherein the specifc -# package version will be installed. -packages: - - pwgen - - pastebinit - - [libpython2.7, 2.7.3-0ubuntu3.1] diff --git a/doc/examples/cloud-config-landscape.txt b/doc/examples/cloud-config-landscape.txt deleted file mode 100644 index d7ff8ef8..00000000 --- a/doc/examples/cloud-config-landscape.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Landscape-client configuration -# -# Anything under the top 'landscape: client' entry -# will be basically rendered into a ConfigObj formated file -# under the '[client]' section of /etc/landscape/client.conf -# -# Note: 'tags' should be specified as a comma delimited string -# rather than a list. -# -# You can get example key/values by running 'landscape-config', -# answer question, then look at /etc/landscape/client.config -landscape: - client: - url: "https://landscape.canonical.com/message-system" - ping_url: "http://landscape.canonical.com/ping" - data_path: "/var/lib/landscape/client" - http_proxy: "http://my.proxy.com/foobar" - tags: "server,cloud" - computer_title: footitle - https_proxy: fooproxy - registration_key: fookey - account_name: fooaccount diff --git a/doc/examples/cloud-config-launch-index.txt b/doc/examples/cloud-config-launch-index.txt deleted file mode 100644 index e7dfdc0c..00000000 --- a/doc/examples/cloud-config-launch-index.txt +++ /dev/null @@ -1,23 +0,0 @@ -#cloud-config -# vim: syntax=yaml - -# -# This is the configuration syntax that can be provided to have -# a given set of cloud config data show up on a certain launch -# index (and not other launches) by provided a key here which -# will act as a filter on the instances userdata. When -# this key is left out (or non-integer) then the content -# of this file will always be used for all launch-indexes -# (ie the previous behavior). -launch-index: 5 - -# Upgrade the instance on first boot -# (ie run apt-get upgrade) -# -# Default: false -# -apt_upgrade: true - -# Other yaml keys below... -# ....... -# ....... diff --git a/doc/examples/cloud-config-lxd.txt b/doc/examples/cloud-config-lxd.txt deleted file mode 100644 index e96f314b..00000000 --- a/doc/examples/cloud-config-lxd.txt +++ /dev/null @@ -1,55 +0,0 @@ -#cloud-config - -# configure lxd -# default: none -# all options default to none if not specified -# lxd: config sections for lxd -# init: dict of options for lxd init, see 'man lxd' -# network_address: address for lxd to listen on -# network_port: port for lxd to listen on -# storage_backend: either 'zfs' or 'dir' -# storage_create_device: device based storage using specified device -# storage_create_loop: set up loop based storage with size in GB -# storage_pool: name of storage pool to use or create -# trust_password: password required to add new clients -# bridge: dict of options for the lxd bridge -# mode: one of "new", "existing" or "none". Defaults to "new" -# name: the name of the bridge. Defaults to "lxdbr0" -# ipv4_address: an IPv4 address (e.g. 10.0.8.1) -# ipv4_netmask: a CIDR mask value (e.g. 24) -# ipv4_dhcp_first: the first IP of the DHCP range (e.g. 10.0.8.2) -# ipv4_dhcp_last: the last IP of the DHCP range (e.g. 10.0.8.254) -# ipv4_dhcp_leases: the size of the DHCP pool (e.g. 250) -# ipv4_nat: either "true" or "false" -# ipv6_address: an IPv6 address (e.g. fd98:9e0:3744::1) -# ipv6_netmask: a CIDR mask value (e.g. 64) -# ipv6_nat: either "true" or "false" -# domain: domain name to use for the bridge - - -lxd: - init: - network_address: 0.0.0.0 - network_port: 8443 - storage_backend: zfs - storage_pool: datapool - storage_create_loop: 10 - bridge: - mode: new - name: lxdbr0 - ipv4_address: 10.0.8.1 - ipv4_netmask: 24 - ipv4_dhcp_first: 10.0.8.2 - ipv4_dhcp_last: 10.0.8.3 - ipv4_dhcp_leases: 250 - ipv4_nat: true - ipv6_address: fd98:9e0:3744::1 - ipv6_netmask: 64 - ipv6_nat: true - domain: lxd - - -# The simplist working configuration is -# lxd: -# init: -# storage_backend: dir diff --git a/doc/examples/cloud-config-mcollective.txt b/doc/examples/cloud-config-mcollective.txt deleted file mode 100644 index 67735682..00000000 --- a/doc/examples/cloud-config-mcollective.txt +++ /dev/null @@ -1,49 +0,0 @@ -#cloud-config -# -# This is an example file to automatically setup and run mcollective -# when the instance boots for the first time. -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. -mcollective: - # Every key present in the conf object will be added to server.cfg: - # key: value - # - # For example the configuration below will have the following key - # added to server.cfg: - # plugin.stomp.host: dbhost - conf: - plugin.stomp.host: dbhost - # This will add ssl certs to mcollective - # WARNING WARNING WARNING - # The ec2 metadata service is a network service, and thus is readable - # by non-root users on the system (ie: 'ec2metadata --user-data') - # If you want security for this, please use include-once + SSL urls - public-cert: | - -----BEGIN CERTIFICATE----- - MIICCTCCAXKgAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDDAJjYTAe - Fw0xMDAyMTUxNzI5MjFaFw0xNTAyMTQxNzI5MjFaMA0xCzAJBgNVBAMMAmNhMIGf - MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu7Q40sm47/E1Pf+r8AYb/V/FWGPgc - b014OmNoX7dgCxTDvps/h8Vw555PdAFsW5+QhsGr31IJNI3kSYprFQcYf7A8tNWu - 1MASW2CfaEiOEi9F1R3R4Qlz4ix+iNoHiUDTjazw/tZwEdxaQXQVLwgTGRwVa+aA - qbutJKi93MILLwIDAQABo3kwdzA4BglghkgBhvhCAQ0EKxYpUHVwcGV0IFJ1Ynkv - T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDwYDVR0TAQH/BAUwAwEB/zAd - BgNVHQ4EFgQUu4+jHB+GYE5Vxo+ol1OAhevspjAwCwYDVR0PBAQDAgEGMA0GCSqG - SIb3DQEBBQUAA4GBAH/rxlUIjwNb3n7TXJcDJ6MMHUlwjr03BDJXKb34Ulndkpaf - +GAlzPXWa7bO908M9I8RnPfvtKnteLbvgTK+h+zX1XCty+S2EQWk29i2AdoqOTxb - hppiGMp0tT5Havu4aceCXiy2crVcudj3NFciy8X66SoECemW9UYDCb9T5D0d - -----END CERTIFICATE----- - private-cert: | - -----BEGIN CERTIFICATE----- - MIICCTCCAXKgAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDDAJjYTAe - Fw0xMDAyMTUxNzI5MjFaFw0xNTAyMTQxNzI5MjFaMA0xCzAJBgNVBAMMAmNhMIGf - MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu7Q40sm47/E1Pf+r8AYb/V/FWGPgc - b014OmNoX7dgCxTDvps/h8Vw555PdAFsW5+QhsGr31IJNI3kSYprFQcYf7A8tNWu - 1MASW2CfaEiOEi9F1R3R4Qlz4ix+iNoHiUDTjazw/tZwEdxaQXQVLwgTGRwVa+aA - qbutJKi93MILLwIDAQABo3kwdzA4BglghkgBhvhCAQ0EKxYpUHVwcGV0IFJ1Ynkv - T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDwYDVR0TAQH/BAUwAwEB/zAd - BgNVHQ4EFgQUu4+jHB+GYE5Vxo+ol1OAhevspjAwCwYDVR0PBAQDAgEGMA0GCSqG - SIb3DQEBBQUAA4GBAH/rxlUIjwNb3n7TXJcDJ6MMHUlwjr03BDJXKb34Ulndkpaf - +GAlzPXWa7bO908M9I8RnPfvtKnteLbvgTK+h+zX1XCty+S2EQWk29i2AdoqOTxb - hppiGMp0tT5Havu4aceCXiy2crVcudj3NFciy8X66SoECemW9UYDCb9T5D0d - -----END CERTIFICATE----- - diff --git a/doc/examples/cloud-config-mount-points.txt b/doc/examples/cloud-config-mount-points.txt deleted file mode 100644 index aa676c24..00000000 --- a/doc/examples/cloud-config-mount-points.txt +++ /dev/null @@ -1,46 +0,0 @@ -#cloud-config - -# set up mount points -# 'mounts' contains a list of lists -# the inner list are entries for an /etc/fstab line -# ie : [ fs_spec, fs_file, fs_vfstype, fs_mntops, fs-freq, fs_passno ] -# -# default: -# mounts: -# - [ ephemeral0, /mnt ] -# - [ swap, none, swap, sw, 0, 0 ] -# -# in order to remove a previously listed mount (ie, one from defaults) -# list only the fs_spec. For example, to override the default, of -# mounting swap: -# - [ swap ] -# or -# - [ swap, null ] -# -# - if a device does not exist at the time, an entry will still be -# written to /etc/fstab. -# - '/dev' can be ommitted for device names that begin with: xvd, sd, hd, vd -# - if an entry does not have all 6 fields, they will be filled in -# with values from 'mount_default_fields' below. -# -# Note, that you should set 'nobootwait' (see man fstab) for volumes that may -# not be attached at instance boot (or reboot) -# -mounts: - - [ ephemeral0, /mnt, auto, "defaults,noexec" ] - - [ sdc, /opt/data ] - - [ xvdh, /opt/data, "auto", "defaults,nobootwait", "0", "0" ] - - [ dd, /dev/zero ] - -# mount_default_fields -# These values are used to fill in any entries in 'mounts' that are not -# complete. This must be an array, and must have 7 fields. -mount_default_fields: [ None, None, "auto", "defaults,nobootwait", "0", "2" ] - - -# swap can also be set up by the 'mounts' module -# default is to not create any swap files, because 'size' is set to 0 -swap: - filename: /swap.img - size: "auto" # or size in bytes - maxsize: size in bytes diff --git a/doc/examples/cloud-config-phone-home.txt b/doc/examples/cloud-config-phone-home.txt deleted file mode 100644 index 7f2b69f7..00000000 --- a/doc/examples/cloud-config-phone-home.txt +++ /dev/null @@ -1,14 +0,0 @@ -#cloud-config - -# phone_home: if this dictionary is present, then the phone_home -# cloud-config module will post specified data back to the given -# url -# default: none -# phone_home: -# url: http://my.foo.bar/$INSTANCE/ -# post: all -# tries: 10 -# -phone_home: - url: http://my.example.com/$INSTANCE_ID/ - post: [ pub_key_dsa, pub_key_rsa, pub_key_ecdsa, instance_id ] diff --git a/doc/examples/cloud-config-power-state.txt b/doc/examples/cloud-config-power-state.txt deleted file mode 100644 index b470153d..00000000 --- a/doc/examples/cloud-config-power-state.txt +++ /dev/null @@ -1,40 +0,0 @@ -#cloud-config - -## 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: "+30" - mode: poweroff - message: Bye Bye - timeout: 30 - condition: True diff --git a/doc/examples/cloud-config-puppet.txt b/doc/examples/cloud-config-puppet.txt deleted file mode 100644 index cd3c2f8e..00000000 --- a/doc/examples/cloud-config-puppet.txt +++ /dev/null @@ -1,51 +0,0 @@ -#cloud-config -# -# This is an example file to automatically setup and run puppetd -# when the instance boots for the first time. -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. -puppet: - # Every key present in the conf object will be added to puppet.conf: - # [name] - # subkey=value - # - # For example the configuration below will have the following section - # added to puppet.conf: - # [puppetd] - # server=puppetmaster.example.org - # certname=i-0123456.ip-X-Y-Z.cloud.internal - # - # The puppmaster ca certificate will be available in - # /var/lib/puppet/ssl/certs/ca.pem - conf: - agent: - server: "puppetmaster.example.org" - # certname supports substitutions at runtime: - # %i: instanceid - # Example: i-0123456 - # %f: fqdn of the machine - # Example: ip-X-Y-Z.cloud.internal - # - # NB: the certname will automatically be lowercased as required by puppet - certname: "%i.%f" - # ca_cert is a special case. It won't be added to puppet.conf. - # It holds the puppetmaster certificate in pem format. - # It should be a multi-line string (using the | yaml notation for - # multi-line strings). - # The puppetmaster certificate is located in - # /var/lib/puppet/ssl/ca/ca_crt.pem on the puppetmaster host. - # - ca_cert: | - -----BEGIN CERTIFICATE----- - MIICCTCCAXKgAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDDAJjYTAe - Fw0xMDAyMTUxNzI5MjFaFw0xNTAyMTQxNzI5MjFaMA0xCzAJBgNVBAMMAmNhMIGf - MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu7Q40sm47/E1Pf+r8AYb/V/FWGPgc - b014OmNoX7dgCxTDvps/h8Vw555PdAFsW5+QhsGr31IJNI3kSYprFQcYf7A8tNWu - 1MASW2CfaEiOEi9F1R3R4Qlz4ix+iNoHiUDTjazw/tZwEdxaQXQVLwgTGRwVa+aA - qbutJKi93MILLwIDAQABo3kwdzA4BglghkgBhvhCAQ0EKxYpUHVwcGV0IFJ1Ynkv - T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDwYDVR0TAQH/BAUwAwEB/zAd - BgNVHQ4EFgQUu4+jHB+GYE5Vxo+ol1OAhevspjAwCwYDVR0PBAQDAgEGMA0GCSqG - SIb3DQEBBQUAA4GBAH/rxlUIjwNb3n7TXJcDJ6MMHUlwjr03BDJXKb34Ulndkpaf - +GAlzPXWa7bO908M9I8RnPfvtKnteLbvgTK+h+zX1XCty+S2EQWk29i2AdoqOTxb - hppiGMp0tT5Havu4aceCXiy2crVcudj3NFciy8X66SoECemW9UYDCb9T5D0d - -----END CERTIFICATE----- diff --git a/doc/examples/cloud-config-reporting.txt b/doc/examples/cloud-config-reporting.txt deleted file mode 100644 index ee00078f..00000000 --- a/doc/examples/cloud-config-reporting.txt +++ /dev/null @@ -1,17 +0,0 @@ -#cloud-config -## -## The following sets up 2 reporting end points. -## A 'webhook' and a 'log' type. -## It also disables the built in default 'log' -reporting: - smtest: - type: webhook - endpoint: "http://myhost:8000/" - consumer_key: "ckey_foo" - consumer_secret: "csecret_foo" - token_key: "tkey_foo" - token_secret: "tkey_foo" - smlogger: - type: log - level: WARN - log: null diff --git a/doc/examples/cloud-config-resolv-conf.txt b/doc/examples/cloud-config-resolv-conf.txt deleted file mode 100644 index 37ffc91a..00000000 --- a/doc/examples/cloud-config-resolv-conf.txt +++ /dev/null @@ -1,20 +0,0 @@ -#cloud-config -# -# This is an example file to automatically configure resolv.conf when the -# instance boots for the first time. -# -# Ensure that your yaml is valid and pass this as user-data when starting -# the instance. Also be sure that your cloud.cfg file includes this -# configuration module in the appropirate section. -# -manage-resolv-conf: true - -resolv_conf: - nameservers: ['8.8.4.4', '8.8.8.8'] - searchdomains: - - foo.example.com - - bar.example.com - domain: example.com - options: - rotate: true - timeout: 1 diff --git a/doc/examples/cloud-config-rh_subscription.txt b/doc/examples/cloud-config-rh_subscription.txt deleted file mode 100644 index be121338..00000000 --- a/doc/examples/cloud-config-rh_subscription.txt +++ /dev/null @@ -1,49 +0,0 @@ -#cloud-config - -# register your Red Hat Enterprise Linux based operating system -# -# this cloud-init plugin is capable of registering by username -# and password *or* activation and org. Following a successfully -# registration you can: -# - auto-attach subscriptions -# - set the service level -# - add subscriptions based on its pool ID -# - enable yum repositories based on its repo id -# - disable yum repositories based on its repo id -# - alter the rhsm_baseurl and server-hostname in the -# /etc/rhsm/rhs.conf file - -rh_subscription: - username: joe@foo.bar - - ## Quote your password if it has symbols to be safe - password: '1234abcd' - - ## If you prefer, you can use the activation key and - ## org instead of username and password. Be sure to - ## comment out username and password - - #activation-key: foobar - #org: 12345 - - ## Uncomment to auto-attach subscriptions to your system - #auto-attach: True - - ## Uncomment to set the service level for your - ## subscriptions - #service-level: self-support - - ## Uncomment to add pools (needs to be a list of IDs) - #add-pool: [] - - ## Uncomment to add or remove yum repos - ## (needs to be a list of repo IDs) - #enable-repo: [] - #disable-repo: [] - - ## Uncomment to alter the baseurl in /etc/rhsm/rhsm.conf - #rhsm-baseurl: http://url - - ## Uncomment to alter the server hostname in - ## /etc/rhsm/rhsm.conf - #server-hostname: foo.bar.com diff --git a/doc/examples/cloud-config-rsyslog.txt b/doc/examples/cloud-config-rsyslog.txt deleted file mode 100644 index 28ea1f16..00000000 --- a/doc/examples/cloud-config-rsyslog.txt +++ /dev/null @@ -1,46 +0,0 @@ -## the rsyslog module allows you to configure the systems syslog. -## configuration of syslog is under the top level cloud-config -## entry 'rsyslog'. -## -## Example: -#cloud-config -rsyslog: - remotes: - # udp to host 'maas.mydomain' port 514 - maashost: maas.mydomain - # udp to ipv4 host on port 514 - maas: "@[10.5.1.56]:514" - # tcp to host ipv6 host on port 555 - maasipv6: "*.* @@[FE80::0202:B3FF:FE1E:8329]:555" - configs: - - "*.* @@192.158.1.1" - - content: "*.* @@192.0.2.1:10514" - filename: 01-example.conf - - content: | - *.* @@syslogd.example.com - config_dir: /etc/rsyslog.d - config_filename: 20-cloud-config.conf - service_reload_command: [your, syslog, reload, command] - -## Additionally the following legacy format is supported -## it is converted into the format above before use. -## rsyslog_filename -> rsyslog/config_filename -## rsyslog_dir -> rsyslog/config_dir -## rsyslog -> rsyslog/configs -# rsyslog: -# - "*.* @@192.158.1.1" -# - content: "*.* @@192.0.2.1:10514" -# filename: 01-example.conf -# - content: | -# *.* @@syslogd.example.com -# rsyslog_filename: 20-cloud-config.conf -# rsyslog_dir: /etc/rsyslog.d - -## to configure rsyslog to accept remote logging on Ubuntu -## write the following into /etc/rsyslog.d/20-remote-udp.conf -## $ModLoad imudp -## $UDPServerRun 514 -## $template LogRemote,"/var/log/maas/rsyslog/%HOSTNAME%/messages" -## :fromhost-ip, !isequal, "127.0.0.1" ?LogRemote -## then: -## sudo service rsyslog restart diff --git a/doc/examples/cloud-config-run-cmds.txt b/doc/examples/cloud-config-run-cmds.txt deleted file mode 100644 index 3bb06864..00000000 --- a/doc/examples/cloud-config-run-cmds.txt +++ /dev/null @@ -1,22 +0,0 @@ -#cloud-config - -# run commands -# default: none -# runcmd contains a list of either lists or a string -# each item will be executed in order at rc.local like level with -# output to the console -# - runcmd only runs during the first boot -# - if the item is a list, the items will be properly executed as if -# passed to execve(3) (with the first arg as the command). -# - if the item is a string, it will be simply written to the file and -# will be interpreted by 'sh' -# -# Note, that the list has to be proper yaml, so you have to quote -# any characters yaml would eat (':' can be problematic) -runcmd: - - [ ls, -l, / ] - - [ sh, -xc, "echo $(date) ': hello world!'" ] - - [ sh, -c, echo "=========hello world'=========" ] - - ls -l /root - - [ wget, "http://slashdot.org", -O, /tmp/index.html ] - diff --git a/doc/examples/cloud-config-salt-minion.txt b/doc/examples/cloud-config-salt-minion.txt deleted file mode 100644 index 939fdc8b..00000000 --- a/doc/examples/cloud-config-salt-minion.txt +++ /dev/null @@ -1,53 +0,0 @@ -#cloud-config -# -# This is an example file to automatically setup and run a salt -# minion when the instance boots for the first time. -# Make sure that this file is valid yaml before starting instances. -# It should be passed as user-data when starting the instance. - -salt_minion: - # conf contains all the directives to be assigned in /etc/salt/minion. - - conf: - # Set the location of the salt master server, if the master server cannot be - # resolved, then the minion will fail to start. - - master: salt.example.com - - # Salt keys are manually generated by: salt-key --gen-keys=GEN_KEYS, - # where GEN_KEYS is the name of the keypair, e.g. 'minion'. The keypair - # will be copied to /etc/salt/pki on the minion instance. - - public_key: | - -----BEGIN PUBLIC KEY----- - MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAwI4yqk1Y12zVmu9Ejlua - h2FD6kjrt+N9XfGqZUUVNeRb7CA0Sj5Q6NtgoaiXuIrSea2sLda6ivqAGmtxMMrP - zpf3FwsYWxBUNF7D4YeLmYjvcTbfr3bCOIRnPNXZ+4isuvvEiM02u2cO0okZSgeb - dofNa1NbTLYAQr9jZZb7GPKrTO4CKy0xzBih/A+sl6dL9PNDmqXQEjyJS6PXG1Vj - PvD5jpSrxuIl5Ms/+2Ro3ALgvC8dgoY/3m3csnd06afumGKv5YOGtf+bnWLhc0bf - 6Sk8Q6i5t0Bl+HAULSPr+B9x/I0rN76ZnPvTj1+hJ0zTof4d0hOLx/K5OQyt7AKo - 4wIBAQ== - -----END PUBLIC KEY----- - - private_key: | - -----BEGIN RSA PRIVATE KEY----- - Proc-Type: 4,ENCRYPTED - DEK-Info: AES-128-CBC,ECE30DBBA56E2DF06B7BC415F8870994 - - YQOE5HIsghqjRsxPQqiWMH/VHmyFH6xIpBcmzxzispEHwBojlvLXviwvR66YhgNw - 7smwE10Ik4/cwwiHTZqCk++jPATPygBiqQkUijCWzcT9kfaxmqdP4PL+hu9g7kGC - KrD2Bm8/oO08s957aThuHC1sABRcJ1V3FRzJT6Za4fwweyvHVYRnmgaDA6zH0qV8 - NqBSB2hnNXKEdh6UFz9QGcrQxnRjfdIaW64zoEX7jT7gYYL7FkGXBa3XdMOA4fnl - adRwLFMs0jfilisZv8oUbPdZ6J6x3o8p8LVecCF8tdZt1zkcLSIXKnoDFpHSISGs - BD9aqD+E4ejynM/tPaVFq4IHzT8viN6h6WcH8fbpClFZ66Iyy9XL3/CjAY7Jzhh9 - fnbc4Iq28cdbmO/vkR7JyVOgEMWe1BcSqtro70XoUNRY8uDJUPqohrhm/9AigFRA - Pwyf3LqojxRnwXjHsZtGltUtEAPZzgh3fKJnx9MyRR7DPXBRig7TAHU7n2BFRhHA - TYThy29bK6NkIc/cKc2kEQVo98Cr04PO8jVxZM332FlhiVlP0kpAp+tFj7aMzPTG - sJumb9kPbMsgpEuTCONm3yyoufGEBFMrIJ+Po48M2RlYOh50VkO09pI+Eu7FPtVB - H4gKzoJIpZZ/7vYXQ3djM8s9hc5gD5CVExTZV4drbsXt6ITiwHuxZ6CNHRBPL5AY - wmF8QZz4oivv1afdSe6E6OGC3uVmX3Psn5CVq2pE8VlRDKFy1WqfU2enRAijSS2B - rtJs263fOJ8ZntDzMVMPgiAlzzfA285KUletpAeUmz+peR1gNzkE0eKSG6THOCi0 - rfmR8SeEzyNvin0wQ3qgYiiHjHbbFhJIMAQxoX+0hDSooM7Wo5wkLREULpGuesTg - A6Fe3CiOivMDraNGA7H6Yg== - -----END RSA PRIVATE KEY----- - diff --git a/doc/examples/cloud-config-seed-random.txt b/doc/examples/cloud-config-seed-random.txt deleted file mode 100644 index 08f69a9f..00000000 --- a/doc/examples/cloud-config-seed-random.txt +++ /dev/null @@ -1,32 +0,0 @@ -#cloud-config -# -# random_seed is a dictionary. -# -# The config module will write seed data from the datasource -# to 'file' described below. -# -# Entries in this dictionary are: -# file: the file to write random data to (default is /dev/urandom) -# data: this data will be written to 'file' before data from -# the datasource -# encoding: this will be used to decode 'data' provided. -# allowed values are 'encoding', 'raw', 'base64', 'b64' -# 'gzip', or 'gz'. Default is 'raw' -# -# command: execute this command to seed random. -# the command will have RANDOM_SEED_FILE in its environment -# set to the value of 'file' above. -# command_required: default False -# if true, and 'command' is not available to be run -# then exception is raised and cloud-init will record failure. -# Otherwise, only debug error is mentioned. -# -# Note: command could be ['pollinate', -# '--server=http://local.pollinate.server'] -# which would have pollinate populate /dev/urandom from provided server -seed_random: - file: '/dev/urandom' - data: 'my random string' - encoding: 'raw' - command: ['sh', '-c', 'dd if=/dev/urandom of=$RANDOM_SEED_FILE'] - command_required: True diff --git a/doc/examples/cloud-config-ssh-keys.txt b/doc/examples/cloud-config-ssh-keys.txt deleted file mode 100644 index 235a114f..00000000 --- a/doc/examples/cloud-config-ssh-keys.txt +++ /dev/null @@ -1,46 +0,0 @@ -#cloud-config - -# add each entry to ~/.ssh/authorized_keys for the configured user or the -# first user defined in the user definition directive. -ssh_authorized_keys: - - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host - - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies - -# Send pre-generated ssh private keys to the server -# If these are present, they will be written to /etc/ssh and -# new random keys will not be generated -# in addition to 'rsa' and 'dsa' as shown below, 'ecdsa' is also supported -ssh_keys: - rsa_private: | - -----BEGIN RSA PRIVATE KEY----- - MIIBxwIBAAJhAKD0YSHy73nUgysO13XsJmd4fHiFyQ+00R7VVu2iV9Qcon2LZS/x - 1cydPZ4pQpfjEha6WxZ6o8ci/Ea/w0n+0HGPwaxlEG2Z9inNtj3pgFrYcRztfECb - 1j6HCibZbAzYtwIBIwJgO8h72WjcmvcpZ8OvHSvTwAguO2TkR6mPgHsgSaKy6GJo - PUJnaZRWuba/HX0KGyhz19nPzLpzG5f0fYahlMJAyc13FV7K6kMBPXTRR6FxgHEg - L0MPC7cdqAwOVNcPY6A7AjEA1bNaIjOzFN2sfZX0j7OMhQuc4zP7r80zaGc5oy6W - p58hRAncFKEvnEq2CeL3vtuZAjEAwNBHpbNsBYTRPCHM7rZuG/iBtwp8Rxhc9I5w - ixvzMgi+HpGLWzUIBS+P/XhekIjPAjA285rVmEP+DR255Ls65QbgYhJmTzIXQ2T9 - luLvcmFBC6l35Uc4gTgg4ALsmXLn71MCMGMpSWspEvuGInayTCL+vEjmNBT+FAdO - W7D4zCpI43jRS9U06JVOeSc9CDk2lwiA3wIwCTB/6uc8Cq85D9YqpM10FuHjKpnP - REPPOyrAspdeOAV+6VKRavstea7+2DZmSUgE - -----END RSA PRIVATE KEY----- - - rsa_public: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEAoPRhIfLvedSDKw7XdewmZ3h8eIXJD7TRHtVW7aJX1ByifYtlL/HVzJ09nilCl+MSFrpbFnqjxyL8Rr/DSf7QcY/BrGUQbZn2Kc22PemAWthxHO18QJvWPocKJtlsDNi3 smoser@localhost - - dsa_private: | - -----BEGIN DSA PRIVATE KEY----- - MIIBuwIBAAKBgQDP2HLu7pTExL89USyM0264RCyWX/CMLmukxX0Jdbm29ax8FBJT - pLrO8TIXVY5rPAJm1dTHnpuyJhOvU9G7M8tPUABtzSJh4GVSHlwaCfycwcpLv9TX - DgWIpSj+6EiHCyaRlB1/CBp9RiaB+10QcFbm+lapuET+/Au6vSDp9IRtlQIVAIMR - 8KucvUYbOEI+yv+5LW9u3z/BAoGBAI0q6JP+JvJmwZFaeCMMVxXUbqiSko/P1lsa - LNNBHZ5/8MOUIm8rB2FC6ziidfueJpqTMqeQmSAlEBCwnwreUnGfRrKoJpyPNENY - d15MG6N5J+z81sEcHFeprryZ+D3Ge9VjPq3Tf3NhKKwCDQ0240aPezbnjPeFm4mH - bYxxcZ9GAoGAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI3 - 8UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC - /QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQCFEIsKKWv - 99iziAH0KBMVbxy03Trz - -----END DSA PRIVATE KEY----- - - dsa_public: ssh-dss AAAAB3NzaC1kc3MAAACBAM/Ycu7ulMTEvz1RLIzTbrhELJZf8Iwua6TFfQl1ubb1rHwUElOkus7xMhdVjms8AmbV1Meem7ImE69T0bszy09QAG3NImHgZVIeXBoJ/JzByku/1NcOBYilKP7oSIcLJpGUHX8IGn1GJoH7XRBwVub6Vqm4RP78C7q9IOn0hG2VAAAAFQCDEfCrnL1GGzhCPsr/uS1vbt8/wQAAAIEAjSrok/4m8mbBkVp4IwxXFdRuqJKSj8/WWxos00Ednn/ww5QibysHYULrOKJ1+54mmpMyp5CZICUQELCfCt5ScZ9GsqgmnI80Q1h3Xkwbo3kn7PzWwRwcV6muvJn4PcZ71WM+rdN/c2EorAINDTbjRo97NueM94WbiYdtjHFxn0YAAACAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI38UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC/QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQ= smoser@localhost - - diff --git a/doc/examples/cloud-config-update-apt.txt b/doc/examples/cloud-config-update-apt.txt deleted file mode 100644 index a83ce3f7..00000000 --- a/doc/examples/cloud-config-update-apt.txt +++ /dev/null @@ -1,7 +0,0 @@ -#cloud-config -# Update apt database on first boot -# (ie run apt-get update) -# -# Default: true -# Aliases: apt_update -package_update: false diff --git a/doc/examples/cloud-config-update-packages.txt b/doc/examples/cloud-config-update-packages.txt deleted file mode 100644 index 56b72c63..00000000 --- a/doc/examples/cloud-config-update-packages.txt +++ /dev/null @@ -1,8 +0,0 @@ -#cloud-config - -# Upgrade the instance on first boot -# (ie run apt-get upgrade) -# -# Default: false -# Aliases: apt_upgrade -package_upgrade: true diff --git a/doc/examples/cloud-config-user-groups.txt b/doc/examples/cloud-config-user-groups.txt deleted file mode 100644 index 0e8ed243..00000000 --- a/doc/examples/cloud-config-user-groups.txt +++ /dev/null @@ -1,109 +0,0 @@ -# Add groups to the system -# The following example adds the ubuntu group with members foo and bar and -# the group cloud-users. -groups: - - ubuntu: [foo,bar] - - cloud-users - -# Add users to the system. Users are added after groups are added. -users: - - default - - name: foobar - gecos: Foo B. Bar - primary-group: foobar - groups: users - selinux-user: staff_u - expiredate: 2012-09-01 - ssh-import-id: foobar - lock_passwd: false - passwd: $6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/ - - name: barfoo - gecos: Bar B. Foo - sudo: ALL=(ALL) NOPASSWD:ALL - groups: users, admin - ssh-import-id: None - lock_passwd: true - ssh-authorized-keys: - - <ssh pub key 1> - - <ssh pub key 2> - - name: cloudy - gecos: Magic Cloud App Daemon User - inactive: true - system: true - -# Valid Values: -# name: The user's login name -# gecos: The user name's real name, i.e. "Bob B. Smith" -# homedir: Optional. Set to the local path you want to use. Defaults to -# /home/<username> -# primary-group: define the primary group. Defaults to a new group created -# named after the user. -# groups: Optional. Additional groups to add the user to. Defaults to none -# selinux-user: Optional. The SELinux user for the user's login, such as -# "staff_u". When this is omitted the system will select the default -# SELinux user. -# lock_passwd: Defaults to true. Lock the password to disable password login -# inactive: Create the user as inactive -# passwd: The hash -- not the password itself -- of the password you want -# to use for this user. You can generate a safe hash via: -# mkpasswd --method=SHA-512 --rounds=4096 -# (the above command would create from stdin an SHA-512 password hash -# with 4096 salt rounds) -# -# Please note: while the use of a hashed password is better than -# plain text, the use of this feature is not ideal. Also, -# using a high number of salting rounds will help, but it should -# not be relied upon. -# -# To highlight this risk, running John the Ripper against the -# example hash above, with a readily available wordlist, revealed -# the true password in 12 seconds on a i7-2620QM. -# -# In other words, this feature is a potential security risk and is -# provided for your convenience only. If you do not fully trust the -# medium over which your cloud-config will be transmitted, then you -# should use SSH authentication only. -# -# You have thus been warned. -# no-create-home: When set to true, do not create home directory. -# no-user-group: When set to true, do not create a group named after the user. -# no-log-init: When set to true, do not initialize lastlog and faillog database. -# ssh-import-id: Optional. Import SSH ids -# ssh-authorized-keys: Optional. [list] Add keys to user's authorized keys file -# sudo: Defaults to none. Set to the sudo string you want to use, i.e. -# ALL=(ALL) NOPASSWD:ALL. To add multiple rules, use the following -# format. -# sudo: -# - ALL=(ALL) NOPASSWD:/bin/mysql -# - ALL=(ALL) ALL -# Note: Please double check your syntax and make sure it is valid. -# cloud-init does not parse/check the syntax of the sudo -# directive. -# system: Create the user as a system user. This means no home directory. -# - -# Default user creation: -# -# Unless you define users, you will get a 'ubuntu' user on ubuntu systems with the -# legacy permission (no password sudo, locked user, etc). If however, you want -# to have the 'ubuntu' user in addition to other users, you need to instruct -# cloud-init that you also want the default user. To do this use the following -# syntax: -# users: -# - default -# - bob -# - .... -# foobar: ... -# -# users[0] (the first user in users) overrides the user directive. -# -# The 'default' user above references the distro's config: -# system_info: -# default_user: -# name: Ubuntu -# plain_text_passwd: 'ubuntu' -# home: /home/ubuntu -# shell: /bin/bash -# lock_passwd: True -# gecos: Ubuntu -# groups: [adm, audio, cdrom, dialout, floppy, video, plugdev, dip, netdev] diff --git a/doc/examples/cloud-config-vendor-data.txt b/doc/examples/cloud-config-vendor-data.txt deleted file mode 100644 index 7f90847b..00000000 --- a/doc/examples/cloud-config-vendor-data.txt +++ /dev/null @@ -1,16 +0,0 @@ -#cloud-config -# -# This explains how to control vendordata via a cloud-config -# -# On select Datasources, vendors have a channel for the consumptions -# of all support user-data types via a special channel called -# vendordata. Users of the end system are given ultimate control. -# -vendor_data: - enabled: True - prefix: /usr/bin/ltrace - -# enabled: whether it is enabled or not -# prefix: the command to run before any vendor scripts. -# Note: this is a fairly weak method of containment. It should -# be used to profile a script, not to prevent its run diff --git a/doc/examples/cloud-config-write-files.txt b/doc/examples/cloud-config-write-files.txt deleted file mode 100644 index ec98bc93..00000000 --- a/doc/examples/cloud-config-write-files.txt +++ /dev/null @@ -1,33 +0,0 @@ -#cloud-config -# vim: syntax=yaml -# -# This is the configuration syntax that the write_files module -# will know how to understand. encoding can be given b64 or gzip or (gz+b64). -# The content will be decoded accordingly and then written to the path that is -# provided. -# -# Note: Content strings here are truncated for example purposes. -write_files: -- encoding: b64 - content: CiMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBzdGF0ZSBvZiBTRUxpbnV4... - owner: root:root - path: /etc/sysconfig/selinux - permissions: '0644' -- content: | - # My new /etc/sysconfig/samba file - - SMBDOPTIONS="-D" - path: /etc/sysconfig/samba -- content: !!binary | - f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAwARAAAAAAABAAAAAAAAAAJAVAAAAAAAAAAAAAEAAOAAI - AEAAHgAdAAYAAAAFAAAAQAAAAAAAAABAAEAAAAAAAEAAQAAAAAAAwAEAAAAAAADAAQAAAAAAAAgA - AAAAAAAAAwAAAAQAAAAAAgAAAAAAAAACQAAAAAAAAAJAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAA - .... - path: /bin/arch - permissions: '0555' -- encoding: gzip - content: !!binary | - H4sIAIDb/U8C/1NW1E/KzNMvzuBKTc7IV8hIzcnJVyjPL8pJ4QIA6N+MVxsAAAA= - path: /usr/bin/hello - permissions: '0755' - diff --git a/doc/examples/cloud-config-yum-repo.txt b/doc/examples/cloud-config-yum-repo.txt deleted file mode 100644 index ab2c031e..00000000 --- a/doc/examples/cloud-config-yum-repo.txt +++ /dev/null @@ -1,20 +0,0 @@ -#cloud-config -# vim: syntax=yaml -# -# Add yum repository configuration to the system -# -# The following example adds the file /etc/yum.repos.d/epel_testing.repo -# which can then subsequently be used by yum for later operations. -yum_repos: - # The name of the repository - epel-testing: - # Any repository configuration options - # See: man yum.conf - # - # This one is required! - baseurl: http://download.fedoraproject.org/pub/epel/testing/5/$basearch - enabled: false - failovermethod: priority - gpgcheck: true - gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL - name: Extra Packages for Enterprise Linux 5 - Testing diff --git a/doc/examples/cloud-config.txt b/doc/examples/cloud-config.txt deleted file mode 100644 index 3cc9c055..00000000 --- a/doc/examples/cloud-config.txt +++ /dev/null @@ -1,752 +0,0 @@ -#cloud-config -# Update apt database on first boot -# (ie run apt-get update) -# -# Default: true -# Aliases: apt_update -package_update: false - -# Upgrade the instance on first boot -# (ie run apt-get upgrade) -# -# Default: false -# Aliases: apt_upgrade -package_upgrade: true - -# Reboot after package install/update if necessary -# Default: false -# Aliases: apt_reboot_if_required -package_reboot_if_required: true - -# Add apt repositories -# -# Default: auto select based on cloud metadata -# in ec2, the default is <region>.archive.ubuntu.com -# apt_mirror: -# use the provided mirror -# apt_mirror_search: -# search the list for the first mirror. -# this is currently very limited, only verifying that -# the mirror is dns resolvable or an IP address -# -# if neither apt_mirror nor apt_mirror search is set (the default) -# then use the mirror provided by the DataSource found. -# In EC2, that means using <region>.ec2.archive.ubuntu.com -# -# if no mirror is provided by the DataSource, and 'apt_mirror_search_dns' is -# true, then search for dns names '<distro>-mirror' in each of -# - fqdn of this host per cloud metadata -# - localdomain -# - no domain (which would search domains listed in /etc/resolv.conf) -# If there is a dns entry for <distro>-mirror, then it is assumed that there -# is a distro mirror at http://<distro>-mirror.<domain>/<distro> -# -# That gives the cloud provider the opportunity to set mirrors of a distro -# up and expose them only by creating dns entries. -# -# if none of that is found, then the default distro mirror is used -apt_mirror: http://us.archive.ubuntu.com/ubuntu/ -apt_mirror_search: - - http://local-mirror.mydomain - - http://archive.ubuntu.com - -apt_mirror_search_dns: False - -# apt_proxy (configure Acquire::HTTP::Proxy) -# 'apt_http_proxy' is an alias for 'apt_proxy'. -# Also, available are 'apt_ftp_proxy' and 'apt_https_proxy'. -# These affect Acquire::FTP::Proxy and Acquire::HTTPS::Proxy respectively -apt_proxy: http://my.apt.proxy:3128 - -# apt_pipelining (configure Acquire::http::Pipeline-Depth) -# Default: disables HTTP pipelining. Certain web servers, such -# as S3 do not pipeline properly (LP: #948461). -# Valid options: -# False/default: Disables pipelining for APT -# None/Unchanged: Use OS default -# Number: Set pipelining to some number (not recommended) -apt_pipelining: False - -# Preserve existing /etc/apt/sources.list -# Default: overwrite sources_list with mirror. If this is true -# then apt_mirror above will have no effect -apt_preserve_sources_list: true - -# Provide a custom template for rendering sources.list -# Default: a default template for Ubuntu/Debain will be used as packaged in -# Ubuntu: /etc/cloud/templates/sources.list.ubuntu.tmpl -# Debian: /etc/cloud/templates/sources.list.debian.tmpl -# Others: n/a -# This will follow the normal mirror/codename replacement rules before -# being written to disk. -apt_custom_sources_list: | - ## template:jinja - ## Note, this file is written by cloud-init on first boot of an instance - ## modifications made here will not survive a re-bundle. - ## if you wish to make changes you can: - ## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg - ## or do the same in user-data - ## b.) add sources in /etc/apt/sources.list.d - ## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl - deb {{mirror}} {{codename}} main restricted - deb-src {{mirror}} {{codename}} main restricted - - # could drop some of the usually used entries - - # could refer to other mirrors - deb http://ddebs.ubuntu.com {{codename}} main restricted universe multiverse - deb http://ddebs.ubuntu.com {{codename}}-updates main restricted universe multiverse - deb http://ddebs.ubuntu.com {{codename}}-proposed main restricted universe multiverse - - # or even more uncommon examples like local or NFS mounted repos, - # eventually whatever is compatible with sources.list syntax - deb file:/home/apt/debian unstable main contrib non-free - -# 'source' entries in apt-sources that match this python regex -# expression will be passed to add-apt-repository -add_apt_repo_match: '^[\w-]+:\w' - -# 'apt_sources' is a dictionary -# The key is the filename and will be prepended by /etc/apt/sources.list.d/ if -# it doesn't start with a '/'. -# There are certain cases - where no content is written into a source.list file -# where the filename will be ignored - yet it can still be used as index for -# merging. -# The value it maps to is a dictionary with 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: keyserver to fetch keys from, default is keyserver.ubuntu.com -# filename: for compatibility with the older format (now the key to this -# dictionary is the filename). If specified this overwrites the -# filename given as key. - -# the new "filename: {specification-dictionary}, filename2: ..." format allows -# better merging between multiple input files than a list like: -# cloud-config1 -# sources: -# s1: {'key': 'key1', 'source': 'source1'} -# cloud-config2 -# sources: -# s2: {'key': 'key2'} -# s1: {filename: 'foo'} -# this would be merged to -#sources: -# s1: -# filename: foo -# key: key1 -# source: source1 -# s2: -# key: key2 -# Be aware that this style of merging is not the default (for backward -# compatibility reasons). You should specify the following merge_how to get -# this more complete and modern merging behaviour: -# merge_how: "list()+dict()+str()" -# This would then also be equivalent to the config merging used in curtin -# (https://launchpad.net/curtin). - -# for more details see below in the various examples - -apt_sources: - byobu-ppa.list: - source: "deb http://ppa.launchpad.net/byobu/ppa/ubuntu karmic main" - keyid: F430BBA5 # GPG key ID published on a key server - # adding a source.list line, importing a gpg key for a given key id and - # storing it in the file /etc/apt/sources.list.d/byobu-ppa.list - - # PPA shortcut: - # * Setup correct apt sources.list line - # * Import the signing key from LP - # - # See https://help.launchpad.net/Packaging/PPA for more information - # this requires 'add-apt-repository' - # due to that the filename key is ignored in this case - ignored1: - source: "ppa:smoser/ppa" # Quote the string - - # Custom apt repository: - # * all that is required is 'source' - # * Creates a file in /etc/apt/sources.list.d/ for the sources list entry - # * [optional] Import the apt signing key from the keyserver - # * Defaults: - # + keyserver: keyserver.ubuntu.com - # - # See sources.list man page for more information about the format - my-repo.list: - source: deb http://archive.ubuntu.com/ubuntu karmic-backports main universe multiverse restricted - - # sources can use $MIRROR and $RELEASE and they will be replaced - # with the local mirror for this cloud, and the running release - # the entry below would be possibly turned into: - # source: deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu natty multiverse - my-repo.list: - source: deb $MIRROR $RELEASE multiverse - - # this would have the same end effect as 'ppa:byobu/ppa' - my-repo.list: - source: "deb http://ppa.launchpad.net/byobu/ppa/ubuntu karmic main" - keyid: F430BBA5 # GPG key ID published on a key server - filename: byobu-ppa.list - - # this would only import the key without adding a ppa or other source spec - # since this doesn't generate a source.list file the filename key is ignored - ignored2: - keyid: F430BBA5 # GPG key ID published on a key server - - # In general keyid's can also be specified via their long fingerprints - # since this doesn't generate a source.list file the filename key is ignored - ignored3: - keyid: B59D 5F15 97A5 04B7 E230 6DCA 0620 BBCF 0368 3F77 - - # Custom apt repository: - # * The apt signing key can also be specified - # by providing a pgp public key block - # * Providing the PGP key here is the most robust method for - # specifying a key, as it removes dependency on a remote key server - my-repo.list: - source: deb http://ppa.launchpad.net/alestic/ppa/ubuntu karmic main - key: | # The value needs to start with -----BEGIN PGP PUBLIC KEY BLOCK----- - -----BEGIN PGP PUBLIC KEY BLOCK----- - Version: SKS 1.0.10 - - mI0ESpA3UQEEALdZKVIMq0j6qWAXAyxSlF63SvPVIgxHPb9Nk0DZUixn+akqytxG4zKCONz6 - qLjoBBfHnynyVLfT4ihg9an1PqxRnTO+JKQxl8NgKGz6Pon569GtAOdWNKw15XKinJTDLjnj - 9y96ljJqRcpV9t/WsIcdJPcKFR5voHTEoABE2aEXABEBAAG0GUxhdW5jaHBhZCBQUEEgZm9y - IEFsZXN0aWOItgQTAQIAIAUCSpA3UQIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEA7H - 5Qi+CcVxWZ8D/1MyYvfj3FJPZUm2Yo1zZsQ657vHI9+pPouqflWOayRR9jbiyUFIn0VdQBrP - t0FwvnOFArUovUWoKAEdqR8hPy3M3APUZjl5K4cMZR/xaMQeQRZ5CHpS4DBKURKAHC0ltS5o - uBJKQOZm5iltJp15cgyIkBkGe8Mx18VFyVglAZey - =Y2oI - -----END PGP PUBLIC KEY BLOCK----- - - # Custom gpg key: - # * As with keyid, a key may also be specified without a related source. - # * all other facts mentioned above still apply - # since this doesn't generate a source.list file the filename key is ignored - ignored4: - key: | # The value needs to start with -----BEGIN PGP PUBLIC KEY BLOCK----- - -----BEGIN PGP PUBLIC KEY BLOCK----- - Version: SKS 1.0.10 - - mI0ESpA3UQEEALdZKVIMq0j6qWAXAyxSlF63SvPVIgxHPb9Nk0DZUixn+akqytxG4zKCONz6 - qLjoBBfHnynyVLfT4ihg9an1PqxRnTO+JKQxl8NgKGz6Pon569GtAOdWNKw15XKinJTDLjnj - 9y96ljJqRcpV9t/WsIcdJPcKFR5voHTEoABE2aEXABEBAAG0GUxhdW5jaHBhZCBQUEEgZm9y - IEFsZXN0aWOItgQTAQIAIAUCSpA3UQIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEA7H - 5Qi+CcVxWZ8D/1MyYvfj3FJPZUm2Yo1zZsQ657vHI9+pPouqflWOayRR9jbiyUFIn0VdQBrP - t0FwvnOFArUovUWoKAEdqR8hPy3M3APUZjl5K4cMZR/xaMQeQRZ5CHpS4DBKURKAHC0ltS5o - uBJKQOZm5iltJp15cgyIkBkGe8Mx18VFyVglAZey - =Y2oI - -----END PGP PUBLIC KEY BLOCK----- - - -## apt config via system_info: -# under the 'system_info', you can further customize cloud-init's interaction -# with apt. -# system_info: -# apt_get_command: [command, argument, argument] -# apt_get_upgrade_subcommand: dist-upgrade -# -# apt_get_command: -# To specify a different 'apt-get' command, set 'apt_get_command'. -# This must be a list, and the subcommand (update, upgrade) is appended to it. -# default is: -# ['apt-get', '--option=Dpkg::Options::=--force-confold', -# '--option=Dpkg::options::=--force-unsafe-io', '--assume-yes', '--quiet'] -# -# apt_get_upgrade_subcommand: -# Specify a different subcommand for 'upgrade. The default is 'dist-upgrade'. -# This is the subcommand that is invoked if package_upgrade is set to true above. -# -# apt_get_wrapper: -# command: eatmydata -# enabled: [True, False, "auto"] -# - -# Install additional packages on first boot -# -# Default: none -# -# if packages are specified, this apt_update will be set to true -# -packages: - - pwgen - - pastebinit - -# set up mount points -# 'mounts' contains a list of lists -# the inner list are entries for an /etc/fstab line -# ie : [ fs_spec, fs_file, fs_vfstype, fs_mntops, fs-freq, fs_passno ] -# -# default: -# mounts: -# - [ ephemeral0, /mnt ] -# - [ swap, none, swap, sw, 0, 0 ] -# -# in order to remove a previously listed mount (ie, one from defaults) -# list only the fs_spec. For example, to override the default, of -# mounting swap: -# - [ swap ] -# or -# - [ swap, null ] -# -# - if a device does not exist at the time, an entry will still be -# written to /etc/fstab. -# - '/dev' can be ommitted for device names that begin with: xvd, sd, hd, vd -# - if an entry does not have all 6 fields, they will be filled in -# with values from 'mount_default_fields' below. -# -# Note, that you should set 'nobootwait' (see man fstab) for volumes that may -# not be attached at instance boot (or reboot) -# -mounts: - - [ ephemeral0, /mnt, auto, "defaults,noexec" ] - - [ sdc, /opt/data ] - - [ xvdh, /opt/data, "auto", "defaults,nobootwait", "0", "0" ] - - [ dd, /dev/zero ] - -# mount_default_fields -# These values are used to fill in any entries in 'mounts' that are not -# complete. This must be an array, and must have 7 fields. -mount_default_fields: [ None, None, "auto", "defaults,nobootwait", "0", "2" ] - -# add each entry to ~/.ssh/authorized_keys for the configured user or the -# first user defined in the user definition directive. -ssh_authorized_keys: - - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host - - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies - -# Send pre-generated ssh private keys to the server -# If these are present, they will be written to /etc/ssh and -# new random keys will not be generated -# in addition to 'rsa' and 'dsa' as shown below, 'ecdsa' is also supported -ssh_keys: - rsa_private: | - -----BEGIN RSA PRIVATE KEY----- - MIIBxwIBAAJhAKD0YSHy73nUgysO13XsJmd4fHiFyQ+00R7VVu2iV9Qcon2LZS/x - 1cydPZ4pQpfjEha6WxZ6o8ci/Ea/w0n+0HGPwaxlEG2Z9inNtj3pgFrYcRztfECb - 1j6HCibZbAzYtwIBIwJgO8h72WjcmvcpZ8OvHSvTwAguO2TkR6mPgHsgSaKy6GJo - PUJnaZRWuba/HX0KGyhz19nPzLpzG5f0fYahlMJAyc13FV7K6kMBPXTRR6FxgHEg - L0MPC7cdqAwOVNcPY6A7AjEA1bNaIjOzFN2sfZX0j7OMhQuc4zP7r80zaGc5oy6W - p58hRAncFKEvnEq2CeL3vtuZAjEAwNBHpbNsBYTRPCHM7rZuG/iBtwp8Rxhc9I5w - ixvzMgi+HpGLWzUIBS+P/XhekIjPAjA285rVmEP+DR255Ls65QbgYhJmTzIXQ2T9 - luLvcmFBC6l35Uc4gTgg4ALsmXLn71MCMGMpSWspEvuGInayTCL+vEjmNBT+FAdO - W7D4zCpI43jRS9U06JVOeSc9CDk2lwiA3wIwCTB/6uc8Cq85D9YqpM10FuHjKpnP - REPPOyrAspdeOAV+6VKRavstea7+2DZmSUgE - -----END RSA PRIVATE KEY----- - - rsa_public: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEAoPRhIfLvedSDKw7XdewmZ3h8eIXJD7TRHtVW7aJX1ByifYtlL/HVzJ09nilCl+MSFrpbFnqjxyL8Rr/DSf7QcY/BrGUQbZn2Kc22PemAWthxHO18QJvWPocKJtlsDNi3 smoser@localhost - - dsa_private: | - -----BEGIN DSA PRIVATE KEY----- - MIIBuwIBAAKBgQDP2HLu7pTExL89USyM0264RCyWX/CMLmukxX0Jdbm29ax8FBJT - pLrO8TIXVY5rPAJm1dTHnpuyJhOvU9G7M8tPUABtzSJh4GVSHlwaCfycwcpLv9TX - DgWIpSj+6EiHCyaRlB1/CBp9RiaB+10QcFbm+lapuET+/Au6vSDp9IRtlQIVAIMR - 8KucvUYbOEI+yv+5LW9u3z/BAoGBAI0q6JP+JvJmwZFaeCMMVxXUbqiSko/P1lsa - LNNBHZ5/8MOUIm8rB2FC6ziidfueJpqTMqeQmSAlEBCwnwreUnGfRrKoJpyPNENY - d15MG6N5J+z81sEcHFeprryZ+D3Ge9VjPq3Tf3NhKKwCDQ0240aPezbnjPeFm4mH - bYxxcZ9GAoGAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI3 - 8UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC - /QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQCFEIsKKWv - 99iziAH0KBMVbxy03Trz - -----END DSA PRIVATE KEY----- - - dsa_public: ssh-dss AAAAB3NzaC1kc3MAAACBAM/Ycu7ulMTEvz1RLIzTbrhELJZf8Iwua6TFfQl1ubb1rHwUElOkus7xMhdVjms8AmbV1Meem7ImE69T0bszy09QAG3NImHgZVIeXBoJ/JzByku/1NcOBYilKP7oSIcLJpGUHX8IGn1GJoH7XRBwVub6Vqm4RP78C7q9IOn0hG2VAAAAFQCDEfCrnL1GGzhCPsr/uS1vbt8/wQAAAIEAjSrok/4m8mbBkVp4IwxXFdRuqJKSj8/WWxos00Ednn/ww5QibysHYULrOKJ1+54mmpMyp5CZICUQELCfCt5ScZ9GsqgmnI80Q1h3Xkwbo3kn7PzWwRwcV6muvJn4PcZ71WM+rdN/c2EorAINDTbjRo97NueM94WbiYdtjHFxn0YAAACAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI38UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC/QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQ= smoser@localhost - - -# remove access to the ec2 metadata service early in boot via null route -# the null route can be removed (by root) with: -# route del -host 169.254.169.254 reject -# default: false (service available) -disable_ec2_metadata: true - -# run commands -# default: none -# runcmd contains a list of either lists or a string -# each item will be executed in order at rc.local like level with -# output to the console -# - if the item is a list, the items will be properly executed as if -# passed to execve(3) (with the first arg as the command). -# - if the item is a string, it will be simply written to the file and -# will be interpreted by 'sh' -# -# Note, that the list has to be proper yaml, so you have to escape -# any characters yaml would eat (':' can be problematic) -runcmd: - - [ ls, -l, / ] - - [ sh, -xc, "echo $(date) ': hello world!'" ] - - [ sh, -c, echo "=========hello world'=========" ] - - ls -l /root - - [ wget, "http://slashdot.org", -O, /tmp/index.html ] - - -# boot commands -# default: none -# this is very similar to runcmd above, but commands run very early -# in the boot process, only slightly after a 'boothook' would run. -# bootcmd should really only be used for things that could not be -# done later in the boot process. bootcmd is very much like -# boothook, but possibly with more friendly. -# * bootcmd will run on every boot -# * the INSTANCE_ID variable will be set to the current instance id. -# * you can use 'cloud-init-per' command to help only run once -bootcmd: - - echo 192.168.1.130 us.archive.ubuntu.com > /etc/hosts - - [ cloud-init-per, once, mymkfs, mkfs, /dev/vdb ] - -# cloud_config_modules: -# default: -# cloud_config_modules: -# - mounts -# - ssh -# - apt-update-upgrade -# - puppet -# - updates-check -# - disable-ec2-metadata -# - runcmd -# -# This is an array of arrays or strings. -# if item is a string, then it is read as a module name -# if the item is an array it is of the form: -# name, frequency, arguments -# where 'frequency' is one of: -# once-per-instance -# always -# a python file in the CloudConfig/ module directory named -# cc_<name>.py -# example: -cloud_config_modules: - - mounts - - ssh-import-id - - ssh - - grub-dpkg - - [ apt-update-upgrade, always ] - - puppet - - updates-check - - disable-ec2-metadata - - runcmd - - byobu - -# unverified_modules: [] -# if a config module declares a set of distros as supported then it will be -# skipped if running on a different distro. to override this sanity check, -# provide a list of modules that should be run anyway in 'unverified_modules'. -# The default is an empty list (ie, trust modules). -# -# Example: -# unverified_modules: ['apt-update-upgrade'] -# default: [] - -# ssh_import_id: [ user1, user2 ] -# ssh_import_id will feed the list in that variable to -# ssh-import-id, so that public keys stored in launchpad -# can easily be imported into the configured user -# This can be a single string ('smoser') or a list ([smoser, kirkland]) -ssh_import_id: [smoser] - -# Provide debconf answers / debian preseed values -# -# See debconf-set-selections man page. -# -# Default: none -# -debconf_selections: | # Need to perserve newlines - # Force debconf priority to critical. - debconf debconf/priority select critical - - # Override default frontend to readline, but allow user to select. - debconf debconf/frontend select readline - debconf debconf/frontend seen false - -# manage byobu defaults -# byobu_by_default: -# 'user' or 'enable-user': set byobu 'launch-by-default' for the default user -# 'system' or 'enable-system' or 'enable': -# enable 'launch-by-default' for all users, do not modify default user -# 'disable': disable both default user and system -# 'disable-system': disable system -# 'disable-user': disable for default user -# not-set: no changes made -byobu_by_default: system - -# disable ssh access as root. -# if you want to be able to ssh in to the system as the root user -# rather than as the 'ubuntu' user, then you must set this to false -# default: true -disable_root: false - -# disable_root_opts: the value of this variable will prefix the -# respective key in /root/.ssh/authorized_keys if disable_root is true -# see 'man authorized_keys' for more information on what you can do here -# -# The string '$USER' will be replaced with the username of the default user -# -# disable_root_opts: no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"$USER\" rather than the user \"root\".';echo;sleep 10" - - -# set the locale to a given locale -# default: en_US.UTF-8 -locale: en_US.UTF-8 -# render template default-locale.tmpl to locale_configfile -locale_configfile: /etc/default/locale - -# add entries to rsyslog configuration -# The first occurance of a given filename will truncate. -# subsequent entries will append. -# if value is a scalar, its content is assumed to be 'content', and the -# default filename is used. -# if filename is not provided, it will default to 'rsylog_filename' -# if filename does not start with a '/', it will be put in 'rsyslog_dir' -# rsyslog_dir default: /etc/rsyslog.d -# rsyslog_filename default: 20-cloud-config.conf -rsyslog: - - ':syslogtag, isequal, "[CLOUDINIT]" /var/log/cloud-foo.log' - - content: "*.* @@192.0.2.1:10514" - - filename: 01-examplecom.conf - content: "*.* @@syslogd.example.com" - -# resize_rootfs should the / filesytem be resized on first boot -# this allows you to launch an instance with a larger disk / partition -# and have the instance automatically grow / to accomoddate it -# set to 'False' to disable -# by default, the resizefs is done early in boot, and blocks -# if resize_rootfs is set to 'noblock', then it will be run in parallel -resize_rootfs: True - -## hostname and /etc/hosts management -# cloud-init can handle updating some entries in /etc/hosts, -# and can set your hostname for you. -# -# if you do nothing you'll end up with: -# * /etc/hostname (and `hostname`) managed via: 'preserve_hostame: false' -# if you do not change /etc/hostname, it will be updated with the cloud -# provided hostname on each boot. If you make a change, then manual -# maintenance takes over, and cloud-init will not modify it. -# -# * /etc/hosts managed via: 'manage_etc_hosts: false' -# cloud-init will not manage /etc/hosts at all. It is in full manual -# maintenance mode. -# -# You can change the above behavior with the following config variables: -# Remember that these can be set in cloud-config via user-data, -# /etc/cloud/cloud.cfg or any file in /etc/cloud/cloud.cfg.d/ -# -# == Hostname management (via /etc/hostname) == -# * preserve_hostname: -# default: False -# If this option is set to True, then /etc/hostname will never updated -# The default behavior is to update it if it has not been modified by -# the user. -# -# * hostname: -# this option will be used wherever the 'hostname' is needed -# simply substitute it in the description above. -# ** If you wish to set your hostname, set it here ** -# default: 'hostname' as returned by the metadata service -# on EC2, the hostname portion of 'local-hostname' is used -# which is something like 'ip-10-244-170-199' -# -# * fqdn: -# this option will be used wherever 'fqdn' is needed. -# simply substitue it in the description above. -# default: fqdn as returned by the metadata service. on EC2 'hostname' -# is used, so this is like: ip-10-244-170-199.ec2.internal -# -# == /etc/hosts management == -# -# The cloud-config variable that covers management of /etc/hosts is -# 'manage_etc_hosts' -# -# By default, its value is 'false' (boolean False) -# -# * manage_etc_hosts: -# default: false -# -# false: -# cloud-init will not modify /etc/hosts at all. -# * Whatever is present at instance boot time will be present after boot. -# * User changes will not be overwritten -# -# true or 'template': -# on every boot, /etc/hosts will be re-written from -# /etc/cloud/templates/hosts.tmpl. -# The strings '$hostname' and '$fqdn' are replaced in the template -# with the appropriate values. -# To make modifications persistant across a reboot, you must make -# modificatoins to /etc/cloud/templates/hosts.tmpl -# -# localhost: -# This option ensures that an entry is present for fqdn as described in -# section 5.1.2 of the debian manual -# http://www.debian.org/doc/manuals/debian-reference/ch05.en.html -# -# cloud-init will generally own the 127.0.1.1 entry, and will update -# it to the hostname and fqdn on every boot. All other entries will -# be left as is. 'ping `hostname`' will ping 127.0.1.1 -# -# If you want a fqdn entry with aliases other than 'hostname' to resolve -# to a localhost interface, you'll need to use something other than -# 127.0.1.1. For example: -# 127.0.1.2 myhost.fqdn.example.com myhost whatup.example.com - -# final_message -# default: cloud-init boot finished at $TIMESTAMP. Up $UPTIME seconds -# this message is written by cloud-final when the system is finished -# its first boot. -# This message is rendered as if it were a template. If you -# want jinja, you have to start the line with '## template:jinja\n' -final_message: "The system is finally up, after $UPTIME seconds" - -# configure where output will go -# 'output' entry is a dict with 'init', 'config', 'final' or 'all' -# entries. Each one defines where -# cloud-init, cloud-config, cloud-config-final or all output will go -# each entry in the dict can be a string, list or dict. -# if it is a string, it refers to stdout and stderr -# if it is a list, entry 0 is stdout, entry 1 is stderr -# if it is a dict, it is expected to have 'output' and 'error' fields -# default is to write to console only -# the special entry "&1" for an error means "same location as stdout" -# (Note, that '&1' has meaning in yaml, so it must be quoted) -output: - init: "> /var/log/my-cloud-init.log" - config: [ ">> /tmp/foo.out", "> /tmp/foo.err" ] - final: - output: "| tee /tmp/final.stdout | tee /tmp/bar.stdout" - error: "&1" - - -# phone_home: if this dictionary is present, then the phone_home -# cloud-config module will post specified data back to the given -# url -# default: none -# phone_home: -# url: http://my.foo.bar/$INSTANCE/ -# post: all -# tries: 10 -# -phone_home: - url: http://my.example.com/$INSTANCE_ID/ - post: [ pub_key_dsa, pub_key_rsa, pub_key_ecdsa, instance_id ] - -# timezone: set the timezone for this instance -# the value of 'timezone' must exist in /usr/share/zoneinfo -timezone: US/Eastern - -# def_log_file and syslog_fix_perms work together -# if -# - logging is set to go to a log file 'L' both with and without syslog -# - and 'L' does not exist -# - and syslog is configured to write to 'L' -# then 'L' will be initially created with root:root ownership (during -# cloud-init), and then at cloud-config time (when syslog is available) -# the syslog daemon will be unable to write to the file. -# -# to remedy this situation, 'def_log_file' can be set to a filename -# and syslog_fix_perms to a string containing "<user>:<group>" -# if syslog_fix_perms is a list, it will iterate through and use the -# first pair that does not raise error. -# -# the default values are '/var/log/cloud-init.log' and 'syslog:adm' -# the value of 'def_log_file' should match what is configured in logging -# if either is empty, then no change of ownership will be done -def_log_file: /var/log/my-logging-file.log -syslog_fix_perms: syslog:root - -# you can set passwords for a user or multiple users -# this is off by default. -# to set the default user's password, use the 'password' option. -# if set, to 'R' or 'RANDOM', then a random password will be -# generated and written to stdout (the console) -# password: passw0rd -# -# also note, that this will expire the password, forcing a change -# on first login. If you do not want to expire, see 'chpasswd' below. -# -# By default in the UEC images password authentication is disabled -# Thus, simply setting 'password' as above will only allow you to login -# via the console. -# -# in order to enable password login via ssh you must set -# 'ssh_pwauth'. -# If it is set, to 'True' or 'False', then sshd_config will be updated -# to ensure the desired function. If not set, or set to '' or 'unchanged' -# then sshd_config will not be updated. -# ssh_pwauth: True -# -# there is also an option to set multiple users passwords, using 'chpasswd' -# That looks like the following, with 'expire' set to 'True' by default. -# to not expire users passwords, set 'expire' to 'False': -# chpasswd: -# list: | -# user1:password1 -# user2:RANDOM -# expire: True -# ssh_pwauth: [ True, False, "" or "unchanged" ] -# -# So, a simple working example to allow login via ssh, and not expire -# for the default user would look like: -password: passw0rd -chpasswd: { expire: False } -ssh_pwauth: True - -# manual cache clean. -# By default, the link from /var/lib/cloud/instance to -# the specific instance in /var/lib/cloud/instances/ is removed on every -# boot. The cloud-init code then searches for a DataSource on every boot -# if your DataSource will not be present on every boot, then you can set -# this option to 'True', and maintain (remove) that link before the image -# will be booted as a new instance. -# default is False -manual_cache_clean: False - -# When cloud-init is finished running including having run -# cloud_init_modules, then it will run this command. The default -# is to emit an upstart signal as shown below. If the value is a -# list, it will be passed to Popen. If it is a string, it will be -# invoked through 'sh -c'. -# -# default value: -# cc_ready_cmd: [ initctl, emit, cloud-config, CLOUD_CFG=/var/lib/instance//cloud-config.txt ] -# example: -# cc_ready_cmd: [ sh, -c, 'echo HI MOM > /tmp/file' ] - -## configure interaction with ssh server -# ssh_svcname: ssh -# set the name of the option to 'service restart' -# in order to restart the ssh daemon. For fedora, use 'sshd' -# default: ssh -# ssh_deletekeys: True -# boolean indicating if existing ssh keys should be deleted on a -# per-instance basis. On a public image, this should absolutely be set -# to 'True' -# ssh_genkeytypes: ['rsa', 'dsa', 'ecdsa'] -# a list of the ssh key types that should be generated -# These are passed to 'ssh-keygen -t' - -## configuration of ssh keys output to console -# ssh_fp_console_blacklist: [] -# ssh_key_console_blacklist: [ssh-dss] -# A list of key types (first token of a /etc/ssh/ssh_key_*.pub file) -# that should be skipped when outputting key fingerprints and keys -# to the console respectively. - -## 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. -# -# 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. -power_state: - delay: 30 - mode: poweroff - message: Bye Bye diff --git a/doc/examples/include-once.txt b/doc/examples/include-once.txt deleted file mode 100644 index 0cf74e5e..00000000 --- a/doc/examples/include-once.txt +++ /dev/null @@ -1,7 +0,0 @@ -#include-once -# entries are one url per line. comment lines beginning with '#' are allowed -# urls are passed to urllib.urlopen, so the format must be supported there -# This entries will just be processed ONE TIME by cloud-init, any further -# iterations won't process this file -http://www.ubuntu.com/robots.txt -http://www.w3schools.com/html/lastpage.htm diff --git a/doc/examples/include.txt b/doc/examples/include.txt deleted file mode 100644 index 5bdc7991..00000000 --- a/doc/examples/include.txt +++ /dev/null @@ -1,5 +0,0 @@ -#include -# entries are one url per line. comment lines beginning with '#' are allowed -# urls are passed to urllib.urlopen, so the format must be supported there -http://www.ubuntu.com/robots.txt -http://www.w3schools.com/html/lastpage.htm diff --git a/doc/examples/kernel-cmdline.txt b/doc/examples/kernel-cmdline.txt deleted file mode 100644 index f043baef..00000000 --- a/doc/examples/kernel-cmdline.txt +++ /dev/null @@ -1,18 +0,0 @@ -cloud-config can be provided via the kernel command line. -configuration that comes from the kernel command line has higher priority -than configuration in /etc/cloud/cloud.cfg - -The format is: - cc: <yaml content here> [end_cc] - -cloud-config will consider any content after 'cc:' to be cloud-config -data. If an 'end_cc' string is present, then it will stop reading there. -otherwise it considers everthing after 'cc:' to be cloud-config content. - -In order to allow carriage returns, you must enter '\\n', literally, -on the command line two backslashes followed by a letter 'n'. - -Here are some examples: - root=/dev/sda1 cc: ssh_import_id: [smoser, kirkland]\\n - root=LABEL=uec-rootfs cc: ssh_import_id: [smoser, bob]\\nruncmd: [ [ ls, -l ], echo hi ] end_cc - cc:ssh_import_id: [smoser] end_cc cc:runcmd: [ [ ls, -l ] ] end_cc root=/dev/sda1 diff --git a/doc/examples/part-handler-v2.txt b/doc/examples/part-handler-v2.txt deleted file mode 100644 index 554c34a5..00000000 --- a/doc/examples/part-handler-v2.txt +++ /dev/null @@ -1,38 +0,0 @@ -#part-handler -# vi: syntax=python ts=4 -# this is an example of a version 2 part handler. -# the differences between the initial part-handler version -# and v2 is: -# * handle_part receives a 5th argument, 'frequency' -# frequency will be either 'always' or 'per-instance' -# * handler_version must be set -# -# A handler declaring version 2 will be called on all instance boots, with a -# different 'frequency' argument. - -handler_version = 2 - -def list_types(): - # return a list of mime-types that are handled by this module - return(["text/plain", "text/go-cubs-go"]) - -def handle_part(data,ctype,filename,payload,frequency): - # data: the cloudinit object - # ctype: '__begin__', '__end__', or the specific mime-type of the part - # filename: the filename for the part, or dynamically generated part if - # no filename is given attribute is present - # payload: the content of the part (empty for begin or end) - # frequency: the frequency that this cloud-init run is running for - # this is either 'per-instance' or 'always'. 'per-instance' - # will be invoked only on the first boot. 'always' will - # will be called on subsequent boots. - if ctype == "__begin__": - print "my handler is beginning, frequency=%s" % frequency - return - if ctype == "__end__": - print "my handler is ending, frequency=%s" % frequency - return - - print "==== received ctype=%s filename=%s ====" % (ctype,filename) - print payload - print "==== end ctype=%s filename=%s" % (ctype, filename) diff --git a/doc/examples/part-handler.txt b/doc/examples/part-handler.txt deleted file mode 100644 index a6e66415..00000000 --- a/doc/examples/part-handler.txt +++ /dev/null @@ -1,23 +0,0 @@ -#part-handler -# vi: syntax=python ts=4 - -def list_types(): - # return a list of mime-types that are handled by this module - return(["text/plain", "text/go-cubs-go"]) - -def handle_part(data,ctype,filename,payload): - # data: the cloudinit object - # ctype: '__begin__', '__end__', or the specific mime-type of the part - # filename: the filename for the part, or dynamically generated part if - # no filename is given attribute is present - # payload: the content of the part (empty for begin or end) - if ctype == "__begin__": - print "my handler is beginning" - return - if ctype == "__end__": - print "my handler is ending" - return - - print "==== received ctype=%s filename=%s ====" % (ctype,filename) - print payload - print "==== end ctype=%s filename=%s" % (ctype, filename) diff --git a/doc/examples/plain-ignored.txt b/doc/examples/plain-ignored.txt deleted file mode 100644 index fb2b59dc..00000000 --- a/doc/examples/plain-ignored.txt +++ /dev/null @@ -1,2 +0,0 @@ -#ignored -Nothing will be done with this part by the UserDataHandler diff --git a/doc/examples/seed/README b/doc/examples/seed/README deleted file mode 100644 index cc15839e..00000000 --- a/doc/examples/seed/README +++ /dev/null @@ -1,22 +0,0 @@ -This directory is an example of a 'seed' directory. - - -copying these files inside an instance's - /var/lib/cloud/seed/nocloud -or - /var/lib/cloud/seed/nocloud-net - -will cause the 'DataSourceNoCloud' and 'DataSourceNoCloudNet' modules -to enable and read the given data. - -The directory must have both files. - -- user-data: - This is the user data, as would be consumed from ec2's metadata service - see examples in doc/examples. -- meta-data: - This file is yaml formated data similar to what is in the ec2 metadata - service under meta-data/. See the example, or, on an ec2 instance, - run: - python -c 'import boto.utils, yaml; print( - yaml.dump(boto.utils.get_instance_metadata()))' diff --git a/doc/examples/seed/meta-data b/doc/examples/seed/meta-data deleted file mode 100644 index d0551448..00000000 --- a/doc/examples/seed/meta-data +++ /dev/null @@ -1,30 +0,0 @@ -# this is yaml formated data -# it is expected to be roughly what you would get from running the following -# on an ec2 instance: -# python -c 'import boto.utils, yaml; print(yaml.dump(boto.utils.get_instance_metadata()))' -ami-id: ami-fd4aa494 -ami-launch-index: '0' -ami-manifest-path: ubuntu-images-us/ubuntu-lucid-10.04-amd64-server-20100427.1.manifest.xml -block-device-mapping: {ami: sda1, ephemeral0: sdb, ephemeral1: sdc, root: /dev/sda1} -hostname: domU-12-31-38-07-19-44.compute-1.internal -instance-action: none -instance-id: i-87018aed -instance-type: m1.large -kernel-id: aki-c8b258a1 -local-hostname: domU-12-31-38-07-19-44.compute-1.internal -local-ipv4: 10.223.26.178 -placement: {availability-zone: us-east-1d} -public-hostname: ec2-184-72-174-120.compute-1.amazonaws.com -public-ipv4: 184.72.174.120 -public-keys: - ec2-keypair.us-east-1: [ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCD9dlT00vOUC8Ttq6YH8RzUCVqPQl6HaSfWSTKYnZiVCpTBj1CaRZPLRLmkSB9Nziy4aRJa/LZMbBHXytQKnB1psvNknqC2UNlrXXMk+Vx5S4vg21MXYYimK4uZEY0Qz29QUiTyNsx18jpAaF4ocUpTpRhxPEBCcSCDmMbc27MU2XuTbasM2NjW/w0bBF3ZFhdH68dZICXdTxS2jUrtrCnc1D/QXVZ5kQO3jsmSyJg8E0nE+6Onpx2YRoVRSwjpGzVZ+BlXPnN5xBREBG8XxzhNFHJbek+RgK5TfL+k4yD4XhnVZuZu53cBAFhj+xPKhtisSd+YmaEq+Jt9uS0Ekd5 - ec2-keypair.us-east-1, ''] -reservation-id: r-e2225889 -security-groups: default - -# of the fields above: -# required: -# instance-id -# suggested: -# local-hostname -# public-keys diff --git a/doc/examples/seed/user-data b/doc/examples/seed/user-data deleted file mode 100644 index 2bc87c0b..00000000 --- a/doc/examples/seed/user-data +++ /dev/null @@ -1,3 +0,0 @@ -#cloud-config -runcmd: - - [ sh, -c, 'echo ==== $(date) ====; echo HI WORLD; echo =======' ] diff --git a/doc/examples/upstart-cloud-config.txt b/doc/examples/upstart-cloud-config.txt deleted file mode 100644 index 1fcec34d..00000000 --- a/doc/examples/upstart-cloud-config.txt +++ /dev/null @@ -1,12 +0,0 @@ -#upstart-job -description "My test job" - -start on cloud-config -console output -task - -script -echo "====BEGIN=======" -echo "HELLO WORLD: $UPSTART_JOB" -echo "=====END========" -end script diff --git a/doc/examples/upstart-rclocal.txt b/doc/examples/upstart-rclocal.txt deleted file mode 100644 index 5cd049a9..00000000 --- a/doc/examples/upstart-rclocal.txt +++ /dev/null @@ -1,12 +0,0 @@ -#upstart-job -description "a test upstart job" - -start on stopped rc RUNLEVEL=[2345] -console output -task - -script -echo "====BEGIN=======" -echo "HELLO RC.LOCAL LIKE WORLD: $UPSTART_JOB" -echo "=====END========" -end script diff --git a/doc/examples/user-script.txt b/doc/examples/user-script.txt deleted file mode 100644 index 6a87cad5..00000000 --- a/doc/examples/user-script.txt +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -cat <<EOF -============================ -My name is ${0} -I was input via user data -============================ -EOF |