もっと詳しく

Ansibleホストコントローラーで毎回AnsibleプレイブックとAnsibleコマンドを手動で実行することにうんざりしていませんか? Webインターフェイスを使用して、このAnsible AWXであなたの生活を楽にしてみませんか?

AWXは、Red HatがスポンサーとなっているオープンソースのWebアプリケーションであり、すべてのAnsibleタスクを実行するためのユーザーインターフェイスとAPIを提供します。 このチュートリアルでは、UbuntuボックスにAnsible AWXをインストールし、AnsibleAWXを使用して在庫を管理する方法を学習します。

今日AnsibleAWXを使用して、非常に効果的な自動化でゲームを強化しましょう!

前提条件

このチュートリアルは、ステップバイステップの手順で構成されています。 フォローしたい場合は、次のものが揃っていることを確認してください。

  • Docker –このチュートリアルでは、Ubuntu20.04.4LTSバージョンのマシンでDockerv19.03.11を使用します。
  • AnsibleコントローラーホストマシンにインストールされたPythonv3.6以降–このチュートリアルではPythonv3.8.10を使用します。
  • A GitHubアカウント GitHubで作成された1つのプライベートリポジトリと1つのパブリックリポジトリを使用して、AnsiblePlaybookの保存に使用します。

依存関係のインストールとAnsibleAWXの構成

AnsibleAWSは作成の基盤でした Ansible Tower。 Ansible AWXは、ITチームがテストに使用するのにAnsibleをより快適にします。 ラボ、開発、またはその他で POC環境

Ansible AWSはデフォルトではLinuxシステムにインストールされていないため、最初にAnsible AWSをインストールして、AnsiblePlaybookを使用してマルチコンテナーとして実行できるようにする必要があります。

1.以下の各コマンドを実行して、システムパッケージを更新し、docker-compose-pluginをインストールします。

# Update packages
sudo apt-get update
# Install Docker Compose
sudo apt-get install docker-compose-plugin

2.次に、次のコマンドを実行して、マシンにインストールされているdockercomposeバージョンを確認します。

以下の出力は、最新のDocker Composeバージョンv2.5.0がインストールされていることを示しており、DockerComposeが正しくインストールされていることを確認しています。

DockerComposeバージョンの確認
DockerComposeバージョンの確認

3.以下の各コマンドを実行して、AnsibleAWXを使用するための前提条件としてパッケージをインストールします。

# Installs NodeJS as AWS has a dependency on NodeJS.
sudo apt install nodejs npm
# Installs Python3, which runs Ansible Playbook later.
sudo apt install python3-pip git pwgen unzip
# Installs requests to allow you to send HTTP/1.1 requests easily.
sudo pip3 install requests==2.22.0 docker-compose==1.29.2
npmソフトウェアのインストール
npmソフトウェアのインストール
Pythonのインストール
Pythonのインストール
リクエストのインストール
リクエストのインストール

4.次に、次のコマンドを実行して、パブリックGitリポジトリからAWXパッケージアーカイブをダウンロード(wget)してから、パッケージを解凍します。

# Download the AWX package archive
wget https://github.com/ansible/awx/archive/17.1.0.zip
# Unzip the AWX package archive
unzip 17.1.0.zip
GitリポジトリからのAWSパッケージのダウンロード
GitリポジトリからのAWSパッケージのダウンロード

5.以下のコマンドを実行して、AWXインストールディレクトリ(awx-17.1.0 / installer /)に変更(cd)し、ランダムパスワード(pwgen)を生成します。

AWXインストールディレクトリ(awx-17.1.0 / installer /)は、マシンにインストールされているAnsibleAWXのバージョンによって異なる場合があります。

cd awx-17.1.0/installer/
pwgen -N 1 -s 30

AWXコンソールで秘密鍵として使用するため、生成されたパスワードを書き留めておきます。

ランダムパスワードの生成
ランダムパスワードの生成

6.最後に、テキストエディタで、 在庫 AWXインストーラディレクトリ内のファイル(awx-17.1.0 / installer /)。 The 在庫 ファイルには、AWXUIのログ記録中に使用されるAWXの構成が含まれています。

インベントリファイルで、admin_passwordの値をpasswordおよびsecret_keyに変更し、手順5で生成したランダムなパスワードを使用します。

