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

Ubuntu18.04LTSにNginxリバースプロキシを使用してAnsibleAWXをインストールする方法

AWXは、Ansibleのユーザーインターフェイス、REST API、およびタスクエンジンを提供するオープンソースのWebアプリケーションです。これは、AnsibleTowerのオープンソースバージョンです。 AWXを使用すると、Ansibleのプレイブック、インベントリを管理し、Webインターフェイスを使用して実行するジョブをスケジュールできます。

このチュートリアルでは、Ubuntuサーバー18.04にAWXをインストールして構成する方法を紹介します。 Nginxをリバースプロキシとして使用し、HTTPSセキュア接続上に構築されたAWXをインストールします。

前提条件

  • Ubuntuサーバー18.04
  • RAMメモリ+4GBおよび2コア
  • root権限

私たちが行うこと:

  1. DockerとAnsibleをインストールする
  2. 追加パッケージのインストール
  3. AnsibleAWXソースコードをダウンロードして構成する
  4. AnsibleAWXをインストールする
  5. Nginxをリバースプロキシとしてインストールして構成する
  6. UFWファイアウォールのセットアップ
  7. テスト
ステップ1-DockerとAnsibleをインストールする

まず、AWXのインストールに必要なメインパッケージをインストールします。それはDockerとAnsible自体です。これらのパッケージをインストールする前に、次のコマンドを使用してUbuntuリポジトリを更新してください。

sudo apt update

次に、DockerとAnsibleをインストールします。

sudo apt install ansible -y
sudo apt install docker.io -y

インストールが完了したら、次のコマンドを使用してdockerとansibleを確認します。

docker version
ansible --version

結果は以下のとおりです。

ステップ2-追加のパッケージをインストールする

次に、AWXインストール用の追加パッケージをインストールします。 'python-pip'パッケージをシステムにインストールしてから、PyPIpythonリポジトリからdocker-composeとdocker-pyをインストールします。

以下のaptコマンドを使用して「python-pip」をインストールします。

sudo apt install python-pip -y

インストールが完了したら、以下のpipコマンドを使用して、PyPIリポジトリからdocker-compose1.9.0およびdocker-pyパッケージをインストールします。

pip install docker-compose==1.9.0
pip install docker-py

次に、nodejsとnpmをサーバーにインストールする必要があります。

次のコマンドを実行します。

sudo apt install nodejs npm -y

完了したら、npmを最新バージョンにアップグレードします。

npm install npm --global

その結果、すべての依存関係がシステムにインストールされました。これで、AWXをインストールする準備が整いました。

ステップ3-AWXソースコードをダウンロードして構成する

このステップでは、AWXソースコードをダウンロードし、AWXインストール用のインベントリファイルを構成します。

gitリポジトリからAWXソースコードをダウンロードし、awxインストールディレクトリに移動します。

git clone https://github.com/ansible/awx.git
cd awx/installer/

その後、以下のopensslコマンドを使用してawxの新しい秘密鍵を生成します。

openssl rand -hex 32

生成された秘密鍵をメモにコピーします。

次に、「インベントリ」構成ファイルを編集します。

vim inventory

'postgres_data_dir'を'/var / lib/pgdocker'ディレクトリに変更します。

postgres_data_dir=/var/lib/pgdocker

「host_port」を「8080」に変更します。

host_port=8080

docker composeを使用してawxを管理するため、「use_docker_compose」行のコメントを解除し、値を「true」に変更します。

use_docker_compose=true

ここで、「docker_compose_dir」が「/ var / lib/awx」ディレクトリにあることを確認します。

docker_compose_dir=/var/lib/awx

'pg_password'、'rabbitmq_password'、'rabbitmq_erlang_cookie'、'admin_user'、および'admin_password'の資格情報を独自のパスワード資格情報に変更します。

...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...

その後、上部で生成されたキーを使用して、awx構成の秘密キーを変更します。

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

次に、「project_data_dir」のコメントを解除し、値をデフォルトのままにします。

project_data_dir=/var/lib/awx/projects

構成を保存して閉じます。

以下は、「インベントリ」ファイルの編集です。

grep -v '^#' inventory

インベントリ構成ファイル。

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

[all:vars]

dockerhub_base=ansible

awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080

use_docker_compose=true
docker_compose_dir=/var/lib/awx

pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432

rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster

admin_user=hakase
admin_password=hakasepass

create_preload_data=True

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

project_data_dir=/var/lib/awx/projects

その結果、次のステージにawxをインストールする準備が整いました。

ステップ4-AnsibleAWXをインストールします

次のansible-playbookコマンドを使用してawxをインストールします。

ansible-playbook -i inventory install.yml

プレイブックは、Dockerイメージのダウンロードや、postgresql、memcached、rabbitmq、awx Webアプリケーション、awxタスクの新しいコンテナーの作成などのいくつかのタスクを実行します。

そして以下がその結果です。

次に、「/ var / lib / awx」ディレクトリに移動すると、「docker-compose.yml」構成が取得されます。次に、docker-composeコマンドを使用して、使用可能なすべてのDockerコンテナーを確認します。

cd /var/lib/awx
docker-compose ps

そして、以下のようにawxコンテナが表示されます。

さらに、次のコマンドを使用して、「タスク」サービスのログを確認できます。

docker-compose logs task
ステップ5-Nginxをリバースプロキシとしてインストールして構成する

awxをインストールした後、ポート「8080」を実行しているawxのリバースプロキシとしてNginxをインストールして構成します。

次のaptコマンドを使用してNginxをインストールします。

sudo apt install nginx -y

インストールが完了したら、「/ etc / nginx / sites-available /」ディレクトリに移動し、vimエディターを使用して「awx」という新しい仮想ホスト構成を作成します。

cd /etc/nginx/sites-available/
vim awx

次に、以下の構成を貼り付けます。

server {
   listen 80;
   server_name awx.hakase-labs.io;
   add_header Strict-Transport-Security max-age=2592000;
   rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl http2;
    server_name awx.hakase-labs.io;

    access_log /var/log/nginx/awx.access.log;
    error_log /var/log/nginx/awx.error.log;

    ssl on;
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    ssl_session_timeout 5m;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;

location / {
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://10.5.5.20:8080/;
    }
}

ドメイン名とproxy_passIPアドレスを独自のものに変更し、保存して終了します。

次に、「awx」仮想ホストをアクティブにして、nginx構成をテストします。

ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t

nginxの構成にエラーがないことを確認してから、nginxサービスを再起動します。

sudo systemctl restart nginx

その結果、awxのリバースプロキシとしてのNginxのインストールと構成が完了しました。

ステップ6-UFWファイアウォールを設定する

SSH、HTTP、およびHTTPSサービスをUFWファイアウォール構成に追加します。

ufw allow ssh
ufw allow http
ufw allow https

次に、ufwファイアウォールサービスを開始して有効にします。

ufw enable

「y」を「yes」と入力すると、ufwファイアウォールが構成されます。

ステップ7-テスト

Webブラウザーを開き、アドレスバーにawxURLを入力します。

https://awx.hakase-labs.io

そして、以下のようなawxログインページが表示されます。

次に、ユーザー「hakase」とパスワード「hakasepass」を入力し、「サインイン」ボタンをクリックします。

これで、次のようなawx管理ダッシュボードが表示されます。

そして、Nginxリバースプロキシを使用したAnsibleAWXのインストールが正常に完了しました。


Ubuntu
  1. リバースプロキシとしてNginxを使用してUbuntu16.04にOdoo10をインストールする方法

  2. リバースプロキシとしてNginxを使用してUbuntu20.04にFlectraをインストールする方法

  3. リバースプロキシとしてNginxを使用してUbuntu18.04にOdoo12をインストールする方法

  1. Ubuntu20.04LTSにAnsibleAWXをインストールする方法

  2. Ubuntu20.04LTSでNginxを使用してModsecurityをデプロイする方法

  3. リバースプロキシとしてNginxを使用してUbuntu16.04にOdoo11をインストールする方法

  1. Ubuntu 20.04 LTS/21.04にAnsibleをインストールする方法

  2. Ubuntu20.04LTSにNginxを使用してSeafileをインストールする方法

  3. Ubuntu16.04LTSにNginxを使用してVarnishリバースプロキシをインストールする方法