Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jcigar@dev:/usr/local/etc/salt/pillar/venvs/ > cat python.sls
- venvs:
- python:
- harmonia:
- python_version: 2.7
- user: www-ias
- alienalert:
- python_version: 3.4
- user: www-iasaa
- bbpf:
- python_version: 3.4
- user: www-bbpf
- rodentia:
- python_version: 2.7
- user: www-rod
- formidabel:
- python_version: 2.7
- user: www-formicidae
- biodiversa:
- python_version: 2.7
- user: www-bdvsaweb
- epbrs:
- python_version: 2.7
- user: www-epbrs
- beescommunity:
- python_version: 2.7
- user: www-bees
- openup:
- python_version: 2.7
- user: www-openup
- tiny:
- python_version: 2.7
- user: www-generic
- jcigar@dev:/usr/local/etc/salt/states/venvs/ > cat init.sls
- include:
- - .python
- - .ruby
- jcigar@dev:/usr/local/etc/salt/states/venvs/ > cat macros.jinja
- {% macro venv_dir(venv_base, venv_full) -%}
- {{ venv_full }}_base:
- file.directory:
- - name: {{ venv_base }}
- - user: root
- - group: wheel
- - mode: 755
- - makedirs: True
- {{ venv_full }}_dir:
- file.directory:
- - name: {{ venv_full }}
- - user: {{ kwargs.get('user', 'root') }}
- - group: {{ kwargs.get('group', 'wheel') }}
- - mode: {{ kwargs.get('mode', 755) }}
- - makedirs: {{ kwargs.get('makedirs', True) }}
- - require:
- - file: {{ venv_base }}
- {%- endmacro %}
- jcigar@dev:/usr/local/etc/salt/states/venvs/python/ > cat init.sls
- include:
- {% for venv in salt['pillar.get']('venvs:python') %}
- - .{{ venv }}
- {% endfor %}
- jcigar@dev:/usr/local/etc/salt/states/venvs/python/ > ll
- total 88
- -rw-r--r-- 1 root wheel 1813 May 29 13:45 _template.sls
- -rw-r--r-- 1 root wheel 96 Apr 30 12:55 alienalert-requirements.txt
- -rw-r--r-- 1 root wheel 73 May 11 14:32 alienalert.sls
- -rw-r--r-- 1 root wheel 109 May 11 16:41 bbpf-requirements.txt
- -rw-r--r-- 1 root wheel 67 May 11 16:42 bbpf.sls
- -rw-r--r-- 1 root wheel 341 Jun 2 11:14 beescommunity-requirements.txt
- -rw-r--r-- 1 root wheel 76 Jun 2 11:14 beescommunity.sls
- -rw-r--r-- 1 root wheel 298 Jun 1 17:09 biodiversa-requirements.txt
- -rw-r--r-- 1 root wheel 73 Jun 1 17:09 biodiversa.sls
- -rw-r--r-- 1 root wheel 357 Jun 2 11:10 epbrs-requirements.txt
- -rw-r--r-- 1 root wheel 68 Jun 2 11:11 epbrs.sls
- -rw-r--r-- 1 root wheel 462 Jun 1 16:41 formidabel-requirements.txt
- -rw-r--r-- 1 root wheel 73 Jun 1 16:42 formidabel.sls
- -rw-r--r-- 1 root wheel 347 May 28 10:48 harmonia-requirements.txt
- -rw-r--r-- 1 root wheel 71 May 11 14:33 harmonia.sls
- -rw-r--r-- 1 root wheel 93 Jun 8 14:48 init.sls
- -rw-r--r-- 1 root wheel 0 May 11 12:14 map.jinja
- -rw-r--r-- 1 root wheel 91 Jun 3 15:11 openup-requirements.txt
- -rw-r--r-- 1 root wheel 69 Jun 3 15:10 openup.sls
- -rw-r--r-- 1 root wheel 293 May 28 17:09 rodentia-requirements.txt
- -rw-r--r-- 1 root wheel 71 May 28 17:09 rodentia.sls
- -rw-r--r-- 1 root wheel 32 Jun 4 11:19 tiny-requirements.txt
- -rw-r--r-- 1 root wheel 67 Jun 4 11:18 tiny.sls
- jcigar@dev:/usr/local/etc/salt/states/venvs/python/ > cat _template.sls
- {% import 'venvs/macros.jinja' as macros %}
- {% set args = salt['pillar.get']('venvs:python:{}'.format(venv)) %}
- {% set venv_base = salt['pillar.get']('venvs:lookup:base') %}
- {% set venv_full = '{}/{}'.format(venv_base, venv) %}
- include:
- - users.webapps.{{ args.user }}
- - pkgs.python
- - postgresql.client
- {{ macros.venv_dir(venv_base, venv_full, user=args.user, group=args.user) }}
- # Three steps approach:
- # - Create the virtualenv
- # - Upgrade pip to the last version
- # - Install the requirements (requirements.txt)
- {{ venv }}:
- virtualenv.managed:
- - name: {{ venv_full }}
- {% if args.python_version == 3.4 %}
- - venv_bin: /usr/local/bin/pyvenv-3.4
- {% elif args.python_version == 2.7 %}
- - venv_bin: /usr/local/bin/virtualenv-2.7
- {% endif %}
- - system_site_packages: False
- - user: {{ args.user }}
- - clear: True
- - require:
- - file: {{ venv_full }}
- - user: {{ args.user }}
- - pkg: {{ salt['pillar.get']('postgresql:lookup:pkg_client') }}
- {% if args.python_version == 3.4 %}
- - pkg: python34
- {% elif args.python_version == 2.7 %}
- - pkg: python27
- - pkg: py27-virtualenv
- {% endif %}
- {{ venv }}_upgrade_pip:
- cmd.run:
- - name: {{ venv_full }}/bin/pip --no-cache-dir install -U pip
- - user: {{ args.user }}
- - group: {{ args.user }}
- - require:
- - virtualenv: {{ venv }}
- {{ venv }}_requirements:
- virtualenv.managed:
- - name: {{ venv_full }}
- - requirements: salt://venvs/python/{{ venv }}-requirements.txt
- - user: {{ args.user }}
- - env_vars:
- PIP_CACHE_DIR: /tmp
- - watch:
- - cmd: {{ venv }}_upgrade_pip
- jcigar@dev:/usr/local/etc/salt/states/venvs/python/ > cat alienalert.sls
- {% extends "venvs/python/_template.sls" %}
- {% set venv = "alienalert" %}
- jcigar@dev:/usr/local/etc/salt/states/venvs/python/ > cat alienalert-requirements.txt
- Chameleon==2.16
- CherryPy==3.5.0
- Pillow==2.5.1
- SQLAlchemy==1.0.2
- py-bcrypt==0.4
- reportlab==3.1.8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement