AWXは、Ansibleのユーザーインターフェイス、REST API、およびタスクエンジンを提供するオープンソースのWebアプリケーションです。これは、AnsibleTowerのオープンソースバージョンです。 AWXを使用すると、Ansibleのプレイブック、インベントリを管理し、Webインターフェイスを使用して実行するジョブをスケジュールできます。
このチュートリアルでは、AnsibleAWXの基本的な使用法を示します。そのため、AnsibleAWXが既にインストールされているサーバーが必要です。セットアップのクレデンシャル、インベントリ、セットアップと実行のジョブテンプレートなど、知っておく必要のあるAnsible AWXの基本的な構成について説明します。Ansibleをまだインストールしていない場合は、次のチュートリアルをご覧ください:https://www.howtoforge .com /how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/。
前提条件
- 2台または3台のサーバー
- 10.5.5.20 ansible-awx
- 10.5.5.21 lemp
- Ansibleに関する基本的な理解
- root権限
私たちが行うこと:
- 環境のセットアップと構成
- クレデンシャルの設定
- 在庫の設定
- プロジェクトの設定
- ジョブテンプレートの設定
- ジョブの実行
このチュートリアルでは、AnsibleAWXダッシュボードを考慮した基本的なLEMPインストール用のAnsibleプレイブックをデプロイして実行します。
awx自体とターゲットマシン用に2つのサーバーがあります。
10.5.5.20 ansible-awx
10.5.5.21 lemp
次に、「hakase」というユーザーとして、キーベースのSSH認証を使用してPlaybookをデプロイします。したがって、ターゲットマシンの「lemp」でユーザーとキーベースの認証をすでに設定していることを確認してください。
' ansible-awxから次のコマンドを使用してテストします 'サーバー。
su - hakase
ssh [email protected]
パスワードなしでログインしていることを確認してください。
ここで、「hakase」ユーザーは、タスクを実行するためにrootをパスワードなしで使用する必要があります。
ターゲットマシン上で'lemp '、以下のようにsudoコマンドを実行します。
su - hakase
sudo su
パスワードなしでroot権限を入力したことを確認してください。
次に、Ansibleによって管理されているすべてのターゲットマシンにPythonパッケージをインストールする必要があります。
sudo apt install python -y
まず、AnsibleAWXクレデンシャルを構成する必要があります。これは、管理対象サーバーに対してジョブを起動および実行するときの認証、インベントリソースとの同期、およびプロジェクトのインポートに使用されます。
デフォルトでは、Ansible AWXは、SSH認証によるVMマシン、Amazon Web Services、Google Compute Engine、OpenStack、Vaultパスワード、ソースコントロールなど、多くのクレデンシャルをサポートしています。
クレデンシャルを設定するには、[クレデンシャル]をクリックします 左側の'メニューをクリックし、'+'をクリックします 右側のボタン。
次に、資格情報' NAMEを入力します 'および'説明 '、次に' CREDENTIAL TYPEを指定します 'から'マシン '。
簡単に言うと、「マシン」クレデンシャルを使用すると、SSH認証を使用してサーバーを管理できます。パスワードとキーベースの認証の両方をサポートします。
このガイドでは、キーベースの認証を使用します。したがって、ユーザー名を入力して、そのユーザーの秘密鍵を貼り付けます。
次に、[保存]をクリックします 'ボタン。
その結果、新しいAnsibleAWXクレデンシャルタイプ「Machine」が作成されました。
インベントリは、AnsibleAWXによって管理されるホストサーバーのグループです。インベントリを使用すると、複数のホストサーバーを含むグループを作成できます。また、さまざまな環境でさまざまなサーバーを管理しやすくなります。
サーバーを管理およびプロビジョニングするには、新しいインベントリグループを作成してから、そのインベントリグループにサーバーホストを追加する必要があります。
新しいインベントリを追加するには、[インベントリ]をクリックします 左側の'メニューをクリックし、'+'をクリックします ボタンをクリックして、[在庫]を選択します。
'名前を入力します 'および'説明 インベントリの「」をクリックし、「保存」をクリックします 'ボタン。
次に、[ホスト]をクリックします 'タブをクリックし、'+'をクリックします ボタンをクリックして新しいホストを追加します。
'ホスト名を入力します '、'説明 '、および'変数 'ターゲットマシンのIPアドレス'ansible_host:10.5.5.21'の追加構成。
次に、[保存]をクリックします 'ボタン。
次に、pingコマンドを使用してホストを確認し、ホストの構成を確認する必要があります。
'ホストに戻る []タブで、ホストの名前サーバーにチェックマークを付け、[コマンドの実行]をクリックします。 'ボタン。
次に、「モジュール」を選択します 'と呼ばれる'ping '、' MACHINE CREDENTIAL内の検索ボタンをクリックします 'および'SELECT '自分で、'起動をクリックします 'ボタン。
そして、新しいページにリダイレクトされ、以下が結果です。
新しいインベントリが作成され、ターゲットマシンサーバーが追加されました。
プロジェクトは、AWXではAnsiblePlaybookとして表されます。ローカルプロジェクトディレクトリを介して、またはGit、Subversion、Mercurial、RedHatInsightsなどのSCMシステムを使用して管理できるAnsiblePlaybookのコレクション。
新しいプロジェクトを作成するには、[プロジェクト]をクリックします 左側の'メニューをクリックし、'+'をクリックします ボタン。
'名前を入力します 'プロジェクトの'と'説明 '、次に'SCMタイプを選択します 'から'Git 'そしてプレイブックリポジトリを貼り付けます。
次に、[保存]をクリックします 'ボタンをクリックすると、その結果、プレイブックの新しいプロジェクトが作成されました。
さらに:
SCMタイプ'手動で新しいプロジェクトを作成する場合 '、' / var / lib / awx / projectsの下にある新しいプレイブックディレクトリを作成できます 'ディレクトリ。
' project_data_dir でAWXdockerバージョンを使用している場合、'/ var / lib / awx/projects'ディレクトリはAnsibleプレイブックのデフォルトのプロジェクトディレクトリです。 '有効。
ジョブテンプレートは、Ansibleプレイブック自体を実行するための定義です。したがって、新しいジョブテンプレートを作成したり、ジョブテンプレートを実行したりするには、「プロジェクト」、認証用の「クレデンシャル」、および「インベントリ」に保存されているターゲットマシンからAnsibleプレイブックを追加する必要があります。
>このガイドでは、新しいプロジェクト、資格情報、およびインベントリをすでに作成しています。したがって、[テンプレート]をクリックするだけです。 '左側のメニューをクリックし、'+'をクリックします ボタンをクリックして、[ジョブテンプレート]を選択します 'オプション。
次に、「名前」と入力する必要があります 'および'説明 '仕事の。次に、「在庫」を選択します '、'クレデンシャル '、および'プロジェクト '。その後、「 PLAYBOOK」を指定します '実行してデプロイしたい。
その結果、新しいジョブテンプレートAnsibleAWXが作成されました。
新しいジョブテンプレートを作成したら、ジョブテンプレートを実行し、Playbooksの「プロジェクト」を「インベントリ」上のターゲットホストにデプロイします。
'テンプレートをクリックします 左側の[メニュー]をクリックすると、使用可能なジョブテンプレートのリストが表示されます。
ジョブが完了すると、ジョブテンプレート名の中に緑色の記号が表示されます。
ジョブテンプレート名の内側にある緑色の記号をクリックすると、そのジョブの実際の結果が表示されます。
ジョブは正常に完了し、ターゲットマシンはAnsibleAWXを介してLEMPスタックにインストールされました。
ターゲットマシンのドメイン名をテストします。 ' roles / web / vars / main.ymlに保存されているドメイン名の構成 '構成。
systemctlコマンドを使用してNginxおよびPHP-FPMサービスを確認します。
systemctl status nginx
systemctl status php7.2-fpm
ターゲットマシンでMySQLデータベースをテストします。 'roles / db / vars/main.yml'構成ファイルに保存されているMySQLデータベースの詳細構成。
その結果、LEMPスタックはAnsibleAWXを介してターゲットマシンにインストールされました。