Ansible Towerのインストール方法について

これはエーピーコミュニケーションズ Advent Calendar 2021 10日目の記事です。  

https://qiita.com/advent-calendar/2021/ap-com

## はじめに
こんにちは　たそ(@taso_int)です。
またお前かよと思った方許してください。

今回はQiitaで書いてます。
いつもははてなブログで書かせて頂いてます。
https://taso-int.hatenablog.com/archive
ぜひ見てください(2回目)  

今回はAnsible Tower v3.8を構築する手順についてESXi(v6.7)とAWSの環境でそれぞれ書きたいと思います。
ここでのAnsible Towerはansible automation platform バージョン1.2および
Automation controller バージョン3.8のことを指しています。  

現在ansible automation platform バージョン2.1がリリースされています。
Ansible Towerという名称もなくなるらしい？？？

## AnsibleTowerとは
Ansible Towerは、IT自動化のためのエンタープライズソリューションを提供するWebベースのUIです。
GUIのAnsibleのイメージで問題ないと思います。
AnsibleTowerには以下の特徴があります。
・Ansibleを補完し、ワークフローや実行履歴管理能などを追加
・管理者にユーザーアクセス制御を提供
・ RESTful API に対応
・ 実行履歴や結果が残る

またAnsibleTowerとGitを連携させることでPlaybookをリポジトリで管理することが可能です。  

## ライセンスについて
OSはRHEL8.4を使用します。
RHELおよびAnsible Towerを利用するためにはライセンスが必要となります。
今回はRed HatさんのRed Hat Developer Programに参加し、
Developer Subscriptionを利用しています。

詳しくはこちらを確認してください。

https://rheb.hatenablog.com/entry/developer-program

## インストール前の下準備

ESXiとAWSどちらもAnsible Towerのインストールにおける手順の違いはないです。
しかし、物理とクラウドの環境なので下準備が変わります。
下準備について説明をしていきたいと思います。

### ESXiの場合
1. OSのインストール
   ESXiではRHEL8.4を入れるところから始まります。
   Red HatのサイトにRHEL8.4のファイルがあるのでそれをダウンロードします。
   https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.4/x86_64/product-software
   ここで注意なのは2番目のRed Hat Enterprise Linux 8.4 Binary DVDをインストールしてください。
   isoファイルなので時間がかかります。
　　![スクリーンショット 2021-12-04 174913.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/5b4a6ee2-f45b-945a-0f77-4e448468640f.png)

2. 仮想マシンの立ち上げ
ESXiにログインして仮想マシンの作成をクリック　　
作成タイプは新規仮想マシンの作成を選択します。
![スクリーンショット 2021-12-04 175810.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/361d2946-fd8a-e2c2-d376-d7d23cf7f0ad.png)
名前とゲストOSの選択をします。
![スクリーンショット 2021-12-04 180619.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/7c923784-7390-2341-ec84-2a73e0479b8f.png)
ストレージの選択をします。  
設定のカスタマイズを以下の通りにします。
CPU 2
メモリ 8GB
ハードディスク 16GB
CD/DVDドライブをデータストアISOファイルに変更します。
CD/DVDメディアに先ほどダウンロードしたISOファイルを選択をします。
(アップロードが必要なので時間がかかります。)
以下のようになります。
![スクリーンショット 2021-12-04 181200.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/b1675e33-9fc3-7f46-8fcb-f8c350efa848.png)

3. RHELの設定
RHELのインストール画面になるので必要な情報を入れます。
![スクリーンショット 2021-12-04 181827.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/f6edf0f6-f932-0bd1-a47a-637c6a129bc4.png)
ここでネットワークの設定やサブスクリプションの登録をしておくことをお勧めします。 
![スクリーンショット 2021-12-04 182509.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/fac35a3a-2b79-6a58-1d97-8132bbdd5e90.png)
インストールに時間がかかるので休憩しましょう。
インストール成功後にもセットアップがあるので必要な情報を入れます。
ESXiの下準備は以上になります。
![スクリーンショット 2021-12-04 195954.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/26b3d678-edc3-bd3e-0c90-27c89b2f6d7c.png)


### AWSの場合
1. EC2インスタンスの立ち上げ  
   AMIでRed Hat Enterprise Linuxと検索すると、  
   Red Hat Enterprise Linux 8 (HVM), SSD Volume Typeが表示されるので選択をします。  
   インスタンスタイプはt2.largeで、mediumだと失敗することもあります。  
   その他は各自カスタマイズしてください。  
   セキュリティグループは、必ずSSHとHTTPSは空けるようにしてください。  
   EIPはなくても問題ないです。  
   VScodeやTeraTermでリモート接続出来ることを確認したら終わりです。  
   AWSの下準備は以上になります。(早すぎる)


## Ansible Towerのインストール
下準備が出来たところでAnsible Towerのインストールをしましょう。
VScodeやTeraTermでリモート接続することをお勧めします。
rootユーザーで構築を行います。

Ansible Towerのインストールファイルをダウンロードします。

```
cd　/tmp
mkdir ansibletower
cd ansibletower
curl -O https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.8.3-2.tar.gz
```

インストールファイルを解凍します。

```
tar xvzf ansible-tower-setup-bundle-3.8.3-2.tar.gz 
```

インストールファイル内に移動し、inventoryというファイルを編集します。

```
cd ansible-tower-setup-bundle-3.8.3-2
vi inventory
```

以下の項目を設定します。この設定はログインパスワードとして使うことになります。
シングルクォーテーションを変に消したりすると面倒なことになります。

```:inventory
[tower]
localhost ansible_connection=local

[automationhub]

[database]

[all:vars]
admin_password='password'   ←変更　#GUIにログインするパスワード

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='password'     ←変更　#PostgreSQLに接続するパスワード
pg_sslmode='prefer'  # set to 'verify-full' for client-side enforced SSL

# Automation Hub Configuration
#
```

修正後ファイル内のスクリプトを実行すとインストールが始まります。(結構かかる)

```
./setup.sh
```
インストールでエラーがおこる場合はinventoryファイルの設定ミスかスペック不足の場合がほとんどです。
AWSだとスペック不足でエラーになることが多いです。
The setup process completed successfullyが表示されれば成功です。

ブラウザでhttps://<インストールしたホストのIPアドレス>を開きます。
chromで開くと下のような画面が出るので、
![スクリーンショット 2021-12-04 220846.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/b9d614b4-f8c9-7297-ffee-d86d6ef29eee.png)


詳細設定をクリックして、
<u><インストールしたホストのIPアドレス>にアクセスします</u>をクリック
そうするとログイン画面が表示されるので
IDはadmin
パスワードはinventoryで設定したパスワードを入力します。
ログインに成功するとTowerのサブスクリプションを求められるので必要な情報を入力します。

ダッシュボードが見れたら構築完了です。お疲れ様でした。
![スクリーンショット 2021-12-04 205630.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2269290/36816193-5d6f-2ca4-45bb-9f3d919d7260.png)


## 最後に
もしかしたらAnsible Towerを見れなくなる日がくるかも??(まだ先)
ありがとうAnsible Tower
もうすぐ年越しです。皆さん頑張りましょう！！！
ここまで読んでいただきありがとうございました。