christiangda.awscli_configure
Ansible Rolle: christiangda.awscli
Diese Rolle erstellt die notwendigen Dateien, um die AWS Command Line Interface (awscli) zu konfigurieren.
Diese Rolle ist sehr einfach; ihre einzige Funktion besteht darin, eine in yaml
-Format definierte Variable mit dem Inhalt der .aws/config
und .aws/credentials
Dateien in das .ini
-Dateiformat zu konvertieren und diese an den gewünschten Ort zu speichern.
Die beste Möglichkeit, diese Rolle zu installieren, ist die Verwendung des Befehls ansible-galaxy install christiangda.awscli_configure
. Das Ansible Galaxy Repository ist christiangda.awscli_configure
Der Repositories-Code ist https://github.com/christiangda/ansible-role-awscli-configure
Siehe die Beispiele zur besseren Verständnis.
Anforderungen
Diese Rolle funktioniert auf RedHat, CentOS, Debian und Ubuntu-Distributionen:
- RedHat
- 6 (*)
- 7
- 8
- CentOS
- 6 (*)
- 7
- 8
- Ubuntu
- 14.* (*)
- 16.* (*)
- 18.*
- 19.*
- Debian
- jessie (8) (*)
- stretch (9)
- buster (10)
- sid (unstable)
(*) Nicht getestet, möglicherweise treten Probleme mit diesem OS auf.
Um die Kompatibilität zwischen Python und Ansible zu sehen, beziehen Sie sich auf die Projektseite Travis-CI Build-Matrix.
Rollen-Variablen
Variable | Standardwert |
---|---|
awscliconf_path | "~/." |
awscliconf_recursive_path_creation | false |
awscliconf_files_owner | "root" |
awscliconf_files_group | "root" |
awscliconf_files | "" --> Leer |
Weitere Details: Siehe die Datei defaults/main.yaml.
Abhängigkeiten
Diese Rolle hat keine Abhängigkeiten, jedoch ist es wichtig, dass Sie die AWS Command Line Interface (awscli) installieren, damit es sinnvoll ist. Meine Rolle christiangda.awscli kann Ihnen helfen, die AWS Command Line Interface (awscli) zu installieren.
Beispiel-Playbook
RedHat/CentOS, Ubuntu und Debian
Wenn Sie die AWS Command Line Interface (awscli) bereits installiert haben:
- hosts: redhat-8
gather_facts: True
roles:
- role: christiangda.awscli_configure
vars:
awscliconf_path: '/home/christian.gonzalez'
awscliconf_files_owner: 'christian.gonzalez'
awscliconf_files_group: 'christian.gonzalez'
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
Wenn Sie RedHat/CentOS 8 oder ein Debian/Ubuntu-Ziel haben und die AWS Command Line Interface (awscli) nicht installiert ist, möchten jedoch meine Rolle christiangda.awscli verwenden:
- 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
Wenn Sie RedHat/CentOS 6/7 als Ziel haben und die AWS Command Line Interface (awscli) sowie das EPEL Repository nicht installiert sind, möchten jedoch meine Rollen christiangda.epel_role, christiangda.awscli verwenden:
- hosts: redhat-7
gather_facts: True
roles:
- role: christiangda.epel_repo
- 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
Wenn Sie mehrere Betriebssysteme als Ziele haben und nur das EPEL-Repository in RedHat/CentOS 6/7 installieren möchten unter Verwendung meiner Rollen christiangda.epel_role, christiangda.awscli:
- 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
- role: christiangda.awscli_configure
vars:
awscliconf_files:
credentials:
- default:
aws_access_key_id: 'AKIAIOSFODNN7EXAMPLE'
aws_secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
- production-profile:
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-name
role_session_name: maria_garcia_role
source_profile: production-profile
aws_session_token: AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
s3:
max_concurrent_requests: 20
max_queue_size: 10000
multipart_threshold: 64MB
multipart_chunksize: 16MB
max_bandwidth: 50MB/s
use_accelerate_endpoint: true
addressing_style: path
api_versions:
ec2: '2015-03-01'
cloudfront: '2015-09-17'
tcp_keepalive: false
Entwicklung / Mitwirken
Diese Rolle wird mit Molecule getestet und wurde mit Python Virtual Environments entwickelt.
Wir verwenden zwei Haupt-Git-Branchs:
- master
- develop
Wenn Sie zu diesem Projekt beitragen möchten, gehen Sie wie folgt vor:
- Fork das Projekt
- Bereiten Sie Ihre Umgebung vor
- Beheben Sie das Problem im
develop
-Branch - Führen Sie
molecule test
aus - Erstellen Sie einen Pull-Request für den offiziellen
develop
-Branch des Projekts
Referenzen:
Bereiten Sie Ihre Umgebung vor
- 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[podman]'
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
Klonen Sie das Rollen-Repository (Von Ihrem Fork) und erstellen Sie einen symbolischen Link
git clone https://github.com/christiangda/ansible-role-awscli-configure.git
ln -s ansible-role-awscli-configure christiangda.awscli_configure
cd christiangda.awscli_configure
Führen Sie den Molecule-Test aus
Verfügbare Szenarien:
- default -->
--driver-name docker
- podman -->
--driver-name podman
- centos-8 -->
--driver-name centos-8
- centos-7 -->
--driver-name centos-7
- ubuntu-21.04 -->
--driver-name ubuntu-21.04
Standard-Szenario
Schritt für Schritt
molecule create [--scenario-name default]
molecule converge [--scenario-name default]
molecule verify [--scenario-name default]
molecule destroy [--scenario-name default]
oder
Alles auf einmal
molecule test [--scenario-name default]
Podman-Szenario
Schritt für Schritt
molecule create --scenario-name podman
molecule converge --scenario-name podman
molecule verify --scenario-name podman
molecule destroy --scenario-name podman
oder
Alles auf einmal
molecule test --scenario-name podman
Zusätzlich, wenn Sie es mithilfe von VMs testen möchten, habe ich ein sehr schönes ansible-playground Projekt, das Vagrant und VirtualBox verwendet, probieren Sie es aus!
Lizenz
Dieses Modul wird unter der GNU General Public License Version 3 veröffentlicht:
Informationen zum Autor
Ansible Role to Configure AWS Command Line Interface (awscli)
ansible-galaxy install christiangda.awscli_configure