Skip to content

Repository files navigation

awscli

LicenseBuild Status

Platform

Project Stats

Ansible role to install the AWS command line interface and configure the credentials and profiles.

Tests

FamilyDistributionVersionTest Status
DebianUbuntuPrecisex86x86_64
DebianUbuntuTrustyx86x86_64
DebianUbuntuXenialx86

Requirements

  • ansible >= 1.9.4

Role Variables

  • debug: flag to run debug tasks.
  • awscli_configuration: dictionary containing a series of AWS profile configuration options.
  • awscli_profiles: dictionary containing a series of AWS profile credentials.
  • awscli_users: dictionary containing a series of user accounts and their profiles and configuration.
  • awscli_version: the version to be installed.
  • awscli_virtualenv: in case the tool is to be installed on a virtualenv, use this parameter to specify the path.

Unless stated otherwise a default value is provided for each of the variables mentioned above in defaults/main.yml.

Dependencies

Playbooks

Example:

- hosts: servers
vars:
debug: yes
roles:
- role: awscli
awscli_profiles:
default:
aws_access_key_id: EXAMPLE
aws_secret_access_key: EXAMPLEKEY
user2:
aws_access_key_id: EXAMPLE
aws_secret_access_key: EXAMPLEKEY
awscli_configuration:
default:
region: us-west-2
output: json
conf_east1_text:
region: us-east-1
output: text
awscli_users:
ec2-user:
profiles:
- default
configuration:
default: default
vagrant:
profiles:
- default
- user2
configuration:
default: default
user2: conf_east1_text
tags: [ awscli ]

This would generate the following configuration files:

# ~ec2-user/.aws/credentials
[default]
aws_access_key_id=EXAMPLE
aws_secret_access_key=EXAMPLEKEY
# ~ec2-user/.aws/config
[default]
region=us-west-2
output=json
# ~vagrant/.aws/credentials
[default]
aws_access_key_id=EXAMPLE
aws_secret_access_key=EXAMPLEKEY
[user2]
aws_access_key_id=EXAMPLE
aws_secret_access_key=EXAMPLEKEY
# ~vagrant/.aws/config
[default]
region=us-west-2
output=json
[profile user2]
region=us-east-1
output=text

Tags

  • configuration: configuration tasks.
  • debug: task to debug role variables.
  • installation: installation tasks.
  • validation: task to validate role variables.

Test

To run the tests you will need to install:

To run all tests against all pre-defined OS/distributions * ansible versions:

$ tox

To run tests for trusty64:

$ cd tests
$ bash test_idempotence.sh --box trusty64.vagrant.dev
# log file will be stores under tests/log

To perform debugging on a specific environment:

$ cd tests
$ vagrant up trusty64.vagrant.dev
# to provision using the test.yml playbook (as many time as you need)
$ vagrant provision trusty64.vagrant.dev
# to access the Vagrant box
$ vagrant ssh trusty64.vagrant.dev

Links

About

Ansible role to install AWS cli and manage credentials and profile configuration.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages