Skip to content

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

License

Notifications You must be signed in to change notification settings

ansiblebit/awscli

 
 

Repository files navigation

awscli

License Build Status

Platform

Project Stats

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

Tests

Family Distribution Version Test Status
Debian Ubuntu Precise x86 x86_64
Debian Ubuntu Trusty x86 x86_64
Debian Ubuntu Xenial x86

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

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 70.8%
  • Ruby 17.5%
  • Python 11.7%