version 1.25, 2011/02/22 22:47:51
|
version 1.45, 2011/03/13 00:33:03
|
Line 79 AKI, or *Amazon Kernel Image*, are a spe
|
Line 79 AKI, or *Amazon Kernel Image*, are a spe
|
|
|
# Using pre-made AMIs |
# Using pre-made AMIs |
|
|
XXX TODO |
[[!inline pages="amazon_ec2/AMIs" raw="yes"]] |
|
|
# Build-up your NetBSD system |
# Build-up your NetBSD system |
|
|
Line 101 ftp -a 'http://ftp.netbsd.org/pub/NetBSD
|
Line 101 ftp -a 'http://ftp.netbsd.org/pub/NetBSD
|
tar -xzpf src.tar.gz |
tar -xzpf src.tar.gz |
cd src |
cd src |
# build distribution and kernel |
# 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 |
./build.sh -O ../obj -T ../tools -m amd64 kernel=XEN3_DOMU |
# install distribution in /mnt/ec2 |
# 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 |
# Configuration of your NetBSD EC2 tree |
Line 116 Under */mnt/ec2*, edit the files to add
|
Line 116 Under */mnt/ec2*, edit the files to add
|
[[!template id=filecontent name=etc/rc.conf text=""" |
[[!template id=filecontent name=etc/rc.conf text=""" |
rc_configured=YES |
rc_configured=YES |
|
|
|
ec2_init=YES |
sshd=YES # for remote shell access to instance |
sshd=YES # for remote shell access to instance |
"""]] |
"""]] |
|
|
Line 126 PermitRootLogin without-password
|
Line 127 PermitRootLogin without-password
|
|
|
This file is needed if you want to login via the EC2 SSH key pair created previously: |
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 |
#!/bin/sh |
# |
# |
# PROVIDE: amazon-ec2 |
# PROVIDE: ec2_init |
# REQUIRE: NETWORKING |
# REQUIRE: NETWORKING |
# BEFORE: LOGIN |
# BEFORE: LOGIN |
|
|
$_rc_subr_loaded . /etc/rc.subr |
$_rc_subr_loaded . /etc/rc.subr |
|
|
name="ec2_init" |
name="ec2_init" |
|
rcvar=${name} |
start_cmd="ec2_init" |
start_cmd="ec2_init" |
stop_cmd=":" |
stop_cmd=":" |
|
|
Line 174 ec2_init()
|
Line 176 ec2_init()
|
) |
) |
} |
} |
|
|
|
|
load_rc_config $name |
load_rc_config $name |
run_rc_command "$1" |
run_rc_command "$1" |
"""]] |
"""]] |
Line 196 ptyfs /dev/pts ptyfs rw
|
Line 197 ptyfs /dev/pts ptyfs rw
|
procfs /proc procfs rw |
procfs /proc procfs rw |
EOF |
EOF |
# EC2 startup script (if you installed it) |
# EC2 startup script (if you installed it) |
if [ -f etc/rc.d/ec2-init ]; then |
if [ -f etc/rc.d/ec2_init ]; then |
chmod 755 etc/rc.d/ec2-init |
chmod 555 etc/rc.d/ec2_init |
fi |
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): |
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=""" |
[[!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 |
Calculated size of `NetBSD-AMI.img': 268435456 bytes, 7345 inodes |
Extent size set to 8192 |
Extent size set to 8192 |
NetBSD-AMI.img: 256.0MB (524288 sectors) block size 8192, fragment size 1024 |
NetBSD-AMI.img: 256.0MB (524288 sectors) block size 8192, fragment size 1024 |
Line 276 ATTACHMENT vol-24f88d4c i-5babe7
|
Line 277 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: |
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=""" |
[[!template id=programlisting text=""" |
$ ec2-authorize default -p 22 |
$ ec2-authorize default -p 22 --region us-east-1 |
GROUP default |
GROUP default |
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0 |
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0 |
"""]] |
"""]] |
Line 375 IMAGE <strong>ami-74d0231d</strong>
|
Line 376 IMAGE <strong>ami-74d0231d</strong>
|
You can now start your own NetBSD instance, via: |
You can now start your own NetBSD instance, via: |
|
|
[[!template id=programlisting text=""" |
[[!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 |
RESERVATION r-08218465 983624114127 default |
INSTANCE <strong>i-953d72f9</strong> ami-74d0231d pending 0 t1.micro 2011-02-18T02:05:46+0000 us-east-1c aki-4e7d9527 monitoring-disabled |
INSTANCE <strong>i-953d72f9</strong> 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 *** |
*** Wait a few minutes, micro instances take time to start *** |