GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie das phoenixNAP BMC Ansible-Modul

Einführung

Ansible ist eine Open-Source-Serververwaltungs- und Automatisierungssoftware, die Infrastructure as Code (IaC) ermöglicht. Dieses Tool ermöglicht eine einfache und effektive Anwendungsbereitstellung, Bereitstellung und Konfigurationsverwaltung.

Ansible Automation Hub sammelt Module von Red Hat und zertifizierten Partnern. phoenixNAP ist stolz darauf, mit dem Bare Metal Cloud-Plug-in Teil der Sammlung vertrauenswürdiger Inhalte von Ansible zu sein. Dieses von Ansible eingeführte Konzept ermöglicht es, Cloud-Anbieter als zusätzliche Bibliotheken zu installieren.

Befolgen Sie die Schritte in dieser Anleitung, um das phoenixNAP BMC Ansible-Modul zu installieren und erfahren Sie, wie Sie relevante Playbooks verwenden.

Voraussetzungen

  • Ansible auf dem Kontrollcomputer installiert
  • Python auf dem Kontrollcomputer installiert (standardmäßig verfügbar)

Vorteile der Verwendung des PNAP BMC Ansible-Moduls

Dieses IaC-Tool wurde entwickelt, damit Kunden Bare-Metal-Cloud-Server bereitstellen und andere Aufgaben mit einfachen YAML-Skripts ausführen können Playbooks genannt. Sie können jetzt die Servererstellung mit unveränderlicher Bereitstellung effizient automatisieren. Neben dem Vorteil der Automatisierung von IT-Prozessen ist ein weiterer Bonus die Möglichkeit, denselben Code erneut auszuführen, um einen Server im Falle unerwünschter Änderungen auf den ursprünglichen Zustand zurückzusetzen.

Dieses Modell hat keine Master- und Slave-Maschinen. Sie verwenden eine Maschine, um die Dateien zu pushen, d. h. ein Skript auf einem oder mehreren Remote-Hosts auszuführen. Es gibt keine Agenten auf einzelnen Knoten, die Informationen vom Hauptserver abrufen. Das Bare-Metal-Cloud-Modul erfordert kein SSH, um Playbooks auszuführen.

Indem Sie ein zertifiziertes Plugin werden Auf Red Hat Ansible Automation Hub ist der Installationsprozess des BMC-Moduls schnell und wird mit einem einzelnen Ansible-Befehl abgeschlossen . Anschließend können Sie Ansible anweisen, ein Skript auszuführen, das den YAML-Code mit der Beschreibung des Automatisierungsjobs enthält, den Sie ausführen möchten. Das Modul stellt sicher, dass das von Ihnen angegebene Endergebnis in der richtigen Reihenfolge erreicht wird.

Die Inhalte im Ansible Automation Hub werden von Red Hat und seinen Partnern unterstützt. Auf diese Weise können selbst die anspruchsvollsten Umgebungen sicher sein, dass die Module die Erwartungen erfüllen.

BMC Ansible-Modul installieren

Bevor Sie das BMC Ansible-Plug-in installieren, benötigen Sie die Python-Anfragen Paket auf Ihrer Maschine. Es ermöglicht das Senden verschiedener Arten von HTTP-Anfragen.

Um Anforderungen zu installieren , geben Sie ein:

pip install requests

Führen Sie dann den Ansible-Befehl aus, um das phoenixNAP BMC-Modul zu installieren:

ansible-galaxy collection install phoenixnap.bmc

Zeigen Sie nach Abschluss der Installation die Moduldokumentation mit diesem Befehl an:

ansible-doc phoenixnap.bmc.server

Das Ansible BMC-Plugin hängt von API-Anforderungen ab. Alle BMC-API-Anforderungen sind im phoenixNAP-Entwicklerportal dokumentiert.

Create Credential File for Authentication

Um sich erfolgreich bei unserem Autorisierungsserver zu authentifizieren, verwenden Sie den Grant-Typ „Client Credentials“.

Erstellen Sie in Ihrem Home-Verzeichnis ein Verzeichnis .pnap und eine config.yaml Datei darin.

Die Datei muss die folgenden Informationen enthalten:

clientId: myClientId

clientSecret: myClientSecret

Ersetzen Sie myClientId und myClientSecret mit Ihrer ID und Ihrem Geheimnis.

Ansible phoenixNAP BMC-Playbooks

Das Schreiben von Ansible-Playbooks erfordert keine besonderen Programmierkenntnisse und sie decken alle verfügbaren BMC-APIs ab. Diese Skripte sind in YAML geschrieben, einer einfachen Serialisierungssprache, die beim Erstellen von Konfigurationsdateien verwendet wird. Ansible überprüft die tatsächlichen Zustände der Server und vergleicht sie mit den Anweisungen im Playbook.

Wenn der Status nicht mit dem definierten Endergebnis übereinstimmt, stellt das Modul sicher, dass das Ressourcenmodell aus dem Skript befolgt wird, um das festgelegte Ziel zu erreichen.

Wenn Sie ein Playbook mehr als einmal ausführen, führt das Modul keine zusätzlichen Aufgaben aus. Sobald der tatsächliche Zustand eines BMC-Servers dem Ziel des Skripts entspricht, können Sie das Skript mehrmals ausführen, und das Modul führt keine Aufgabe aus.

So führen Sie BMC-Playbooks aus

Der Name eines Playbooks legt nahe, was das Skript tut. Beispiel:playbook_power_off.yml schaltet einen oder mehrere Server aus.

Um ein Playbook auszuführen, verwenden Sie diese Syntax:

ansible-playbook playbook_name.yml

Um einen Server zurückzusetzen, geben Sie daher Folgendes ein:

ansible-playbook playbook_reset.yml

Beispiele für BMC-Playbooks

Die YAML-Playbook-Beispiele, die wir unten bereitstellen, sind einander ähnlich. Der Unterschied ist der Zustand des Servers, den Sie erreichen möchten. Die einzige Datei, die sich etwas mehr von anderen unterscheidet, ist das Skript zum Erstellen eines Servers.

Jedes Playbook muss einen oder mehrere Hostnamen enthalten oder server_ids , sowie die client_id und client_secret . Die bevorzugte Methode besteht darin, die Werte in ~/.pnap/config.yaml einzugeben Datei statt in jedem Playbook.

Server erstellen

Der Name des Playbooks:playbook_create.yml

- name: Create new servers for account
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      location: PHX
      os: ubuntu/bionic
      type: s1.c1.medium
      state: present
      ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

Bereitstellungsserver aufheben

Der Name des Playbooks:playbook_deprovision.yml

- name: reset servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      state: absent

Server ausschalten

Der Name des Playbooks:playbook_power_off.yml

- name: power on servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      state: powered-off

Server einschalten

Der Name des Playbooks:playbook_power_on.yml

- name: power on servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      state: powered-on

Server neu starten

Der Name des Playbooks:playbook_reboot.yml

- name: reset servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      state: rebooted

Server zurücksetzen

Der Name des Playbooks:playbook_reset.yml

- name: reset servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      hostnames: [my-server-red]
      ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
      state: reset

Shutdown-Server

Der Name des Playbooks:playbook_shutdown.yml

In diesem Beispiel haben wir server_ids verwendet statt Hostnamen .

- name: shutdown servers
  hosts: localhost
  gather_facts: false
  vars_files:
    - ~/.pnap/config.yaml
  collections:
    - phoenixnap.bmc
  tasks:
  - server:
      client_id: "{{clientId}}"
      client_secret: "{{clientSecret}}"
      server_ids:
        - 5eda71ef674cf47bd2599cfa
      state: shutdown

Ubuntu
  1. So installieren Sie Ansible auf Ubuntu Server 21.04

  2. So installieren Sie Ansible auf AlmaLinux 8

  3. So installieren Sie Ansible unter Debian 11

  4. So installieren Sie Ansible unter CentOS 7

  5. So installieren Sie Ansible unter CentOS 8

So installieren Sie Tomcat unter Ubuntu 20.04 mit Ansible

So installieren Sie Ansible unter Ubuntu 20.04 LTS

So installieren Sie das PHP Opcache-Modul unter Ubuntu 20.04

So installieren Sie Ansible unter Ubuntu 20.04

So installieren Sie Ansible unter Ubuntu 16.04 (Xenial)

So installieren Sie Ansible unter Ubuntu 18.04