Mana Blog Next

自宅IoT、仕事と家庭、カメラ、筋トレ生活

Ansible Tower を30分でインストールしてみよう

Ansible Towerで最強の構成管理をめざす

f:id:mana-cat:20170616000912j:plain

こんばんは、最近お疲れ気味のmana-catです。日々溜まりに溜まった仕事を楽にするために自動化を検証しています。Ansible Towerの検証もその一つです。

現状に嘆いているだけじゃ何も変わらないです。「だって・・・だから」とやらない理由を述べても現状は変わらないどころか悪化していく。時代は常に変化しているからこそ、自らその道を切り開くために、ちょっとだけ頑張ってみることも時には必要だと感じています。

その手段の一つがAnsible Towerを用いた構成管理だと感じています。今回は、たった30分の努力でAnsible Towerをインストールできる手順を紹介します。Amazon EC2 、そしてAWSを少しばかり触れるなら誰にだってできます。

評価版の申込み

下準備として、Ansible Towerを30日間フル機能をお試しできるエンタープライズキーを以下公式ページより申請します。ちなみに、エンタープライズキーが無くても、10ノード以下は無料で使えます。

Ansible Tower Trial | Ansible.com

みんな大好きHVM

次に、インスタンスを用意します。Ansible公式で用意されているトライアルのAnsible Tower AMIですが、AMIのタイプがPV(準仮想化)のみのご用意のようです。HVM(完全仮想化)がなくて困っちゃったよ~といった人のために、今回はHVMのインストール手順をご紹介します。

(非公式な方法になるけどPVからHVMへ変換する手段もあります。ただ、どちらにせよ面倒というのと、まずは正攻法な手順で一からインストールしています)

インストール要件

今回はAmazon EC2 にAnsible Towerをインストールする手順を紹介します。ちなみに、Ansible Towerは Playbookに依存しているため、Towerをインストールする前に Ansible 単体の最新安定バージョンをインストールする必要があります。

必須項目 内容
サポートOS Red Hat Enterprise Linux 7.2 以降のバージョン (64bit必須)
最小メモリー 2GB RAM
同時並列ジョブ 100台に実行する場合、100台あたり追加で 4GB RAM
ディスク領域(インストール時) 20GB (/var/に20GB以上を占有)
データ領域
(トラッキング用)
1年間、1000ホストを毎日スキャンすると仮定した場合 48 GB *1
Amazon EC2 スペック m3.medium またはそれ以上のインスタンス
100台以上を管理する場合:m3.xlarge 以上
操作用のブラウザー Mozilla Firefox または Google Chrome

今回用意した環境

必須項目 内容
Amazon EC2インスタンスサイズ m3.medium
OS RHEL7.3 64 bit (HVM)
ルートボリューム 100GB
  • 念のために書いておくと、セキュリティグループの設定で、端末~インスタンスの接続時に使用するポート 443, 22 を許可すること

インストール手順

インストール前の準備

  • お約束: /etc/hosts は正しく設定すること
  • インストールに必要なレポジトリを有効化する(後述する手順の通り)
  • yum updateすること

ホスト名の設定

$ sudo hostnamectl set-hostname tower.example.com --static
$ sudo vi /etc/hosts
192.168.10.100 tower.example.com

EPELリポジトリの有効化

Ansibleをインストール時、EPEL リポジトリを使用するため以下を実行して有効化します。

※RHEL 7.4から、EPEL リポジトリは使用しなくなる予定です。次の手順のextrasのみでOKになるとのこと。

$ sudo yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Ansible Tower インストール時に以下のリポジトリが必須のため、yum-config-managerで有効化する

$ sudo  yum-config-manager --enable rhui-REGION-rhel-server-extras

yum updateの実行とサーバー再起動

インストール前にyum update を実施し、パッケージを最新の状態に保ちます。

$ sudo yum update
$ sudo reboot

Ansibleのインストール

Ansibleとwgetをインストールする

$ sudo yum install ansible wget
Installed:
ansible.noarch 0:2.3.0.0-3.el7

Ansible Tower のインストール

wget コマンドでAnsible のパッケージをダウンロードする

$ wget http://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-3.1.3.tar.gz
$ tar xvzf ansible-tower-setup-3.1.3.tar.gz
$ cd ansible-tower-setup-3.1.3

Inventoryファイルを編集する

$ vi inventory
admin_password='パスワードを設定'
pg_password='パスワードを設定'
rabbitmq_password='パスワードを設定'

パスワードを保存したら以下の手順でセットアップスクリプトを実行する。

$ sudo ./setup.sh
  • もし、インストール要件が満たされていない場合はエラーメッセージが表示され、Ansible Towerのインストールは行われずスクリプトは終了する。どこがダメなのかはログを見て確認する。
  • インストール完了までに時間がかかるのでここでコーヒータイムしながらまったり過ごすことをオススメする
  • The setup process completed successfully.と表示されたらインストール成功なので喜んでおく

Ansible Tower admin ユーザーのパスワードを変更する手順については以下になります。

$ sudo  tower-manage changepassword admin
Changing password for user 'admin'
Password:パスワードを入力
Password (again):パスワードを再入力
Password changed successfully for user 'admin'

Ansible Tower管理画面の表示

ChromeまたはFirefoxを開き、アドレスを入力し、管理画面へアクセスする。

f:id:mana-cat:20170615235923p:plain

※SSL証明書をインストールしていないとブラウザーで警告が出るため、検証中は無視する。

ログイン画面で admin と、前の手順で設定した admin のパスワードを入力する。

f:id:mana-cat:20170615235934p:plain

Ansible Towerのライセンスキーをアップロード後、使用許諾契約書に同意し、送信ボタンを押す。

なお、30日間フル機能をお試しできるエンタープライズキーは以下で取得できます。

Ansible Tower Trial | Ansible.com

(ちなみに、エンタープライズキーが無くても、10ノード以下は無料で使えます)

これで、Ansible Towerにログインできるようになりました。

f:id:mana-cat:20170616000358p:plain

まとめ

誰でも無料トライアルできちゃう Ansible Towerをはじめちゃいましょう。新しい可能性を見付けて、もっと仕事を楽にしましょう。

今回はインストール編だったので次回に続きます。お楽しみに。

Ansible実践ガイド

Ansible実践ガイド

Ansible徹底入門 クラウド時代の新しい構成管理の実現

Ansible徹底入門 クラウド時代の新しい構成管理の実現

  • 作者: 廣川英寿,平初,橋本直哉,森田邦裕,渡辺一宏
  • 出版社/メーカー: 翔泳社
  • 発売日: 2017/02/17
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

*1:1年間、毎日スキャンをスケジュールすると仮定した場合
(hosts = 1,000) * (number of scans = 365) * ((average module fact size = 100 kb) * (number of modules = 4) / 3) = 48 GB