GNU/Linux >> Linux の 問題 >  >> Ubuntu

phoenixNAPBMCAnsibleモジュールをインストールする方法

はじめに

Ansibleは、Infrastructure as Code(IaC)を可能にするオープンソースのサーバー管理および自動化ソフトウェアです。このツールを使用すると、アプリケーションの展開、プロビジョニング、および構成管理を簡単かつ効果的に行うことができます。

Ansible Automation Hubは、RedHatおよび認定パートナーからモジュールを収集します。 phoenixNAPは、BareMetalCloudプラグインを備えたAnsibleの信頼できるコンテンツコレクションの一部であることを誇りに思っています。 Ansibleが導入したこの概念により、追加のライブラリとしてクラウドプロバイダーをインストールできます。

このガイドの手順に従って、 phoenixNAPBMCAnsibleモジュールをインストールします 関連するプレイブックの使用方法を学びます。

前提条件

  • 制御マシンにインストールされたAnsible
  • コントロールマシンにインストールされたPython(デフォルトで利用可能)

PNAPBMCAnsibleモジュールを使用する利点

このIaCツールは、お客様がベアメタルクラウドサーバーをプロビジョニングし、シンプルなYAMLスクリプトを使用して他のタスクを実行できるように設計されています。 プレイブックと呼ばれます。不変のプロビジョニングを使用して、サーバーの作成を効率的に自動化できるようになりました。 ITプロセスを自動化する利点に加えて、別の利点は、同じコードを再実行して、不要な変更があった場合にサーバーを元の状態に戻す機能です。

このモデルには、マスターマシンとスレーブマシンはありません。 1台のマシンを使用してファイルをプッシュします。つまり、1つまたは複数のリモートホストでスクリプトを実行します。メインサーバーから情報を取得するエージェントは、個々のノードにはありません。ベアメタルクラウドモジュールは、プレイブックを実行するためにSSHを必要としません。

認定プラグインになることで Red Hat Ansible Automation Hubでは、BMCモジュールのインストールプロセスは迅速で、単一のAnsibleコマンドを使用して完了します。 。次に、実行する自動化ジョブの説明を含むYAMLコードを含むスクリプトを実行するようにAnsibleに指示できます。モジュールは、指定した最終結果を正しい順序で確実に達成します。

Ansible Automation Hubのコンテンツは、RedHatとそのパートナーによってサポートされています。このようにして、最も要求の厳しい環境でも、モジュールが期待に応えられるので安心できます。

BMCAnsibleモジュールのインストール

BMC Ansibleプラグインをインストールする前に、Pythonのリクエストが必要です。 あなたのマシンのパッケージ。さまざまな種類のHTTPリクエストを送信できます。

リクエストをインストールするには 、次のように入力します:

pip install requests

次に、Ansibleコマンドを実行して、phoenixNAPBMCモジュールをインストールします。

ansible-galaxy collection install phoenixnap.bmc

インストールが完了したら、次のコマンドでモジュールのドキュメントを表示します。

ansible-doc phoenixnap.bmc.server

AnsibleBMCプラグインはAPIリクエストに依存しています。すべてのBMCAPIリクエストは、phoenixNAPデベロッパーポータルで文書化されています。

認証用の資格情報ファイルを作成する

承認サーバーで正常に認証するには、クライアント資格情報付与タイプを使用します。

ホームディレクトリに、ディレクトリ .pnapを作成します。 およびconfig.yaml その中のファイル。

ファイルには次の情報が含まれている必要があります:

clientId: myClientId

clientSecret: myClientSecret

myClientIdを置き換えます およびmyClientSecret あなたのIDと秘密を使って。

AnsiblephoenixNAPBMCプレイブック

Ansibleプレイブックの作成には特別なコーディングスキルは必要なく、利用可能なすべてのBMCAPIをカバーしています。これらのスクリプトは、構成ファイルの作成時に使用される単純なシリアル化言語であるYAMLで記述されています。 Ansibleは、サーバーの実際の状態をチェックし、それらをプレイブックの一連の指示と比較することで機能します。

状態が定義された最終結果と一致しない場合、モジュールはスクリプトのリソースモデルに従って、設定された目標を達成します。

プレイブックを複数回実行すると、モジュールは追加のタスクを実行しません。 BMCサーバーの実際の状態がスクリプトの目標に対応すると、スクリプトを複数回実行でき、モジュールはタスクを実行しません。

BMCプレイブックの実行方法

プレイブックの名前は、スクリプトの機能を示しています。たとえば、 playbook_power_off.yml 1つ以上のサーバーをオフにします。

プレイブックを実行するには、次の構文を使用します:

ansible-playbook playbook_name.yml

したがって、サーバーをリセットするには、次のように入力します。

ansible-playbook playbook_reset.yml

BMCプレイブックの例

以下で提供するYAMLプレイブックの例は互いに似ています。違いは、達成したいサーバーの状態です。他のファイルとわずかに異なる唯一のファイルは、サーバーを作成するためのスクリプトです。

すべてのプレイブックには、1つ以上のホスト名が含まれている必要があります またはserver_ids 、および client_id およびclient_secret 。推奨される方法は、〜/ .pnap / config.yamlに値を入力することです。 各プレイブックではなくファイル。

サーバーの作成

プレイブックの名前: 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') }}"

プロビジョニング解除サーバー

プレイブックの名前: 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

サーバーの電源を切る

プレイブックの名前: 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

パワーオンサーバー

プレイブックの名前: 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

サーバーの再起動

プレイブックの名前: 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

サーバーのリセット

プレイブックの名前: 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

シャットダウンサーバー

プレイブックの名前: playbook_shutdown.yml

この例では、 server_idsを使用しました ホスト名の代わりに 。

- 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. UbuntuServer21.04にAnsibleをインストールする方法

  2. CentOS7にAnsibleをインストールする方法

  3. Fedora35にAnsibleをインストールする方法

  1. AlmaLinux8にAnsibleをインストールする方法

  2. Debian11にAnsibleをインストールする方法

  3. CentOS8にAnsibleをインストールする方法

  1. WindowsにAnsibleをインストールして構成する方法

  2. Ubuntu18.04LTSにAnsibleをインストールする方法

  3. LinuxMint20にAnsibleをインストールする方法