Difference between revisions of "Aws-build"

From Bashlinux
Jump to: navigation, search
(Redirected page to Building an AMI)
 
Line 1: Line 1:
  +
#REDIRECT [[Building an AMI]]
__NOTOC__
 
= Building an AMI =
 
 
== Installing AMI Tools ==
 
 
# Download the AMI Tools RPM available Amazon:
 
 
<pre><nowiki>
 
wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
 
</nowiki></pre>
 
 
# Install the downloaded RPM:
 
 
<pre><nowiki>
 
# rpm -ivh ec2-ami-tools.noarch.rpm
 
Preparing... ########################################### [100%]
 
1:ec2-ami-tools ########################################### [100%]
 
</nowiki></pre>
 
 
# In order to isolate the resulting files create a new folder and put the image there:
 
 
<pre><nowiki>
 
# mkdir /usr/local/src/EC2/bundle
 
# mv /usr/local/src/EC2/bashlinux-general-server.fs /usr/local/src/EC2/bundle
 
# cd /usr/local/src/EC2/bundle
 
</nowiki></pre>
 
 
# Bundle the image
 
 
<pre><nowiki>
 
# ec2-bundle-image -i bashlinux-general-server.fs -k pk-ABCDEFGHI1ABCDEFG2ABC3ABCD45ABC.pem -c cert-ABCDEFGHI1ABCDEFG2ABC3ABCD45ABC.pem -u 123456789012
 
</nowiki></pre>
 
 
It will splits and encrypts the image into manageable parts for upload.
 
* ''-i'' refers to the name of the image.
 
* ''-k'' refers to the ''Private Key'' file.
 
* ''-c'' refers to the ''Certificate'' file.
 
* ''-u'' refers to the ''user ID'' that is the ''AWS account'' ID without dashes.
 
* Upload the bundle image
 
 
<pre><nowiki>
 
# ec2-upload-bundle -b bashlinux -m /tmp/bashlinux-general-server.fs.manifest.xml -a <access_key> -s <secret_key>
 
</nowiki></pre>
 
 
* ''-b'' refers the target bucket, use ''bashlinux''.
 
* ''-m'' refers to the manifest that was created by `ec2-bundle-image` command and placed on `/tmp` folder
 
* ''<access_key>'' is your AWS Access Key.
 
* ''<secret_key>'' is your AWS Secret Key.
 
 
== Installing API tools ==
 
 
The API tools is a set of command-line executable files created in Java, them come in a zip file ready to use in both systems, Linux and Windows.
 
# Download API tools from http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88
 
# Decompress the file and place the content under /opt
 
 
<pre><nowiki>
 
# cd /opt
 
# unzip ec2-api-tools.zip
 
</nowiki></pre>
 
 
# Set the environment variable for EC2 API tools
 
 
<pre><nowiki>
 
# export EC2_HOME=/opt/ec2-api-tools-1.3-19403
 
</nowiki></pre>
 
 
# Add the _bin_ directory of API tools to the system path
 
 
<pre><nowiki>
 
# export PATH=$PATH:$EC2_HOME/bin
 
</nowiki></pre>
 
 
 
To simplify the work environment calling the commands from anywhere in the system and avoid to write long lines to run a command we might want to set up the environment variables to have done it.
 
 
=== Setting up Private Key and Certificate for authentication ===
 
# Place private key and certification into a secure and accessible location
 
 
<pre><nowiki>
 
# mkdir -p ~/.ec2
 
# cp /usr/local/src/EC2/bundle/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem ~/.ec2
 
# cp /usr/local/src/EC2/bundle/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem ~/.ec2
 
</nowiki></pre>
 
 
# Set the environment variable to allow authentication using private key and certificate
 
 
<pre><nowiki>
 
# export EC2_PRIVATE_KEY=~/.ec2/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem
 
# export EC2_CERT=~/.ec2/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem
 
</nowiki></pre>
 
 
 
=== Setting up Java environment ===
 
As mentioned above the API tools has been build on Java, is mandatory to have installed at least ''Java 1.5''. To be sure you have installed run the command
 
 
<pre><nowiki>
 
# rpm -qa | grep jre
 
</nowiki></pre>
 
 
if the command yields another version different or older than version 1.5, then you must run yum using bashlinux repository enabled
 
 
<pre><nowiki>
 
yum install jre
 
</nowiki></pre>
 
 
and the set the Java home environment as follows:
 
 
<pre><nowiki>
 
# export JAVA_HOME=/usr/java/jre1.6.0_05
 
</nowiki></pre>
 
 
 
'''Mac OS X users'''
 
The correct path to Java home in OS X is:
 
 
<pre><nowiki>
 
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
 
</nowiki></pre>
 
 
=== Putting all together ===
 
To be sure you have exported all the environment variables in `~/.bashrc`, open the above file and add the following lines at the end of the file:
 
 
<pre><nowiki>
 
export JAVA_HOME=/usr/java/jre1.6.0_05
 
export EC2_HOME=/opt/ec2-api-tools-1.3-19403/
 
export EC2_PRIVATE_KEY=~/.ec2/pk-PJZHCYUQ5WGEVOJCM24PAQL734TXXK5H.pem
 
export EC2_CERT=~/.ec2/cert-PJZHCYUQ5WGEVOJCM24PAQL734TXXK5H.pem
 
export PATH=$PATH:$EC2_HOME/bin
 
</nowiki></pre>
 
 
 
'''Mac OS X users'''
 
The file to be used is `/etc/bashrc` and the lines to be added at the end of the file are:
 
 
<pre><nowiki>
 
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
 
export EC2_HOME=/opt/ec2-api-tools-1.3-19403/
 
export EC2_PRIVATE_KEY=~/.ec2/pk-PJZHCYUQ5WGEVOJCM24PAQL734TXXK5H.pem
 
export EC2_CERT=~/.ec2/cert-PJZHCYUQ5WGEVOJCM24PAQL734TXXK5H.pem
 
export PATH=$PATH:$EC2_HOME/bin
 
</nowiki></pre>
 

Latest revision as of 22:59, 9 June 2015

Redirect to: