christiangda.awscli_configure

Ansible Rolle: christiangda.awscli

Master Branch Workflow Entwicklungs Branch Workflow Ansible Rolle

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:

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
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

Installieren
ansible-galaxy install christiangda.awscli_configure
Lizenz
gpl-3.0
Downloads
135.3k