読者です 読者をやめる 読者になる 読者になる

dehio3’s diary

仕事、生活、趣味のメモ

脆弱性の番号って何?

最近「Apache Struts2」の脆弱性の問題がよくニュースで流れる。

itpro.nikkeibp.co.jp

そのなかで出てくる以下の数字

脆弱性(S2-045、CVE-2017-5638)

これって何を表してるのかよくわかってなかった。

なので今回はこの数字が何の情報なのかを調べてみた。

CVE-2017-5638

  • CVEとは、Common Vulnerabilities and Exposures(共通脆弱性識別子)の略称
  • 米国政府の支援を受けた非営利団体のMITRE社が提供している脆弱性情報データベース
  • 識別番号 「CVE-ID」(CVE-登録時の西暦-通し番号の形式)
  • CVE識別番号管理サイト CVE - Common Vulnerabilities and Exposures (CVE)
  • CVE識別番号管理サイトでは、CVE-IDの情報としてNVDのリンクがある

NVD(National Vulnerability Database)

CVSS(Common Vulnerability Scoring System)

  • 情報システムの脆弱性に対するオープンで汎用的な評価手法
  • ベンダーに依存しない共通の評価方法を提供

(1) 基本評価基準 (Base Metrics)

情報システムに求められる3つのセキュリティ特性、「機密性( Confidentiality Impact )」、「完全性( Integrity Impact )」、「可用性( Availability Impact )」に対する影響を、ネットワークから攻撃可能かどうかといった基準で評価し、CVSS基本値( Base Score )を算出

  • 脆弱性の固有の深刻度を表すために評価する基準
  • この基準による評価結果は固定 (時間の経過や利用環境の異なりによって変化しない)

(2) 現状評価基準 (Temporal Metrics)

脆弱性の現在の深刻度を評価する基準です。攻撃コードの出現有無や対策情報が利用可能であるかといった基準で評価し、CVSS現状値( Temporal Score )を算出

  • 脆弱性への対応状況に応じ、時間が経過すると変化
  • ベンダーや脆弱性を公表する組織などが、脆弱性の現状を表すために評価する基準

(3) 環境評価基準 (Environmental Metrics)

製品利用者の利用環境も含め、最終的な脆弱性の深刻度を評価する基準です。攻撃を受けた場合の二次的な被害の大きさや、組織での対象製品の使用状況といった基準で評価し、 CVSS 環境値 (Environmental Score) を算出

  • この基準による評価結果は、脆弱性に対して想定される脅威に応じ、製品利用者毎に変化
  • 製品利用者が脆弱性への対応を決めるために評価する基準

CVSSのレベル

CVSS基本値により深刻度をレベル分けする

レベルIII (危険)7.0~10.0
  • リモートからシステムを完全に制御されるような脅威
  • 大部分の情報が漏えいするような脅威
  • 大部分の情報が改ざんされるような脅威
レベルII (警告)4.0~6.9
  • 一部の情報が漏えいするような脅威
  • 一部の情報が改ざんされるような脅威
  • サービス停止に繋がるような脅威
レベルI (注意)0.0~3.9
  • 攻撃するために複雑な条件を必要とする脅威
  • その他、レベルIIに該当するが再現性が低いもの

参考サイト

ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?

共通脆弱性評価システムCVSS概説:IPA 独立行政法人 情報処理推進機構

CVSSスコアの解説「セキュリティ診断結果の見方」 | 株式会社レオンテクノロジーはWebサイトを守るセキュリティ会社です

CUI実行環境構築

CUIでの実行環境構築

以下の手順を参考に環境を作成

tech-sketch.jp

テストコードを実行したところ以下のエラーが発生

# ruby /tmp/selenium_test.rb
/var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/common/service.rb:59:in `binary_path':  Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver. (Selenium::WebDriver::Error::WebDriverError)
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/common/service.rb:49:in `initialize'
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/firefox/w3c_bridge.rb:33:in `new'
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/firefox/w3c_bridge.rb:33:in `initialize'
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/common/driver.rb:52:in `new'
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver/common/driver.rb:52:in `for'
    from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.2.2/lib/selenium/webdriver.rb:87:in `for'
    from /tmp/selenium_test.rb:3:in `<main>'

Mozilla geckodriver をダウンロードしろとのこと

# cd /usr/loca/src
# wget https://github.com/mozilla/geckodriver/releases/download/v0.14.0/geckodriver-v0.14.0-linux64.tar.gz

# tar -zxvf geckodriver-v0.14.0-linux64.tar.gz
geckodriver

# ls -l
total 7256
-rwxrwxr-x 1 ubuntu ubuntu 5593244 Jan 31 17:14 geckodriver
-rw-r--r-- 1 root   root   1832331 Jan 31 17:15 geckodriver-v0.14.0-linux64.tar.gz

# mv geckodriver /usr/local/bin/
# ls -l /usr/local/bin/geckodriver
-rwxrwxr-x 1 ubuntu ubuntu 5593244 Jan 31 17:14 /usr/local/bin/geckodriver

テスト再実行…OK

# ruby /tmp/selenium_test.rb
Google

CentOS5(python2.4)にAWS CLIを導入する。

環境

OS

$ cat /etc/redhat-release
CentOS release 5.5 (Final)

python

2.4.3がインストール済み

$ rpm -qa | grep python-2
python-2.4.3-27.el5_5.3
libxml2-python-2.6.26-2.1.2.8.el5_5.1

目的

  • 本番環境で動作しているサーバでAWSを操作する要件が出たので、AWS CLIを導入する。
  • AWS CLI を使用するために Python 2.6.3 以上が必要だが、元々インストールされているバージョンが2.4.3 のため、現状の動作に影響を与えないようにpython 2.6.9 を導入する。

方法

既存の動作に影響を与えず上位のバージョンのpythonを導入するためpyenvを使用。

導入については以下を参考に。

pyenvの使い方とインストール - Python入門から応用までの学習サイト

今回は、バージョン検証のためではないため、どのユーザでも参照できるように/usr/localにpyenvを導入する。

pyenv取得

$ cd /usr/local
$ git clone https://github.com/yyuu/pyenv.git

環境変数設定

$ echo 'export PYENV_ROOT="/usr/local/pyenv"' >> /usr/local/pyenv/.pyenv_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /usr/local/pyenv/.pyenv_profile
$ echo 'eval "$(pyenv init -)"' >> /usr/local/pyenv/.pyenv_profile
$ source /usr/local/pyenv/.pyenv_profile

インストールリスト表示

pyenv install -l

python2.6.9インストール

$ pyenv install 2.6.9
Downloading Python-2.6.9.tgz...
-> https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz
Installing Python-2.6.9...
patching file setup.py
Hunk #1 succeeded at 354 (offset 9 lines).
patching file ./configure
patching file ./Modules/readline.c
Hunk #1 succeeded at 199 (offset -7 lines).
Hunk #2 succeeded at 705 (offset -44 lines).
Hunk #3 succeeded at 852 (offset -7 lines).
Hunk #4 succeeded at 855 with fuzz 2 (offset -63 lines).
patching file ./setup.py
Hunk #1 succeeded at 1698 (offset 23 lines).
patching file ./Lib/ssl.py
patching file ./Modules/_ssl.c
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installing pip from https://bootstrap.pypa.io/get-pip.py...
Installed Python-2.6.9 to /usr/local/pyenv/versions/2.6.9

インストール確認

$ pyenv versions
* system (set by /usr/local/pyenv/version)
  2.6.9

利用バージョン変更

$ python -V
Python 2.4.3
$ pyenv global 2.6.9
$ pyenv versions
  system
* 2.6.9 (set by /usr/local/pyenv/version)
$ python -V
Python 2.6.9

pipインストール

$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  3879k      0 --:--:-- --:--:-- --:--:-- 5665k
$ python get-pip.py
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Requirement already up-to-date: pip in ./.pyenv/versions/2.6.9/lib/python2.6/site-packages
$ which pip
~/pyenv/shims/pip

既に入ってた。

awscliインストール

$ pip install awscli
$ which aws
~/.pyenv/shims/aws

メモ

pythonの仕組み

virtualenv - def __mopemope__(self, *args, **kwargs):

pythonは自分自身のパスの上位のlib/pythonx.xをライブラリとして認識する。

