Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save shortthirdman/1a06a33328a0967992ca66d7ee80ebd8 to your computer and use it in GitHub Desktop.
Save shortthirdman/1a06a33328a0967992ca66d7ee80ebd8 to your computer and use it in GitHub Desktop.
Amazon Linux 2 first boot on Virtual Box
# Download the VDI from https://cdn.amazonlinux.com/os-images/latest/
# Doc is at http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html
# Be sure you have config/meta-data and config/user-data ready as per the below
# change ec2-user's password to your password
$ cat config/meta-data
local-hostname: amazonlinux.onprem
# eth0 is the default network interface enabled in the image. You can configure
# static network settings with an entry like below.
#network-interfaces: |
# iface eth0 inet static
# address 192.168.1.10
# network 192.168.1.0
# netmask 255.255.255.0
# broadcast 192.168.1.255
# gateway 192.168.1.254
$ cat config/user-data
#cloud-config
# vim:syntax=yaml
users:
# A user by the name ec2-user is created in the image by default.
- default
# Following entry create user1 and assigns password specified in plain text.
# Please not use of plain text password is not recommended from security best
# practises standpoint
# - name: user1
# groups: sudo
# sudo: ['ALL=(ALL) NOPASSWD:ALL']
# plain_text_passwd: < plain text password here >
# lock_passwd: false
# Following entry creates user2 and attaches a hashed passwd to the user. Hashed
# passwords can be generated with:
# python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'
# - name: user2
# passwd: < hashed password here >
# lock_passwd: false
# Following entry creates user3, disables password based login and enables an SSH public key
# - name: user3
# ssh-authorized-keys:
# - < ssh public key here >
# lock_passwd: true
chpasswd:
list: |
ec2-user:password
# On Mac OS, you can use hdiutil instead of genisoimage
hdiutil makehybrid -o init.iso -hfs -joliet -iso -default-volume-name cidata config
## Then attach the init.iso file to the virtual machine before to boot the VDI.
## Cloud-init configuration happens ar first boot only, you do not need the ISO file for subsequent boots
## If you need to retry, re-try from the originally downloaded VDI
## Keep a copy of the downloaded VDI if you need to make changes to your root disk image.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment