.. _setup_for_ec2:
Image Description for Amazon EC2
================================
.. sidebar:: Abstract
This page provides further information for handling
Amazon EC2 images built with {kiwi} and references the following
articles:
* :ref:`simple_disk`
A virtual disk image which is able to boot in the Amazon EC2
cloud framework has to comply the following constraints:
* Xen tools and libraries must be installed
* cloud-init package must be installed
* cloud-init configuration for Amazon must be provided
* Grub bootloader modules for Xen must be installed
* AWS tools must be installed
* Disk size must be set to 10G
* Kernel parameters must allow for xen console
To meet this requirements add or update the {kiwi} image
description as follows:
1. Software packages
Make sure to add the following packages to the package list
.. note::
Package names used in the following list matches the
package names of the SUSE distribution and might be different
on other distributions.
.. code:: xml
2. Image Type definition
Update the oem image type setup as follows
.. code:: xml
10240
false
3. Cloud Init setup
Cloud init is a service which runs at boot time and allows
to customize the system by activating one ore more cloud init
modules. For Amazon EC2 the following configuration file
:file:`/etc/cloud/cloud.cfg` needs to be provided as part of the
overlay files in your {kiwi} image description
.. code:: yaml
users:
- default
disable_root: true
preserve_hostname: false
syslog_fix_perms: root:root
datasource_list: [ NoCloud, Ec2, None ]
cloud_init_modules:
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- ca-certs
- rsyslog
- users-groups
- ssh
cloud_config_modules:
- mounts
- ssh-import-id
- locale
- set-passwords
- package-update-upgrade-install
- timezone
cloud_final_modules:
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- scripts-user
- ssh-authkey-fingerprints
- keys-to-console
- phone-home
- final-message
- power-state-change
system_info:
default_user:
name: ec2-user
gecos: "cloud-init created default user"
lock_passwd: True
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
paths:
cloud_dir: /var/lib/cloud/
templates_dir: /etc/cloud/templates/
ssh_svcname: sshd
An image built with the above setup can be uploaded into the
Amazon EC2 cloud and registered as image. For further information
on how to upload to EC2 see: `ec2uploadimg `_