$ which python
/usr/bin/python
$ ls -l /usr/bin/python
-rwxr-xr-x 2 root root 8304 11月 12  2010 /usr/bin/python
$ ls -ld /usr/lib/python2.4/
drwxr-xr-x 3 root root 4096 11月 12  2010 /usr/lib/python2.4/

読み込んでるライブラリのパス

$ /usr/bin/python -c "import sys;print sys.path"
['', '/usr/lib/python2.4/site-packages/simplejson-2.1.2-py2.4.egg', '/usr/lib/python2.4/site-packages/jsontools-0.1-py2.4.egg', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages']

参考

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

pyenvの使い方とインストール - Python入門から応用までの学習サイト

CentOS release 6.3 (Final)でansible実行環境を作成

デフォルトのバージョン

# python --version
Python 2.6.6
# pip list
-bash: pip: command not found

pipインストール

pipは入ってないので、インストールする。

pipインストールのpythonスクリプトを取得。

# wget https://bootstrap.pypa.io/get-pip.py
# ls -l
total 1492
-rw-r--r--. 1 root root 1524722 2016-05-21 23:30 get-pip.py

スクリプト実行。

# python get-pip.py

バージョン確認。

# pip -V
pip 8.1.2 from /usr/lib/python2.6/site-packages (python 2.6)

インストール直後のリスト。

# pip list
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
argparse (1.4.0)
iniparse (0.3.1)
pip (8.1.2)
pycurl (7.19.0)
pygpgme (0.1)
setuptools (28.1.0)
urlgrabber (3.9.1)
wheel (0.29.0)
yum-metadata-parser (1.1.2)
yum-presto (0.4.4)

botoインストール

ansibleでのAWS制御のためにbotoをインストール。

# pip install boto
Successfully installed boto-2.42.0

ansibleインストール

パッケージ確認。

# yum list ansible
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Error: No matching Packages to list

デフォルトのリポジトリには存在しないので、EPELリポジトリを追加。

# yum localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

再度パッケージ確認。

# yum list ca-certificates
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

mirrorlistをhttpに変更。

qiita.com

# sed -i 's/\(mirrorlist=http\)s/\1/' /etc/yum.repos.d/epel.repo

再度パッケージ確認。

# yum list ansible
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
epel/metalink                                                       | 5.5 kB     00:00
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
epel                                                                | 4.3 kB     00:00
epel/primary_db                                                     | 5.9 MB     00:00
Available Packages
ansible.noarch                              2.1.1.0-1.el6                              epel

ansibleインストール

# yum install ansible

バージョン確認。

# ansible --version
ansible 2.1.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides

playbook 実行

実行するplaybookはこちら。

dehio3.hatenablog.com

クレデンシャル情報を設定。

$ export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXX
$ AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXX

playbook実行。

$ ansible-playbook playbook.yum -i hosts

作成完了。

ansibleで複数台のEC2インスタンスを作成する

商用機としてインスタンスを作成する場合、2台以上の冗長構成にするのが普通なので、アベイラビリティーゾーンを分けてインスタンスを作成するplaybookを作成。

インベントリファイルにて、サーバ名とアベイラビリティーゾーンを指定するだけで、同じ種別の複数台作成する事が可能。

hosts

#localhost ansible_python_interpreter=/usr/local/bin/python

[servers]
hoge-01
hoge-02

[zone-a]
hoge-01

[zone-c]
hoge-02

[all:vars]
service=test
keypair=hoge
instance_type=t2.micro
instance_tags="Name='[{{ service }}]{{ inventory_hostname }}'"
security_group=sg-xxxx
image=ami-374db956
region=ap-northeast-1

[zone-a:vars]
vpc_subnet_id=subnet-xxxxx

[zone-c:vars]
vpc_subnet_id=subnet-xxxxx

playbook.yml

- name: Create a sandbox instance
  hosts: servers
  gather_facts: False
  tasks:
    - name: Launch instance
      local_action:
        module: ec2
        key_name: "{{ keypair }}"
        group_id: "{{ security_group }}"
        instance_type: "{{ instance_type }}"
        instance_tags: "{{ instance_tags }}"
        image: "{{ image }}"
        wait: true
        region: "{{ region }}"
        vpc_subnet_id: "{{ vpc_subnet_id }}"
      register: ec2

    - name: Add new instance to host group
      local_action: add_host hostname={{ item.public_ip }} groupname=launched
      with_items: ec2.instances

    - name: Wait for SSH to come up
      local_action: wait_for host={{ item.public_dns_name }} port=22 delay=60 timeout=320 state=started
      with_items: ec2.instances

mac(OS EI Capitan)からansibleを使ってEC2の作成

前回からの続き

dehio3.hatenablog.com

EC2を操作するためのansibleモジュールの追加

ansibleのEC2機能は、PythonのBotoライブラリが必要。

以下を実行する必要がる。

sudo pip install boto
そもそもpipって?

pip - Wikipedia

pipはPythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システムである。多くのPythonパッケージは、Python Package Index(PyPI)上にある。
pipはPython 2.7.9 以降、Python 3.4以降からデフォルトで付属するようになった。

pythonのバージョンを確認。

$ python --version
Python 2.7.10

実行。

$ sudo pip install boto
sudo: pip: command not found

ないじゃん。

こちらを参考に標準のPythonではなくbrew版のPythonを導入してみることに。

MacでPython使う時の最低限のメモ(Homebrew編) - Qiita

ちなみにansibleが対応しているバージョンは Python 2.6 or 2.7

http://docs.ansible.com/ansible/intro_installation.html#control-machine-requirements

事前のパス確認。

$ which python
/usr/bin/python

インストール。

$ brew install python

インストール確認。

$ which python
/usr/local/bin/python
$ python --version
Python 2.7.10

botoインストール。

$ sudo pip install boto
Collecting boto
  Downloading boto-2.42.0-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.4MB 922kB/s 
Installing collected packages: boto
Successfully installed boto-2.42.0

できた。

playbookを作成

こちらを参考に作成。

dev.classmethod.jp

playbook実行。

$ ansible-playbook -i hosts playbook.yml 

PLAY [Create a sandbox instance] ***********************************************

TASK [Launch instance] *********************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"}

NO MORE HOSTS LEFT *************************************************************
 [WARNING]: Could not create retry file 'playbook.retry'.         [Errno 2] No
such file or directory: ''


PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1   

こけた!

対応。

 echo "localhost ansible_python_interpreter=`which python`" > hosts

再実行。

$ ansible-playbook -i hosts playbook.yml 

PLAY [Create a sandbox instance] ***********************************************

TASK [Launch instance] *********************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Region ap-northeast-1a does not seem to be available for aws module boto.ec2. If the region definitely exists, you may need to upgrade boto or extend with endpoints_path"}

NO MORE HOSTS LEFT *************************************************************
 [WARNING]: Could not create retry file 'playbook.retry'.         [Errno 2] No
such file or directory: ''


PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1   

こけた!

直訳。

リージョンAP-北東-1aは、AWSモジュールboto.ec2のために利用可能であるように思えません。地域は間違いなく存在する場合は、のbotoをアップグレードするか、endpoints_pathに拡張する必要があるかもしれません

playbookの「region」の設定値を既存のインスタンスアベイラビリティーゾーンをコピペしてた。 最後の「a」が入らない。

region: ap-northeast-1a

再実行。

$ ansible-playbook -i hosts playbook.yml 

PLAY [Create a sandbox instance] ***********************************************

TASK [Launch instance] *********************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "failed": true, "msg": "No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials"}

