Ansible ã§æ¨æºã®ãã¹ä»¥å¤ã®å ´æã«å ¥ãã Python ã使ç¨ãã
Ansible ã¯ããã©ã«ãã§ã¯ãªã¢ã¼ãã®ãã¹ãã«å
¥ã£ã¦ããæ¨æºã® python ã使ç¨ãã¾ãã
ããã virtualenv ç°å¢ãªã©ãæ¨æºã®ãã¹ä»¥å¤ã®å ´æã® python ã使ãããå ´åã«ã¯ãansible_python_interpreter 夿°ã§ python ã¤ã³ã¿ããªã¿ã®ãã¹ãæå®ããããã§ãã
List of Behavioral Inventory Parameters
http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters
vars: ansible_python_interpreter="/root/python-venv/bin/python"
ãã ãæå ã® CentOS 6.4 ç°å¢ã§ããã®æ¹æ³ã§ virtualenv ç°å¢ã® python ãæå®ããã¨ãããyum ã¢ã¸ã¥ã¼ã«ã使ã£ãç®æã§ä»¥ä¸ã®ãããªã¨ã©ã¼ãåºã¦ãã¾ãã¾ããã
TASK: [install mysql-server] ************************************************** failed: [192.0.2.1] => {"failed": true, "parsed": false} invalid output was: Traceback (most recent call last): File "/root/.ansible/tmp/ansible-1378480574.36-133423455605286/yum", line 26, in <module> import yum ImportError: No module named yum FATAL: all hosts have already failed -- aborting
ãã以å¤ã¯ä¸æãåããããªã®ã§ãyum ã¢ã¸ã¥ã¼ã«ã¾ã§ã¯æ¨æºã® pythonãvirtualenv ç°å¢ã使ãæã ããã¡ãã® pythonãã¨ããæãã§æå®ã§ããã°åé¿ã§ãããã
ä½ãæ¹æ³ã¯ãªããã¨èª¿ã¹ã¦ã¿ãã¨ããã1.2 ãã追å ããã set_fact ã使ãäºã§åé¿ãããã¨ãã§ãã¾ããã
set_fact - Set host facts from a task
http://docs.ansible.com/ansible/latest/set_fact_module.html
以ä¸ã®ãããªæãã§ãvirtualenv ç°å¢ã使ããã task ã®ç´åã§ set_fact ã使ç¨ã㦠ansible_python_interpreter 夿°ãæå®ãã¦ããã¾ãã
ã» ã» ã» - name: install mysql-server yum: name=mysql-server state=installed - name: start mysql action: service name=mysqld state=started enabled=yes # ããã§ python ã¤ã³ã¿ããªã¿ãåãæ¿ã - name: set ansible_python_interpreter set_fact: ansible_python_interpreter="/root/python-venv/bin/python" - name: create mysql_python_test database mysql_db: name=mysql_python_test state=present encoding=utf8 ã» ã» ã»
ããã§å ã»ã©ã®ã¨ã©ã¼ãåé¿ã§ããvirtualenv ç°å¢ã«å ¥ãã mysql-python ã使ç¨ã㦠mysql_db ã¢ã¸ã¥ã¼ã«ãå®è¡ãããã¨ãåºæ¥ã¾ããã
以ä¸ã«å®éã® playbook ãç½®ãã¦ããã¾ãã
https://github.com/akishin/ansible-playbooks/blob/master/snippets/virtualenv-mysql-python.yml
ããã»ã©ä½¿ãæ©ä¼ããªããã¨æãã¾ãããä½ãã®åèã«ãªãã°å¹¸ãã§ãã