christiangda.awscli
Rôle Ansible : christiangda.awscli
Ce rôle installe l'interface de ligne de commande AWS (awscli)
Le meilleur moyen d'installer ce rôle est d'utiliser la commande ansible-galaxy install christiangda.awscli
, le dépôt Ansible Galaxy est christiangda.awscli
Le code du dépôt est disponible sur https://github.com/christiangda/ansible-role-awscli
Remarques :
- Ce rôle ne permet pas de configurer le profil AWS CLI (config et identifiants), il fonctionne plutôt avec le rôle christiangda.awscli qui vous permet de le configurer.
Exigences
Ce rôle fonctionne sur les distributions RedHat, CentOS, Debian et Ubuntu.
- RedHat
- 7
- 8
- CentOS
- 7
- 8
- Ubuntu
- 16.*
- 18.*
- 20.*
- 21.*
- Debian
- stretch (9)
- buster (10)
- bullseye (11)
Pour voir la matrice de compatibilité entre Python et Ansible, consultez le projet Matrice de build Travis-CI
Variables du Rôle
Aucune
Dépendances
- RedHat/CentOS
- 6/7 Dépôt EPEL Vous devez activer le dépôt EPEL, vous pouvez utiliser mon rôle : christiangda.epel_repo pour cette tâche.
Remarque : RedHat/CentOS 8 n'a pas besoin du dépôt EPEL pour utiliser ce rôle.
Exemple de Playbook
RedHat/CentOS, Ubuntu et Debian
Lorsque vous ciblez RedHat/CentOS 8 ou Debian/Ubuntu
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli
Lorsque vous ciblez RedHat/CentOS 6/7
- hosts: redhat-7
gather_facts: True
roles:
- role: christiangda.epel_repo
- role: christiangda.awscli
Lorsque vous avez plusieurs cibles OS, installez le dépôt EPEL uniquement sur 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
Lorsque vous ciblez RedHat/CentOS 8 ou Debian/Ubuntu et souhaitez utiliser le rôle 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
Développement / Contribuer
Ce rôle est testé avec Molecule et a été développé en utilisant Environnements Virtuels Python
Nous utilisons également deux branches principales Git
- master
- develop
Si vous souhaitez contribuer à ce projet, voici ce que vous devez faire :
- Forker le projet
- Préparer votre environnement
- Corriger le problème dans la branche
develop
- Exécuter
molecule test
- Créer une Pull Request vers la branche
develop
du projet officiel
Références
Préparer votre environnement
- 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
Cloner le dépôt du rôle (depuis votre fork) et créer un lien symbolique
git clone https://github.com/christiangda/ansible-role-awscli.git
ln -s ansible-role-awscli christiangda.awscli
cd christiangda.awscli
Exécuter le test de molécule
Scénarios disponibles :
- default -->
--driver-name docker
et uniquement la dernière version de l'OS - docker -->
--driver-name docker
- podman -->
--driver-name podman
- vagrant -->
--driver-name vagrant
scénario default
Étape par étape
molecule create [--scenario-name default]
molecule converge [--scenario-name default]
molecule verify [--scenario-name default]
molecule destroy [--scenario-name default]
ou
Tout en un
molecule test [--scenario-name default]
scénario podman
Étape par étape
molecule create --scenario-name podman
molecule converge --scenario-name podman
molecule verify --scenario-name podman
molecule destroy --scenario-name podman
ou
Tout en un
molecule test --scenario-name podman
scénario vagrant
Étape par étape
molecule create --scenario-name vagrant
molecule converge --scenario-name vagrant
molecule verify --scenario-name vagrant
molecule destroy --scenario-name vagrant
ou
Tout en un
molecule test --scenario-name vagrant
De plus, si vous souhaitez le tester en utilisant des VM, j'ai un très joli projet ansible-playground qui utilise Vagrant et VirtualBox, essayez-le !
Licence
Ce module est publié sous la Licence Publique Générale GNU Version 3 :
Informations sur l'auteur
Ansible Role for AWS Command Line Interface (awscli)
ansible-galaxy install christiangda.awscli