VagrantにpipとPygmentsを入れて、Ansibleに組み込んだらみんな幸せになった話
railsでのドキュメント生成でpygmentsが必要になったんです
これらを入れていきます。
$ wget http://peak.telecommunity.com/dist/ez_setup.py $ python ez_setup.py $ easy_install #easy_installがインストールされてるか確認 error: No urls, filenames, or requirements specified (see --help) $ sudo easy_install pip $ sudo pip install pygments
easy_install→pip→pigmentsの順に入れましたが
pipはyum installできるため、easy_installは必要無いというオチでした
これで私の環境では華麗にドキュメントが生成されるようになりましたが
Ansibleに組み込めばみんなが幸せになれるよね!ということで
Ansibleのタスクにpip, pygmentsのロールを追加します。
- pip.yml
- name: install python-pip yum: name=python-pip enablerepo=epel
CentOS 標準のリポジトリでは提供されていないパッケージを、
yum コマンドでインストールすることを可能にするためにenablerepo=epelを指定。
- pygments.yml
- name: install pygments pip: name=Pygments
pipが入っていれば
Ansibleでpip installできちゃうんです。
- playbook.yml
- role: pip tags: [pip] - role: pygments tags: [pip, pygments]
pipがないとpygmentsはインストールできないので順番が大事でした。
pygmentsのtagsには依存関係としてpipを入れます。
vagrant provisionでdry runさせると
実際にはpipがインストールされないのでpip install pygmentsでこけます。
dry runでなければ問題ありません。
あとは個人がAnsibleをpullすればみんな幸せになれるね!やったね!
参考
プログラミング はじめる。: Easy_installのインストール
Welcome! — Pygments
pip - Manages Python library dependencies. — Ansible Documentation