AmazonLinux2 + Nginx + Python3.x + Ansible AWX 環境を構築する
AmazonLinux2 に AWX をインストールする手順をメモしておきます。
環境¶
今回は以下の環境を構築します。
- ベースは AmazonLinux2
- インスタンスサイズは t2.small
- pyenv で Python 3.7.4 環境を構築
- フロントエンドは Nginx で SSL/TLS を終端させる
構築完了後、各コンポーネントのバージョンは以下になりました。
- Amazon Linux release 2 (Karoo)
- Linux awx.example.com 4.14.128-112.105.amzn2.x86_64 #1 SMP Wed Jun 19 16:53:40 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- docker-18.06.1ce-10.amzn2.x86_64
- git-2.17.2-2.amzn2.x86_64
- nginx-1.17.1-1.el7.ngx.x86_64
- pyenv 1.2.13
- pip
- ansible 2.8.2
- docker-compose 1.23.2
- pip 19.1.1
- python 3.7.4
インスタンスサイズ¶
AWX では複数のコンテナを組み合わせて利用することになり、それなりのスペックを要求します。 AWS のインスタンスサイズが t2.micro では SWAP が多発する為、t2.small の利用をお勧めします。
pyenv 環境の構築¶
pyenv が依存するパッケージをインストールします。
1 2 3 4 5 6 7 8 9 10 11 |
|
pyenv 自体をインストールします。
1 |
|
pyenv が必要とする環境変数を追加し、反映します。
1 2 3 4 5 6 |
|
Python 3.7.4 のインストール¶
pyenv で Python 3.7.4 をインストールします。 pyenv install
は Python をビルドするので、完了するまで数分はかかるはずです。
1 2 3 |
|
pip のアップデート¶
今後、更に AWX が依存するパッケージや Python モジュールをインストールしていきますが、先んじて pip 自体を最新版にアップデートしておきます。
1 |
|
関連パッケージのインストール (docker & git)¶
AWX をインストールする上で必要になる docker と git をインストールしておきます。
1 2 3 |
|
Docker の自動起動&起動設定¶
docker を自動起動&起動設定しておきます。
1 2 |
|
Python モジュールのインストール¶
pip で Ansible と docker-compose をインストールしておきます。 docker-compose はバージョンを指定せず、最新バージョンをインストールしようとすると「別モジュールが依存している requests モジュールのバージョン」と「docker-compose モジュールが要求する requests モジュールのバージョン」が衝突してしまうようで、インストールが出来ません。 そこで docker-compose モジュールはエラー無くインストール出来るバージョン 1.32.2 を指定してインストールします。
1 2 |
|
AWX のインストール¶
まず、GitHub から clone します。 フロントエンドに Nginx を設置するので、AWX 付属の Web サーバはローカルアドレス (127.0.0.1) を Listen するように変更します。 設定ファイルの修正が完了したら ansible-playbook
でインストールを開始します。
1 2 3 4 5 |
|
インストールが完了しました。 コンテナの状況を確認すると以下のようになっていました。
1 2 3 4 5 6 7 |
|
サーバ証明書の用意¶
今回は AWX のフロントエンドに Nginx を配置し、SSL/TLS サーバ証明書を終端させます。 予め、サーバ証明は任意のディレクトリに用意しておきます。 今回は /etc/letsencrypt/certificates/
へ証明書や秘密鍵をインストールしておきました。
1 |
|
Nginx¶
続いて Nginx を構築していきます。
インストール¶
AmazonLinux 標準リポジトリ上の Nginx はバージョンが低い為、Nginx 公式リポジトリから Nginx をインストールします。 まず、リポジトリの定義ファイルを作成します。 /etc/yum.repos.d/nginx.repo
を以下の内容で新規作成します。
1 2 3 4 5 6 |
|
リポジトリの定義が出来たので、Nginx をインストールします。
1 2 |
|
SSL/TLS 設定¶
Nginx で SSL/TLS を終端すべく、/etc/nginx/conf.d/awx.conf
を以下の内容で新規作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
自動起動&起動¶
準備が出来たので、Nginx を自動起動&起動設定します。
1 2 |
|
AWX へログインする¶
docker コンテナが起動完了するまで待った後、ブラウザで https://awx.example.com
へアクセスし、以下のような画面が表示されれば AWX のインストールは完了です。
AWX への初期ログイン情報はインストール時に利用した awx/installer/inventory
に定義されていますが、変更していなければ下記です。
項目 | 値 |
---|---|
ユーザ名 | admin |
パスワード | password |
AWX へのログインに成功すると下記のような画面に遷移するはずです。