NO MORE HOSTS LEFT *************************************************************
 [WARNING]: Could not create retry file 'playbook.retry'.         [Errno 2] No
such file or directory: ''


PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1   

こけた。。

クレデンシャル確認しろって言ってるけど、そもそもクレデンシャルが何なのか理解してなかった。

そういえばansibleでEC2作成するサイト見ていると、APIの接続情報を環境変数で設定してたりしてた。

AWS_ACCESS_KEY_ID=アクセスキー
AWS_SECRET_ACCESS_KEY=シークレットアクセスキー

そもそもIAMユーザ作成していなかったので作成。

この辺りを参考に作成。

dev.classmethod.jp

キー情報を設定。

$ export AWS_ACCESS_KEY_ID=アクセスキー
$ export AWS_SECRET_ACCESS_KEY=シークレットアクセスキー

再実行。

$ ansible-playbook -i hosts playbook.yml 

成功!!

コンソール画面からも新しいEC2インスタンスが作成されている事を確認!!

f:id:dehio3:20160922161648p:plain

尚、アクセスキーの情報は環境変数以外でもファイルで定義しておくことも可能らしい。

botoの設定ファイルについて - はっぱのこの日々

$ cat ~/.boto
[Credentials]
AWS_SECRET_ACCESS_KEY=アクセスキー
AWS_ACCESS_KEY_ID=シークレットアクセスキー

