Ansible für AWS - Cloud-Verwaltung leicht gemacht

In diesem Ansible for AWS-Blog wird die Oberhand über die Verwendung von Ansibe mit AWS gelegt und die Automatisierung der Erstellung und Bereitstellung einer EC2-Instanz demonstriert.

Unternehmen haben viel Zeit und Geld in die Entwicklung und Installation von Software investiert, um ihre Abläufe zu verbessern. Die Einführung in das Cloud-Computing bot ihrem Unternehmen den Zugang zu Software im Internet als Service, der sich als effizienter und sicherer erwies. Die Integration eines IT-Automatisierungstools wie Ansible, mit dem Sie Ihre Cloud-Infrastruktur wie AWS einfach bereitstellen und verwalten können, ist wie ein Jackpot. Und darüber werden wir in diesem Ansible for AWS-Blog sprechen.

Tagebuch:



Wenn Sie DevOps beherrschen möchten, ' Natürlich wäre Ihre Wahl.

Warum migrieren Unternehmen in die Cloud?

Wie bereits erwähnt, können Unternehmen mit Could Computing über das Internet auf Server wie Software zugreifen. Cloud Computing ist wie das Anschließen an ein zentrales Stromnetz, anstatt eigenen Strom zu erzeugen. Die Cloud ist zur neuen Normalität geworden, was viel Zeit und Geld spart. Schauen wir uns einige Vorteile an, warum Unternehmen in die Cloud migrieren.

1. Flexibilität:

Das Geschäftswachstum ist niemals statisch. Cloud-basierte Services eignen sich für wachsende und schwankende Geschäftsanforderungen. Eine Funktion zum Skalieren und Verkleinern Ihrer Bereitstellung basierend auf den Anforderungen macht sie sehr flexibel.

2. Notfallwiederherstellung:

Jedes Unternehmen sollte in Disaster Recovery investiert haben. Jedes Glücksunternehmen investiert am Ende eine Menge in Disaster Recovery. Startups und Low-Budget-Unternehmen verfügen nicht über das Geld und die erforderlichen Fähigkeiten, um ein ordnungsgemäßes Merkmal für die Wiederherstellung nach einem Katastrophenfall zu erreichen. Cloud bietet Disaster Recovery-Lösungen für Kunden, um robuste und kostengünstige Pläne zu entwickeln.

3. Automatische Software-Updates:

Wie Sie bereits wissen, ist die Cloud der vom Internet bereitgestellte Dienst, und daher sind alle Server außerhalb Ihrer Reichweite oder eher nicht Ihre Kopfschmerzen. Die Lieferanten kümmern sich um sie, einschließlich der Aktualisierung bei Bedarf und der Durchführung regelmäßiger Sicherheitsüberprüfungen. Dies spart wiederum viel Zeit und Geld.

4. Reduzierte Kosten:

Die Einrichtung eines Rechenzentrums von Grund auf kann teuer werden. Das Ausführen und Warten summiert sich zu den Kosten. Sie brauchen die richtige Technologie, die richtige Hardware, die richtigen Mitarbeiter mit den richtigen Kenntnissen und Erfahrungen, was für mich einfach nach viel Arbeit klingt. Auch nicht sehr vielversprechend, es gibt eine Million Möglichkeiten, wie dies schief gehen könnte. Durch die Migration in die Cloud erhalten Sie diesen Pluspunkt.

5. Skalierbarkeit:

Die traditionelle Art der Planung für unerwartetes Wachstum besteht darin, zusätzliche Server, Speicher und Lizenzen zu erwerben und zu behalten. Es kann Jahre dauern, bis Sie sie tatsächlich verwenden. Mit Cloud-Plattformen können Sie diese Ressourcen bei Bedarf nach Bedarf skalieren. Diese dynamische Skalierung eignet sich perfekt für unvorhersehbares Wachstum.

6. Datensicherheit:

In den meisten Fällen ist es besser, Ihre Daten in der Cloud zu speichern, als sie auf einem physischen Gerät wie Laptops oder Festplatten zu speichern. Es besteht eine hohe Wahrscheinlichkeit, dass diese physischen Geräte gestohlen oder zerstört werden. Mit Cloud können Sie die Daten entweder remote entfernen oder auf einen anderen Server übertragen, um sicherzustellen, dass die Daten intakt und sicher bleiben.

7. Verstärkte Zusammenarbeit:

Durch die Verwendung von Cloud-Plattformen kann das Team jederzeit und überall auf Dokumente zugreifen, diese bearbeiten und freigeben. Sie können zusammenarbeiten und so die Effizienz steigern. Dies bietet auch Echtzeit- und transparente Updates.

Ansible Features

Ansible verfügt über einige einzigartige Funktionen. Wenn solche Funktionen mit Amazon Web Services zusammenarbeiten, hinterlässt dies Spuren. Schauen wir uns diese unglaublichen Funktionen an:

  1. Ansible basiert im Gegensatz zu Chef und Puppet auf einer agentenlosen Architektur
  2. Ansible greift über SSH auf seinen Host zu, wodurch sich die Kommunikation zwischen Servern und Hosts wie ein Kinderspiel anfühlt
  3. Es ist keine benutzerdefinierte Sicherheitsinfrastruktur erforderlich
  4. Das Konfigurieren von Playbooks und Modulen ist sehr einfach, da es dem YAML-Format folgt
  5. Hat eine breite Palette von Modulen für seine Kunden
  6. Ermöglicht vollständige Konfigurationsverwaltung, Orchestrierung und Bereitstellung
  7. Ansible Vault schützt die Geheimnisse

Warum Ansible für AWS verwenden?

Nachdem wir uns nun mit den Vorteilen einer Cloud-Plattform wie AWS und den einzigartigen Funktionen von Ansible befasst haben, werfen wir einen Blick auf die Magie, die durch die Integration dieser beiden Legenden entsteht.

1. Cloud als Gruppe von Diensten

Cloud ist nicht nur eine Gruppe von Servern im Rechenzentrum eines anderen, sondern viel mehr. Sie werden feststellen, dass Sie Ihre Dienste erst einmal bereitgestellt haben. Es stehen viele Dienste zur Verfügung, mit denen Sie Ihre Anwendungen schnell bereitstellen und skalieren können. Mit Ansible Automation können Sie Ihre AWS-Umgebung wie eine Gruppe von Diensten verwalten, anstatt sie als Gruppe von Servern zu verwenden.

2. Ansible Module, die AWS unterstützen

Ansible wird zum Definieren, Bereitstellen und Verwalten einer Vielzahl von Diensten verwendet. Die kompliziertesten AWS-Umgebungen können sehr einfach mithilfe eines Playbooks bereitgestellt werden. Die beste Funktion ist, dass Sie eine Server-Host-Verbindung erstellen und dann das Playbook auf nur einem System ausführen und mehrere andere Systeme mit einer Option bereitstellen, die je nach Anforderung vergrößert und verkleinert werden kann.

Ansible verfügt über Hunderte von Modulen, die AWS unterstützen. Einige davon umfassen:

  • Autoscaling-Gruppen
  • CloudFormation
  • CloudTrail
  • CloudWatch
  • DynamoDB
  • ElastiCache
  • Elastic Cloud Compute (EC2)
  • Identity Access Manager (IAM)
  • Lambda
  • Relational Database Service (RDS)
  • Route53
  • Sicherheitsgruppen
  • Einfacher Speicherdienst (S3)
  • Virtual Private Cloud (VPC)
  • Und viele mehr

3. Dynamisches Inventar

In einer Entwicklungsumgebung werden Hosts mit unterschiedlichen Geschäftsanforderungen ständig hoch- und heruntergefahren. In einem solchen Fall ist die Verwendung von statischem Inventar möglicherweise nicht ausreichend. In solchen Situationen muss Dynamic Inventory verwendet werden. Auf diese Weise können Sie Hosts basierend auf Gruppen zuordnen, die von Inventarskripten bereitgestellt werden, im Gegensatz zu normalem Inventar, bei dem Sie gezwungen sind, Hosts manuell zuzuordnen, was sehr mühsam ist.

4. Sichere Automatisierung

Angenommen, Sie haben ein Team von 5 Personen und jeder von ihnen hat zwei Untergebene unter sich, die nicht vollständig qualifiziert sind. Sie möchten ihnen keinen vollständigen Zugriff auf den gesamten Bereitstellungsprozess gewähren. Dann erkennen Sie, dass die Autorisierung eingeschränkt werden muss.

Ansible Tower bietet diese Funktion, um Berechtigungen einzuschränken. Sie haben also im Grunde genommen ausgewählt, wer was tun kann, was das Moderieren erleichtert.Außerdem verschlüsselt Ansible Tower Anmeldeinformationen und andere vertrauliche Daten, und Sie gewähren den Untergebenen nur Zugriff auf relevante Ressourcen, während Sie deren Zugriff auf irrelevante beschränken.

Demo: Automatisieren Sie die Bereitstellung einer EC2-Instanz mithilfe von Ansible

In diesem Demo-Abschnitt werde ich zeigen, wie Ansible AWS unterstützt, indem gezeigt wird, wie das Starten und Bereitstellen einer EC2-Instanz automatisiert wird. Lass uns anfangen.

Schritt 1 ::

Installieren Sie Ansible auf Ihrem Serverknoten und stellen Sie eine SSH-Verbindung zwischen Ihrem Server und den Clientknoten in AWS her. In diesem Fall habe ich zwei EC2-Instanzen erstellt, einen Server, auf dem Ansible installiert ist, und den anderen den Client.

Schritt 2:

Stellen Sie nun sicher, dass Sie alle Anforderungen installiert haben. Laut Dokumentation sind dies die folgenden Anforderungen:

  • Python> = 2.6
  • Abstimmung

Installieren Sie Python mit dem folgenden Befehl:

$ sudo apt Python installieren

Installieren Sie boto mit dem folgenden Befehl:

$ sudo apt installiert Python-Pip
$ pip install boto

Boto ist eine Python-Oberfläche für die Verwendung von Amazon-Webdiensten. Sie müssen es mit dem folgenden Befehl importieren:

$ python
Schaltfläche $ import
$ exit ()

Abstimmung - Ansible For AWS - Edureka

Schritt 3:

Sie müssen Ihr AWS konfigurieren. Verwenden Sie dazu den folgenden Befehl:

$ aws konfigurieren

wie man verschachtelte Tabellen in HTML macht

Fügen Sie außerdem Ihre AWS-Zugriffsschlüssel-ID, Ihren geheimen Schlüssel und Ihre Standardregion hinzu (optional).

Schritt 4:

Schreiben Sie ein Playbook, um eine EC2-Instanz zu starten und bereitzustellen.

$ sudo vi /etc/ansible/launch.yml

--- - Name: Erstellen einer ec2-Instanz Hosts: Web Gather_Facts: Falsche Variablen: Region: US-Ost-1 Instanztyp: t2.micro Ami: Ami-05ea7729e394412c8 Schlüsselpaar: Priyajdm Aufgaben: - Name: Erstellen einer Ec2-Instanz Ec2: Aws_access_key : '********************' aws_secret_key: '**************************** **************** 'Schlüsselname:' {{Schlüsselpaar}} 'Gruppe: Startassistent-26 Instanztyp:' {{Instanztyp}} 'Bild:' {{ami}} 'wait: true region:' {{region}} 'count: 1 vpc_subnet_id: subnet-02f498e16fd56c277 assign_public_ip: yes register: ec2

Es ist empfehlenswert zu wissen, was der Code tut, bevor er tatsächlich ausgeführt wird. Lassen Sie mich dieses Spielbuch zum besseren Verständnis erklären.

