Rahul Mehrotra
Rahul Mehrotra

Reputation: 639

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?

Upvotes: 14

Views: 16698

Answers (3)

michael emens
michael emens

Reputation: 21

you additionally configure this from the command line which will create the configuration file

aws configure set aws_access_key_id ABCDEFGHIJKLMNOP
aws configure set aws_secret_access_key xbdwsdADDS/ssfsfa/afzfASADQASAd
aws configure set default.region eu-west-1

Upvotes: 2

Daljit Sinz
Daljit Sinz

Reputation: 129

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.

Upvotes: 2

Ben Whaley
Ben Whaley

Reputation: 34426

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.

Upvotes: 20

Related Questions