インベントリファイル内のAnsibleAWXのクレデンシャルを更新する
インベントリファイル内のAnsibleAWXのクレデンシャルを更新する

AnsiblePlaybookを使用したAnsibleAWXのインストールと起動

Ansible AWXを適切に構成しました。次に、Ansibleプレイブックを使用してインストールします(install.yml)。 The install.yml Ansible Playbookには、抽出したAnsibleAWXパッケージが付属しています。 このプレイブックには、Dockerイメージを構築して複数のコンテナーを実行するコマンドを実行するためのタスクが含まれています。

1.を呼び出します ansible-プレイブック 以下のコマンドを実行して、install.ymlAnsiblePlaybookを実行します。

ansible-playbook -i inventory install.yml 

以下に、いくつかのタスクのステータスが変更されたことを示します。これは、AWXホストが適切な状態になく、コマンドを実行するように変更されたことを示しています。

それどころか、他のタスクは代わりにokステータスを示します。これは、変更が必要ないことを示します。

Ansible Playbook(install.yml)の実行
Ansible Playbookの実行(install.yml)。

2.次に、以下のdockerコマンドを実行して、使用可能なすべてのDockerコンテナーを一覧表示します。

以下の出力は、実行中のコンテナー(awx_tasks、awx_redis、awx_web、およびawx_postgres)を示しており、AWXが正しくインストールされていることを確認しています。

すべてのDockerコンテナを確認する
すべてのDockerコンテナを確認する

