Skip to content
Snippets Groups Projects
Select Git revision
  • f9b7fb3352b5a0934cc38832bbb1b67a9789ea2e
  • master default protected
  • date-parsing
  • v2.2.0
  • v2.1.0
  • v2.0.0
  • v1.0.0
  • v0.1.0
8 results

README.md

Blame
  • venv.sls 2.02 KiB
    {% from "deploy/map.jinja" import deploy with context %}
    
    include:
      - deploy.user
    
    deploy_venv_pkgs:
      pkg.installed:
        - pkgs: ['python3', 'virtualenv', 'python3-pip', 'python3-virtualenv', 'python3-venv']
    
    {% set group_members = [] %}
    {% for key in deploy.projects.keys() %}
    {% do group_members.append(key) %}
    {% endfor %}
    deploy_provision_virtualenv_group_with_members:
      group.present:
        - name: virtualenv
        - system: True
        - members: {{ group_members }}
    
    deploy_venv_directory:
      file.directory:
        - name: {{ deploy.config.venv_directory }}
        - user: root
        - group: virtualenv
        - mode: 2770
        - require:
          - group: virtualenv
    
    deploy_venv_pip_profile:
      file.managed:
        - name: /etc/profile.d/pip.sh
        - user: root
        - group: root
        - mode: 644
        - contents: |
            export PIP_TRUSTED_HOST='apt-proxy.it.hs-hannover.de'
            export PIP_INDEX_URL='http://apt-proxy.it.hs-hannover.de:3141/root/pypi/+simple/'
    
    {% for project_name, project_config in deploy.projects.items() if project_config.get('venv', False) %}
    {% set venv_config = project_config.venv %}
    
    create_{{ project_name }}_venv:
      cmd.run:
        - name: python3 -m venv {{ venv_config.path }}
        - onlyif: test ! -e {{ venv_config.path }}
        - runas: root
        - require:
            - file: deploy_venv_directory
            - pkg: deploy_venv_pkgs
    
    upgrade_pip_in_{{ project_name }}_venv:
      cmd.run:
        - name: {{ venv_config.path }}/bin/pip install --upgrade pip
        - runas: root
        - env:
            LANG: en_US.UTF-8
            LC_CTYPE: en_US.UTF-8
            LC_ALL: en_US.UTF-8
        - require:
            - cmd: create_{{ project_name }}_venv
            - file: deploy_venv_pip_profile
    
    install_requirements_in_{{ project_name }}_venv:
      cmd.run:
        - name: {{ venv_config.path }}/bin/pip install --upgrade -r {{ venv_config.requirements }}
        - runas: root
        - env:
            LANG: en_US.UTF-8
            LC_CTYPE: en_US.UTF-8
            LC_ALL: en_US.UTF-8
        - require:
            - cmd: upgrade_pip_in_{{ project_name }}_venv
            - file: deploy_venv_pip_profile
    
    {% endfor %}