-
-
Save rudymccomb/cd69c22a745f3f1c33998bf422b7e24e to your computer and use it in GitHub Desktop.
Install AWS CLI Tools Shell Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
sudo apt-get update | |
sudo apt-get install -y openjdk-6-jre ruby1.8-full libxml2-utils unzip cpanminus build-essential | |
sudo mkdir -p /usr/local/aws | |
wget --quiet http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip | |
unzip -qq ec2-api-tools.zip | |
sudo rsync -a --no-o --no-g ec2-api-tools-*/ /usr/local/aws/ec2/ | |
wget --quiet http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip | |
unzip -qq ec2-ami-tools.zip | |
sudo rsync -a --no-o --no-g ec2-ami-tools-*/ /usr/local/aws/ec2/ | |
wget --quiet http://awsiammedia.s3.amazonaws.com/public/tools/cli/latest/IAMCli.zip | |
unzip -qq IAMCli.zip | |
sudo rsync -a --no-o --no-g IAMCli-*/ /usr/local/aws/iam/ | |
wget --quiet http://s3.amazonaws.com/rds-downloads/RDSCli.zip | |
unzip -qq RDSCli.zip | |
sudo rsync -a --no-o --no-g RDSCli-*/ /usr/local/aws/rds/ | |
wget --quiet http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing.zip | |
unzip -qq ElasticLoadBalancing.zip | |
sudo rsync -a --no-o --no-g ElasticLoadBalancing-*/ /usr/local/aws/elb/ | |
wget --quiet https://s3.amazonaws.com/cloudformation-cli/AWSCloudFormation-cli.zip | |
unzip -qq AWSCloudFormation-cli.zip | |
sudo rsync -a --no-o --no-g AWSCloudFormation-*/ /usr/local/aws/cfn/ | |
wget --quiet http://ec2-downloads.s3.amazonaws.com/AutoScaling-2011-01-01.zip | |
unzip -qq AutoScaling-*.zip | |
sudo rsync -a --no-o --no-g AutoScaling-*/ /usr/local/aws/as/ | |
wget --quiet http://awsimportexport.s3.amazonaws.com/importexport-webservice-tool.zip | |
sudo mkdir /usr/local/aws/importexport | |
sudo unzip -qq importexport-webservice-tool.zip -d /usr/local/aws/importexport | |
wget --quiet http://s3.amazonaws.com/amazon-cloudsearch-data/cloud-search-tools-1.0.0.1-2012.03.05.tar.gz | |
tar xzf cloud-search-tools*.tar.gz | |
sudo rsync -a --no-o --no-g cloud-search-tools-*/ /usr/local/aws/cloudsearch/ | |
wget --quiet http://ec2-downloads.s3.amazonaws.com/CloudWatch-2010-08-01.zip | |
unzip -qq CloudWatch-*.zip | |
sudo rsync -a --no-o --no-g CloudWatch-*/ /usr/local/aws/cloudwatch/ | |
wget --quiet https://s3.amazonaws.com/elasticache-downloads/AmazonElastiCacheCli-2012-03-09-1.6.000.zip | |
unzip -qq AmazonElastiCacheCli-*.zip | |
sudo rsync -a --no-o --no-g AmazonElastiCacheCli-*/ /usr/local/aws/elasticache/ | |
wget --quiet https://s3.amazonaws.com/elasticbeanstalk/cli/AWS-ElasticBeanstalk-CLI-2.1.zip | |
unzip -qq AWS-ElasticBeanstalk-CLI-*.zip | |
sudo rsync -a --no-o --no-g AWS-ElasticBeanstalk-CLI-*/ /usr/local/aws/elasticbeanstalk/ | |
wget --quiet http://elasticmapreduce.s3.amazonaws.com/elastic-mapreduce-ruby.zip | |
unzip -qq -d elastic-mapreduce-ruby elastic-mapreduce-ruby.zip | |
sudo rsync -a --no-o --no-g elastic-mapreduce-ruby/ /usr/local/aws/elasticmapreduce/ | |
wget --quiet http://sns-public-resources.s3.amazonaws.com/SimpleNotificationServiceCli-2010-03-31.zip | |
unzip -qq SimpleNotificationServiceCli-*.zip | |
sudo rsync -a --no-o --no-g SimpleNotificationServiceCli-*/ /usr/local/aws/sns/ | |
sudo chmod 755 /usr/local/aws/sns/bin/* | |
sudo mkdir -p /usr/local/aws/route53/bin | |
for i in dnscurl.pl route53tobind.pl bindtoroute53.pl route53zone.pl; do | |
sudo wget --quiet --directory-prefix=/usr/local/aws/route53/bin http://awsmedia.s3.amazonaws.com/catalog/attachments/$i | |
sudo chmod +x /usr/local/aws/route53/bin/$i | |
done | |
cpanm --sudo --notest --quiet Net::DNS::ZoneFile NetAddr::IP Net::DNS Net::IP Digest::HMAC Digest::SHA1 Digest::MD5 | |
sudo wget --quiet --directory-prefix=/usr/local/aws/cloudfront/bin http://d1nqj4pxyrfw2.cloudfront.net/cfcurl.pl | |
sudo chmod +x /usr/local/aws/cloudfront/bin/cfcurl.pl | |
wget --quiet http://s3.amazonaws.com/doc/s3-example-code/s3-curl.zip | |
unzip -qq s3-curl.zip | |
sudo mkdir -p /usr/local/aws/s3/bin/ | |
sudo rsync -a --no-o --no-g s3-curl/ /usr/local/aws/s3/bin/ | |
sudo chmod 755 /usr/local/aws/s3/bin/s3curl.pl | |
mkdir -m 0700 $HOME/.aws-default/ | |
$HOME/.aws-default/cert-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem | |
$HOME/.aws-default/pk-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem | |
<p>Create the file $HOME/.aws-default/aws-credential-file.txt</code> with your <a href="https://aws-portal.amazon.com/gp/aws/securityCredentials">AWS | |
AWSAccessKeyId=<insert your AWS access id here> | |
AWSSecretKey=<insert your AWS secret access key here> | |
<p>Create the file $HOME/.aws-default/aws-credentials.json</code> in the following | |
{ | |
"access-id": "<insert your AWS access id here>", | |
"private-key": "<insert your AWS secret access key here>", | |
"key-pair": "<insert the name of your Amazon ec2 key-pair here>", | |
"key-pair-file": "<insert the path to the .pem file for your Amazon ec2 key pair here>", | |
"region": "<The region where you wish to launch your job flows. Should be one of us-east-1, us-west-1, us-west-2, eu-west-1, ap-southeast-1, or ap-northeast-1, sa-east-1>" | |
} | |
<p>Create the file $HOME/.aws-secrets</code> in the following format:</p> | |
%awsSecretAccessKeys = ( | |
'default' => { | |
id => '<insert your AWS access id here>', | |
key => '<insert your AWS secret access key here>', | |
}, | |
); | |
<p>Create a symbolic link for s3curl</code> to find its hardcoded config file | |
ln -s $HOME/.aws-secrets $HOME/.s3curl | |
chmod 600 $HOME/.aws-default/* $HOME/.aws-secrets | |
<p>Add the following lines to your $HOME/.bashrc</code> file so that the AWS | |
We put the new directories in the front of the $PATH</code> so that we run | |
export JAVA_HOME=/usr | |
export EC2_HOME=/usr/local/aws/ec2 | |
export AWS_IAM_HOME=/usr/local/aws/iam | |
export AWS_RDS_HOME=/usr/local/aws/rds | |
export AWS_ELB_HOME=/usr/local/aws/elb | |
export AWS_CLOUDFORMATION_HOME=/usr/local/aws/cfn | |
export AWS_AUTO_SCALING_HOME=/usr/local/aws/as | |
export CS_HOME=/usr/local/aws/cloudsearch | |
export AWS_CLOUDWATCH_HOME=/usr/local/aws/cloudwatch | |
export AWS_ELASTICACHE_HOME=/usr/local/aws/elasticache | |
export AWS_SNS_HOME=/usr/local/aws/sns | |
export AWS_ROUTE53_HOME=/usr/local/aws/route53 | |
export AWS_CLOUDFRONT_HOME=/usr/local/aws/cloudfront | |
for i in $EC2_HOME $AWS_IAM_HOME $AWS_RDS_HOME $AWS_ELB_HOME $AWS_CLOUDFORMATION_HOME $AWS_AUTO_SCALING_HOME $CS_HOME $AWS_CLOUDWATCH_HOME $AWS_ELASTICACHE_HOME $AWS_SNS_HOME $AWS_ROUTE53_HOME $AWS_CLOUDFRONT_HOME /usr/local/aws/s3 | |
do | |
PATH=$i/bin:$PATH | |
done | |
PATH=/usr/local/aws/elasticbeanstalk/eb/linux/python2.7:$PATH | |
PATH=/usr/local/aws/elasticmapreduce:$PATH | |
export EC2_PRIVATE_KEY=$(echo $HOME/.aws-default/pk-*.pem) | |
export EC2_CERT=$(echo $HOME/.aws-default/cert-*.pem) | |
export AWS_CREDENTIAL_FILE=$HOME/.aws-default/aws-credential-file.txt | |
export ELASTIC_MAPREDUCE_CREDENTIALS=$HOME/.aws-default/aws-credentials.json | |
source $HOME/.bashrc | |
ec2-describe-regions | |
ec2-ami-tools-version | |
iam-accountgetsummary | |
rds-describe-db-engine-versions | |
elb-describe-lb-policies | |
cfn-list-stacks | |
cs-describe-domain | |
mon-version | |
elasticache-describe-cache-clusters | |
eb --version | |
elastic-mapreduce --list --all | |
sns-list-topics | |
dnscurl.pl --keyname default https://route53.amazonaws.com/2010-10-01/hostedzone | xmllint --format - | |
cfcurl.pl --keyname default https://cloudfront.amazonaws.com/2008-06-30/distribution | xmllint --format - | |
s3curl.pl --id default http://s3.amazonaws.com/ | xmllint --format - | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment