ansibleでpyenvいれる(3日坊主)
- この記事はsolo_advent_calender 2016年12月3のものです。
こんにちは ショート advent calender3日目です。
ansibleでDjangoの開発環境を準備するために作りました。
pyenvで指定のバージョンのpythonをインストールするところまでです。
ディレクトリ構成はこんな感じです
pyenv/ ├── files │ └── bashrc ├── handlers │ └── main.yml └── tasks └── main.yml
bashrcをコピーする方式なので開発マシンに入ってbashrcを書き換えてもう一度実行すると初期状態にもどってしまうので、ファイルの存在を確認するようにしています。
tasks/main.yml
--- - name: clone pyenv become: False git: repo=git://github.com/yyuu/pyenv.git dest=~/.pyenv accept_hostkey=yes - name: check bashrc become: False stat: path=~/.bashrc register: is_bashrc ignore_errors: yes - name: copy bashrc become: False copy: src=bashrc dest=~/.bashrc notify: source bashrc when: not is_bashrc.stat.exists - name: check python version {{ python_version }} become: False shell: bash -lc "pyenv versions | grep {{ python_version }}" register: result ignore_errors: yes - name: install {{ python_version }} become: False shell: bash -lc "pyenv install {{ python_version }}" when: result|failed - name: set global {{ python_version }} become: False shell: bash -lc "pyenv global {{ python_version }}"
handlers/main.yml
--- - name: source bashrc shell: bash -lc "source bashrc"
files/bashrc
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" fi # User specific aliases and functions
group_varsのall等に
# バージョンを指定する python_version: 2.7.11
を用意すれば
pyenvが開発環境にインストールされます。 あとはpipをインストールしてDjangoをpipでインストールすればDjangoを扱えるようになります。
この部分も後ほどansibleで書こうとおもいます。