Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bash script to install AWS CLI tools

I am writing a bash script that will automatically install and configure AWS CLI tools. I am able to install AWS CLI tools but unable to configure it.

My script is something like this:

#!/bin/bash


wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
./awscli-bundle/install -b ~/bin/aws
./awscli-bundle/install -h

aws configure
AWS Access Key ID [None]: ABCDEFGHIJKLMNOP   ## unable to provide this data
AWS Secret Access Key [None]: xbdwsdADDS/ssfsfa/afzfASADQASAd   ## unable to provide this data
Default region name [None]: us-west-2   ## unable to provide this data
Default output format [None]: json   ## unable to provide this data

I wish to do the configuration using this script too. I wish that I can provide these credentials via script so that it prevents manual entry. How can this be done?

like image 447
Rahul Mehrotra Avatar asked Jul 02 '14 16:07

Rahul Mehrotra


2 Answers

Use a configuration file rather than the aws configure command. Create a file called ~/.aws/config that looks like this:

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region=us-west-2
output=json

More info in the docs.

like image 169
Ben Whaley Avatar answered Oct 23 '22 05:10

Ben Whaley


the best practice is to install the awscli utility by BASH and copy the file from your own specified location of 2 files

without hitting

#aws configure 

command these files will not get created, you can copy and paste the files using bash script and get all the execution done

~/.aws/credintials
~/.aws/config

where credentials contains

[default]
aws_access_key_id=ABCDEFGHIJKLMNOP
aws_secret_access_key=xbdwsdADDS/ssfsfa/afzfASADQASAd

and config file contains

[default]
output=json
region=us-west-2

This will help you to keep the keys at one place and you can also push the same for your execution for any CMT tool as well like Ansible.

like image 2
Daljit Sinz Avatar answered Oct 23 '22 05:10

Daljit Sinz