Name: Es kann buchstäblich alles sein. Es empfiehlt sich, einen Namen beizubehalten, der eine grundlegende Beschreibung der von ihm ausgeführten Aufgabe enthält.

Gastgeber: Erwähnt den Namen der Hostliste, für die das Playbook ausgeführt werden muss. In meinem Fall ist es Netz .

collect_facts: Dieser Parameter weist Ansible an, alle relevanten Fakten, Variablen und anderen Daten zur späteren Bezugnahme zu sammeln. In unserem Fall haben wir den Wert auf 'false' gesetzt, da wir keine Fakten sammeln können (IP-Adresse, Hostname usw.).

deren: In diesem Abschnitt werden alle Variablen definiert und initialisiert, die in diesem Playbook verwendet werden. Wir haben hier vier Variablen:

  • Region Definiert die Region, in der die EC2-Instanz gestartet werden muss
  • Instanztyp definiert den Typ der Instanz, die wir aufrufen möchten. In unserem Fall verwenden wir t2.micro
  • welche definiert den AMI der Instanz, die wir aufrufen möchten

  • Schlüsselpaar definiert das Schlüsselpaar, mit dem die Instanz aufgerufen wird

ec2: Dies ist ein von Ansible bereitgestelltes Modul zum Starten oder Beenden einer EC2-Instanz.

Dieses Modul verfügt über bestimmte Parameter, mit denen wir andere Funktionen der EC2-Instanz angeben, die wir starten möchten.

  • Wir beginnen mit der Erwähnung der AWS-Zugriffsschlüssel-ID und des geheimen Schlüssels unter Verwendung der Parameter aws_access_key und aws-secret_key .
  • Schlüsselname: Übergeben Sie die Variable, die das hier verwendete Schlüsselpaar definiert
  • Gruppe: Geben Sie den Namen der Sicherheitsgruppe an. Dies definiert die Sicherheitsregeln der EC2-Instanz, die wir aufrufen möchten
  • Instanztyp: Übergeben Sie die Variable, die den hier verwendeten Instanztyp definiert
  • Bild: Übergeben Sie die Variable, die den AMI des Bildes definiert, das wir starten möchten
  • warten: Dies hat einen booleschen Wert von entweder wahr oder falsch. Wenn true, wird gewartet, bis die Instanz den gewünschten Status erreicht hat, bevor sie zurückkehrt
  • Region: Übergeben Sie die Variable, die den Bereich definiert, in dem eine EC2-Instanz erstellt werden muss.
  • Anzahl: Dieser Parameter gibt die Anzahl der Instanzen an, die erstellt werden müssen. In diesem Fall habe ich nur einen erwähnt, dies hängt jedoch von Ihren Anforderungen ab.
  • vpc_subnet_id: Übergeben Sie die Subnetz-ID, in der Sie die Instanz erstellen möchten
  • assign_public_ip: Dieser Parameter hat einen booleschen Wert. Wenn dies wie in unserem Fall zutrifft, wird der Instanz eine öffentliche IP zugewiesen, wenn sie in VPC bereitgestellt wird.

Schritt 5:

Nachdem Sie alle Zeilen im Playbook verstanden haben, können Sie sie ausführen. Verwenden Sie den folgenden Befehl:

$ ansible-playbook /etc/ansible/launch.yml


Sobald Sie das Playbook ausgeführt haben, wird eine Instanz erstellt.


Und TADA! Sie haben die Bereitstellung einer EC2-Instanz erfolgreich automatisiert. Auf die gleiche Weise können Sie auch ein Playbook schreiben, um die EC2-Instanz zu stoppen.

Dies bringt uns zum Ende des Ansible For AWS-Blogs. Wenn Sie diesen Artikel hilfreich finden, lesen Sie die ' angeboten von Edureka. Es deckt alle Tools ab, die die IT-Branche effizient gemacht haben.