3.最後に、お気に入りのブラウザーを開き、Ansible AWX(https:// AWX-HOST-IP:80)。 必ず交換してください AWX-HOST-IP AnsibleホストのIPアドレスを使用します。 以下に示すように、すべてがうまくいけば、ブラウザにAnsibleAWXログインページが表示されます。

ユーザー名(admin)とパスワード(password)を入力し、[ログイン]をクリックしてAnsibleAWXダッシュボードにアクセスします。 これらのクレデンシャルは、「依存関係のインストールとAnsibleAWXの構成」セクションの最後のステップで構成したものです。

AWX HTTPS通信用の自己署名証明書を自動的にインストールします。これはブラウザでの受け入れが必要な場合があります。

AnsibleAWXダッシュボードUIへのアクセス
AnsibleAWXダッシュボードUIへのアクセス

ログイン後、ブラウザは以下に示すようにAWXダッシュボードにリダイレクトします。

AWXダッシュボードの表示
AWXダッシュボードの表示

在庫の作成と管理

Ansible AWXダッシュボードにアクセスできるようになったので、タスクの自動化に自由に取り組むことができます。 このチュートリアルでは、AnsibleAWXダッシュボード内で複数のAnsibleコンポーネントを管理します。 ただし、最初に、作成して管理する必要があります 在庫

1. AWXダッシュボードで、[インベントリ]をクリックして、AnsibleAWXに保存されているインベントリリストを開きます。 デフォルトでは、以下に示すように、デモインベントリが存在します。

デモインベントリを無視し、[追加]ドロップダウンボタンをクリックして、新しいインベントリを作成します。

新しいインベントリの作成
新しいインベントリの作成

2.次に、[新しいインベントリの作成]ページで以下のパラメーターを指定して、AnsibleAWXダッシュボードで最初のインベントリを構成します。

  • 名前ATAラーニング (名前は好きなように指定できます)。
  • 説明 –在庫について説明します。これはオプションですが、特に在庫を特定するのに役立ちます。
  • 組織 –デフォルトオプションを選択します。 AWXはデフォルトの組織を作成しますが、独自の組織を作成することもできます。

上記の詳細をすべて指定したら、以下に示すように保存ボタンをクリックします。

AnsibleAWXダッシュボードでのインベントリの作成
AnsibleAWXダッシュボードでのインベントリの作成

3.最後に、以下に示すように、[インベントリ]タブ(左側のパネル)をクリックして、新しく作成されたインベントリ(ATAラーニング)が存在することを確認します。

AnsibleAWXダッシュボードでのインベントリの確認
AnsibleAWXダッシュボードでのインベントリの確認

Ansibleジョブの作成と実行

インベントリは正常に構成されましたが、ジョブで呼び出さない限り、現時点では役に立ちません。 ジョブは、AWXがホストのインベントリに対してAnsibleプレイブックを起動するインスタンスです。 そしてもちろん、ジョブを呼び出す前に、まずジョブを作成する必要があります。

Ansibleを作成してAnsibleジョブを実行するには:

1. GitHubリポジトリ内にYMLファイルを作成し、以下のプレイブックをコピーして貼り付けます。 YMLファイルには好きな名前を付けることができますが、このチュートリアルでは、 ata.yml

---
  - name: "Playing with Ansible."
# Ansible Playbook will run on the Localhost where AWX is installed
    hosts: localhost
    connection: local
    tasks:
# Below task will execute the list of directories and files present
    - name: "just execute a ls -lrt command"
      shell: "ls -lrt"
      register: "output"
# The Output of the above task will be displayed on the Screen
    - debug: var=output.stdout_lines
GitリポジトリでのYMLファイルの作成
GitリポジトリでのYMLファイルの作成

2. Ansible AWXダッシュボードにジャンプし、左側のパネルの[プロジェクト]をクリックして、使用可能なプロジェクトのリストにアクセスします。 ジョブを作成する前に、プロジェクトが必要です。

デモプロジェクトを無視し、[追加]ボタンをクリックして新しいプロジェクトを作成します。

新規プロジェクトの追加の初期化
新規プロジェクトの追加の初期化

3.新しいプロジェクトの詳細を次のように入力し、[保存]をクリックして新しいプロジェクトを保存します。

  • 名前 –プロジェクト名は任意の名前にすることができますが、このチュートリアルではプロジェクトの名前を次のように設定します。 私のプロジェクト
  • 説明 –インベントリと同様に、説明の追加はオプションですが、プロジェクトを相互に識別するのに役立ちます。
  • 組織 –在庫と同様に、選択するだけです デフォルト 組織のために。
  • ソース管理クレデンシャルタイプ – 選ぶ ギット SCMとして。
  • ソース制御URL– ソースコードのGitHubURLを指定します。
新しいプロジェクトの作成
新しいプロジェクトの作成

4.プロジェクトを作成したら、以下に示すように、左側のサイドバーの[テンプレート]をクリックして、使用可能なすべてのテンプレートにアクセスします。

[テンプレート]ページで、[追加]ドロップダウンボタンをクリックし、[ジョブテンプレートの追加]オプションを選択してテンプレートを作成します。

新しいジョブテンプレートの作成
新しいジョブテンプレートの作成

5.次に、以下の詳細を次のように指定し、下部にある[保存]をクリックして、新しいジョブテンプレートを保存します。

  • 名前 –ジョブテンプレートの名前を好きなように設定しますが、このチュートリアルでは、ジョブテンプレートの名前を次のように設定します。 私の仕事
  • 職種 –ジョブが実行するアクションを設定します(走る)。
  • 計画 –ステップ3で作成したプロジェクトを選択します(私のプロジェクト)。
  • 在庫 –「インベントリの作成と管理」セクションのステップ2で作成したインベントリを選択します(ATAラーニング)。
  • プレイブック –「Ansibleジョブの作成と実行」セクション(ata.yml)のステップ1で作成したプレイブックを選択します。
ジョブテンプレートの詳細の指定
ジョブテンプレートの詳細の指定

6.最後に、[テンプレート]ページで、新しく作成したジョブを次のように起動します。

  • ジョブをクリックします(私の仕事)ジョブの情報ページにアクセスします。
  • に移動します 詳細 タブ。ジョブの詳細が表示されます。
  • クリック 発売 ページの下部にあるジョブを起動します。
新しく作成されたジョブの起動
新しく作成されたジョブの起動

以下に示すように、ジョブはローカルホストで正常に実行され、プレイブックで指定されたディレクトリ内のすべてのファイルが一覧表示されました(ata.yml)。

ジョブテンプレートの実行
ジョブテンプレートの実行

結論

このチュートリアルでは、Ansible AWXオープンソースツールを利用して、単一のUIダッシュボードでAnsibleプレイブック、インベントリ、およびプレイブックを管理しました。 特定のディレクトリにファイルを一覧表示するなど、Ansibleジョブの実行に触れました。

Ansible AWXソフトウェアについて十分な知識が得られたので、Ansible AWXを使用して将来のAnsibleプレイブックをすべて実行してもよろしいですか? おそらく、cronジョブを追加してタスクを自動化したいですか?

The post AnsibleAWXによる非常に効果的な自動化 appeared first on Gamingsym Japan.