大変勉強になりました。。

ちなみに

職場のansible環境で実行するとEC2は作成されるが、今回のように起動状態にはなってくれない事象が発生している。。

boto 周りの問題なのかな・・・?

明日botoのバージョンをとりあえず確認してみよう!!

$ sudo pip list | grep boto
boto (2.42.0)

mac(OS EI Capitan)にansibleをインストールしてみた

背景

会社でansibleによるEC2インスタンスの作成を行っているがうまく起動しないので、勉強も兼ねて自宅のmacから個人のAWS環境にEC2インスタンスを作成してみようと思い立った!

Homebrewインストール

ansibleをmacにインストールするならHomebrewでインストールするのが楽とのことなのでまずはHomebrewをインストールしてみる事に。

Homebrewのインストール方法は以下を参照した。

パッケージ管理システム Homebrew - Qiita

java,xcode,Homebrewのインストールについては記載の通りに完了。

Homebrewのチェックにて以下のメッセージが出力。

$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
    /usr/local/include/ublio.h

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
  echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

2つ目のwarningは解決方法が記載されていたのでそのまま実行。

$ ls -l ~/.bash_profile
ls: /Users/hoge/.bash_profile: No such file or directory
$ echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

1つ目のwarningは問題を引き起こす可能性がるから削除しろ的なことらしい。

Homebrew のエラーとその対処 - ろぼねこの雑記帳

でもそもそもどのpkgで使ってるファイルだ?

$ cat /usr/local/include/ublio.h
/*-
 * Copyright 2006 Csaba Henk <csaba.henk@creo.hu>
 * All rights reserved.

(中略)

/*
 * Minor modifications 2007-2009 for the NTFS-3G for Mac OS X project.
 *   Erik Larsson <erik82@kth.se>
 */

なんか「NTFS-3G for Mac OS X」なるpkgのようだが・・・

昔入れたpkgのようだけど今は必要ないからpkg毎削除しよう!!

まずはpkg名を確認。

$ pkgutil --pkgs | grep ntfs
org.catacombae.ntfs-3g_package

システム環境設定を開くとNTFS-3Gを発見。 f:id:dehio3:20160922081612p:plain

開いてstatusを「disable」に変更し、「Uninstall NTFS-3G...」ボタンを押そうとしてけど、白抜き状態で押せない。 f:id:dehio3:20160922081548p:plain

カーソルを合わせると「Uninstall script not found !!」が!!

以下のパッケージ削除スクリプトを利用し削除してみることに。

Macでインストールしたパッケージを削除する - Qiita

$ pkgutil --pkgs | grep ntfs
$ 

消えたようなので再度チェックを実行。

brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Broken symlinks were found. Remove them with `brew prune`:
    /usr/local/lib/libublio.1.0.0.dylib
    /usr/local/share/man/man8/mkfs.ntfs.8
    /usr/local/share/man/man8/mount.lowntfs-3g.8
    /usr/local/share/man/man8/mount.ntfs-3g.8

ファイル削除の結果、リンク切れしたシンボリックリンクが発生したという警告らしいので、指示通りのコマンドを実行。

$ brew prune
Pruned 4 symbolic links and 1 directories from /usr/local

再度チェック。

$ brew doctor
Your system is ready to brew.

バージョンチェック。

$ brew -v
Homebrew 1.0.0 (git revision a381b; last commit 2016-09-21)
Homebrew/homebrew-core (git revision 48e0; last commit 2016-09-21)

完了。

やっとansibleインストール

$ brew install ansible

インストールを確認

$ brew list
ansible libyaml openssl
$ ansible
ansible           ansible-doc       ansible-playbook  ansible-vault
ansible-console   ansible-galaxy    ansible-pull 

コマンドもいたのでインストールされたよう。