christiangda.awscli

Rol de Ansible: christiangda.awscli

Flujo de trabajo de la rama principal Flujo de trabajo de la rama de desarrollo Rol de Ansible

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:

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

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

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

Instalar
ansible-galaxy install christiangda.awscli
Licencia
gpl-3.0
Descargas
53.8k