--- wikisrc/amazon_ec2.mdwn 2011/02/22 22:47:51 1.25
+++ wikisrc/amazon_ec2.mdwn 2011/03/13 00:33:03 1.45
@@ -79,7 +79,7 @@ AKI, or *Amazon Kernel Image*, are a spe
# Using pre-made AMIs
-XXX TODO
+[[!inline pages="amazon_ec2/AMIs" raw="yes"]]
# Build-up your NetBSD system
@@ -101,10 +101,10 @@ ftp -a 'http://ftp.netbsd.org/pub/NetBSD
tar -xzpf src.tar.gz
cd src
# build distribution and kernel
-./build.sh -O ../obj -T ../tools -D ../dest -R ../release -V INSTALLSETS="base etc" -m amd64 -U distribution
+./build.sh -O ../obj -T ../tools -D ../dest -R ../release -m amd64 -U distribution
./build.sh -O ../obj -T ../tools -m amd64 kernel=XEN3_DOMU
# install distribution in /mnt/ec2
-./build.sh -O ../obj -T ../tools -D ../dest -R ../release -U install=/mnt/ec2
+su root ./build.sh -O ../obj -T ../tools -D ../dest -R ../release -U -V INSTALLSETS="base etc" install=/mnt/ec2
"""]]
# Configuration of your NetBSD EC2 tree
@@ -116,6 +116,7 @@ Under */mnt/ec2*, edit the files to add
[[!template id=filecontent name=etc/rc.conf text="""
rc_configured=YES
+ec2_init=YES
sshd=YES # for remote shell access to instance
"""]]
@@ -126,16 +127,17 @@ PermitRootLogin without-password
This file is needed if you want to login via the EC2 SSH key pair created previously:
-[[!template id=filecontent name=etc/rc.d/ec2-init text="""
+[[!template id=filecontent name=etc/rc.d/ec2_init text="""
#!/bin/sh
#
-# PROVIDE: amazon-ec2
+# PROVIDE: ec2_init
# REQUIRE: NETWORKING
# BEFORE: LOGIN
$_rc_subr_loaded . /etc/rc.subr
name="ec2_init"
+rcvar=${name}
start_cmd="ec2_init"
stop_cmd=":"
@@ -174,7 +176,6 @@ ec2_init()
)
}
-
load_rc_config $name
run_rc_command "$1"
"""]]
@@ -196,15 +197,15 @@ ptyfs /dev/pts ptyfs rw
procfs /proc procfs rw
EOF
# EC2 startup script (if you installed it)
-if [ -f etc/rc.d/ec2-init ]; then
- chmod 755 etc/rc.d/ec2-init
+if [ -f etc/rc.d/ec2_init ]; then
+ chmod 555 etc/rc.d/ec2_init
fi
"""]]
You can then proceed to modifying the system living under */mnt/ec2*, so it can fit your needs (adding custom binaries, packages, etc). When done, build the *NetBSD-AMI.img.gz* ffs image, via [[!template id=man name=makefs section=8]], or **nbmakefs**, from the [toolchain](http://www.netbsd.org/docs/guide/en/chap-build.html#chap-build-tools):
[[!template id=programlisting text="""
-$ makefs -t ffs -B le -s 256m -N /mnt/ec2/etc/ -o density=32k NetBSD-AMI.img /mnt/ec2/
+$ makefs -t ffs -B le -s 256m -N /mnt/ec2/etc/ -o density=32k /tmp/NetBSD-AMI.img /mnt/ec2/
Calculated size of `NetBSD-AMI.img': 268435456 bytes, 7345 inodes
Extent size set to 8192
NetBSD-AMI.img: 256.0MB (524288 sectors) block size 8192, fragment size 1024
@@ -276,7 +277,7 @@ ATTACHMENT vol-24f88d4c i-5babe7
Before we can connect to our brand new instance, we have to allow connections on SSH port (22) through the AWS EC2 firewall:
[[!template id=programlisting text="""
-$ ec2-authorize default -p 22
+$ ec2-authorize default -p 22 --region us-east-1
GROUP default
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
"""]]
@@ -375,7 +376,7 @@ IMAGE ami-74d0231d
You can now start your own NetBSD instance, via:
[[!template id=programlisting text="""
-$ ec2-run-instances ami-74d0231d -t t1.micro -z us-east-1c
+$ ec2-run-instances ami-74d0231d -t t1.micro -z us-east-1c -k $EC2_SSH_KEYNAME
RESERVATION r-08218465 983624114127 default
INSTANCE i-953d72f9 ami-74d0231d pending 0 t1.micro 2011-02-18T02:05:46+0000 us-east-1c aki-4e7d9527 monitoring-disabled
*** Wait a few minutes, micro instances take time to start ***