@znz blog

ZnZ の memo のようなもの

Mac OS X で ansible を入れてみた

| Comments

Mac OS X 10.8.5 でシステム側の python は使わずに pyenv を使って ansible を入れてみました。

2013-11 追記: 今は homebrew でインストールできるようになっていて brew install ansible だけでインストールできます。

参考サイト

必要なもの

  • homebrew

pyenv

参考サイトと同じように homebrew で pyenv をインストールします。

1
2
brew update
brew install pyenv

(旧) 猫好きモバイルアプリケーション開発者記録 rbenv init が重い問題に対する対処法 という話をみてから init の時には rehash しないようにしていたので、 --no-rehash というオプションを付けています。

https://github.com/znz/dot-shell/blob/master/profile.d/50pyenv.sh
1
2
3
if type pyenv >/dev/null 2>&1; then
    eval "$(pyenv init - --no-rehash)"
fi

exec zsh でシェルを再起動するなり、設定ファイルをドットコマンドや source コマンドで読み直すなり、 eval "$(pyenv init -)" を直接実行するなりして設定を反映させます。

pyenv でインストール

ansible pyenvを使った環境に依存しないインストール で 2.7.5 を入れていたので、 pyenv install [TAB] で補完候補をみて、 2.7 系の最新が 2.7.5 のままなのを確認してインストールしました。 この後で必要になる pippyenv が自動でインストールしてくれていました。

https://github.com/znz/dot-shell/blob/master/profile.d/50pyenv.sh
1
2
3
pyenv install 2.7.5
pyenv rehash
pyenv global 2.7.5

pip でライブラリをインストール (不要?)

必要なライブラリをインストールしましたが、 この手順は不要そうです。 PyYAML のインストールのところで libyaml が見つからないというエラーがでていましたが、 pip install 自体は成功していたので、問題はなかったようです。

https://github.com/znz/dot-shell/blob/master/profile.d/50pyenv.sh
1
pip install paramiko jinja2 PyYAML pycrypto markupsafe

git clone して試す

ライブラリをインストールしたので、 Running From Source の方法で試せましたが、 この方法で入れたものは後で消しました。

https://github.com/znz/dot-shell/blob/master/profile.d/50pyenv.sh
1
2
3
git clone git://github.com/ansible/ansible.git
cd ansible
source ./hacking/env-setup

pip で ansible をインストール

ansible の Latest Releases Via Pip で ansible 自体も pip でインストールできるとわかったので、 sudo なしの pip install ansible でインストールしました。 必要なライブラリは依存関係でここで一緒にインストールされるので、 先に個別にインストールする必要はなさそうでした。

そのままだと error: could not create '/usr/share/ansible': Permission denied で失敗したので、 homebrew で /usr/local が admin グループに書き込み可能に設定されるのを参考にして、 admin グループに書き込み可能で作成してからインストールすると大丈夫でした。

install コマンドでのディレクトリの作成やパーミッションの設定は、 何度実行しても同じ結果になるという点では mkdir -pchmodchown の組み合わせと同じですが、 1コマンドで済むのでオススメです。

https://github.com/znz/dot-shell/blob/master/profile.d/50pyenv.sh
1
2
sudo install -d -g admin -m 775 /usr/share/ansible
pip install ansible

Comments