christiangda.awscli
Rol de Ansible: christiangda.awscli
Este rol instala la Interfaz de Línea de Comandos de AWS (awscli)
La mejor manera de instalar este rol es usando el comando ansible-galaxy install christiangda.awscli
, el repositorio de Ansible Galaxy es christiangda.awscli
El código del repositorio está en https://github.com/christiangda/ansible-role-awscli
Notas:
- Este rol no permite configurar el perfil de AWS CLI (configuración y credenciales), en su lugar, trabaja junto con el rol christiangda.awscli_configure que permite configurarlo.
Requisitos
Este rol funciona en distribuciones de RedHat, CentOS, Debian y Ubuntu.
- RedHat
- 7
- 8
- CentOS
- 7
- 8
- Ubuntu
- 16.*
- 18.*
- 20.*
- 21.*
- Debian
- stretch (9)
- buster (10)
- bullseye (11)
Para ver la matriz de compatibilidad de Python y Ansible, consulta el proyecto Matriz de construcción de Travis-CI
Variables del Rol
Ninguna
Dependencias
- RedHat/CentOS
- 6/7 Repositorio EPEL Necesitas habilitar el repositorio EPEL, puedes usar mi rol: christiangda.epel_repo para esta tarea.
Nota: RedHat/CentOS 8 no necesita el repositorio EPEL para usar este rol.
Ejemplo de Playbook
RedHat/CentOS, Ubuntu y Debian
Cuando tu objetivo es RedHat/CentOS 8 o Debian/Ubuntu
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli
Cuando tu objetivo es RedHat/CentOS 6/7
- hosts: redhat-7
gather_facts: True
roles:
- role: christiangda.epel_repo
- role: christiangda.awscli
Cuando tienes múltiples objetivos de OS, instala el repositorio EPEL solo en RedHat/CentOS 6/7
- hosts: servers
gather_facts: True
roles:
- role: christiangda.epel_repo
when: >
ansible_os_family == 'RedHat' and (
ansible_distribution == 'CentOS' or
ansible_distribution == 'RedHat'
)
and (
ansible_distribution_major_version == '6' or
ansible_distribution_major_version == '7'
)
changed_when: false
- role: christiangda.awscli
Cuando tu objetivo es RedHat/CentOS 8 o Debian/Ubuntu y quieres usar el rol christiangda.awscli
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli
- role: christiangda.awscli_configure
vars:
awscliconf_files:
credentials:
- default:
aws_access_key_id: 'AKIAIOSFODNN7EXAMPLE'
aws_secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
config:
- default:
region: us-west-2
output: json
- profile development:
role_arn: 'arn:aws:iam::123456789012:role/role-for-development'
mfa_serial: 'arn:aws:iam::11111111111:mfa/christian.gonzalez'
region: eu-west-1
source_profile: default
Desarrollo / Contribuciones
Este rol es probado usando Molecule y fue desarrollado usando Entornos Virtuales de Python
Además, utilizamos dos ramas principales de git
- master
- develop
Si quieres contribuir a este proyecto, estos son los pasos que debes seguir
- Haz un fork del proyecto
- Prepara tu entorno
- Arregla el problema en la rama
develop
- Ejecuta
molecule test
- Crea un Pull Request a la rama
develop
del proyecto oficial
Referencias
Prepara tu entorno
- Python 3
mkdir ansible-roles
cd ansible-roles/
python3 -m venv venv
source venv/bin/activate
pip install pip --upgrade
pip install ansible
pip install molecule
pip install 'molecule[docker]'
pip install 'molecule[lint]'
pip install molecule-vagrant
pip install python-vagrant
pip install selinux
pip install docker
pip install pytest
pip install pytest-mock
pip install pylint
pip install rope
pip install autopep8
pip install yamllint
pip install flake8
pip install ansible-lint
Clona el repositorio del rol (desde tu fork) y crea un enlace simbólico
git clone https://github.com/christiangda/ansible-role-awscli.git
ln -s ansible-role-awscli christiangda.awscli
cd christiangda.awscli
Ejecuta la prueba de molécula
Escenarios disponibles:
- default -->
--driver-name docker
y solo la última versión de OS - docker -->
--driver-name docker
- podman -->
--driver-name podman
- vagrant -->
--driver-name vagrant
escenario default
Paso a paso
molecule create [--scenario-name default]
molecule converge [--scenario-name default]
molecule verify [--scenario-name default]
molecule destroy [--scenario-name default]
o
Todo en uno
molecule test [--scenario-name default]
escenario podman
Paso a paso
molecule create --scenario-name podman
molecule converge --scenario-name podman
molecule verify --scenario-name podman
molecule destroy --scenario-name podman
o
Todo en uno
molecule test --scenario-name podman
escenario vagrant
Paso a paso
molecule create --scenario-name vagrant
molecule converge --scenario-name vagrant
molecule verify --scenario-name vagrant
molecule destroy --scenario-name vagrant
o
Todo en uno
molecule test --scenario-name vagrant
Además, si quieres probarlo usando VMs, tengo un muy buen proyecto de ansible-playground que usa Vagrant y VirtualBox, ¡pruébalo!
Licencia
Este módulo se publica bajo la Licencia Pública General de GNU Versión 3:
Información del Autor
Ansible Role for AWS Command Line Interface (awscli)
ansible-galaxy install christiangda.awscli