Make gva run with Poetry and logging
This commit is contained in:
		
							parent
							
								
									3ab7cc2e4c
								
							
						
					
					
						commit
						18f0061ee4
					
				
					 7 changed files with 81 additions and 104 deletions
				
			
		|  | @ -9,9 +9,9 @@ gnuviechadmin: | ||||||
|   database: |   database: | ||||||
|     host: pgsql |     host: pgsql | ||||||
|   gva: |   gva: | ||||||
|     django_secret_key: yBnbG4azhNaTxIW0/Rv2dEij9PcVU1KVR//1bR6LujmLBnZJw8OOrEi2dIqz3pyOdG8= |     django_secret_key: "yBnbG4azhNaTxIW0/Rv2dEij9PcVU1KVR//1bR6LujmLBnZJw8OOrEi2dIqz3pyOdG8=" | ||||||
|     fullname: Self Service Web Interface |     fullname: Self Service Web Interface | ||||||
|     git_branch: master |     git_branch: main | ||||||
|     git_url: https://git.dittberner.info/gnuviech/gva.git |     git_url: https://git.dittberner.info/gnuviech/gva.git | ||||||
|     url_mysql_admin: https://phpmyadmin.gva.local/ |     url_mysql_admin: https://phpmyadmin.gva.local/ | ||||||
|     url_pgsql_admin: https://phppgadmin.gva.local/ |     url_pgsql_admin: https://phppgadmin.gva.local/ | ||||||
|  |  | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
|  | --- | ||||||
| {% set gvaappname = salt['pillar.get']('gnuviechadmin:appname') %} | {% set gvaappname = salt['pillar.get']('gnuviechadmin:appname') %} | ||||||
| {% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %} | {% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %} | ||||||
| {% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %} | {% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %} | ||||||
| {% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %} | {% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %} | ||||||
| {% set venv = "{}/{}-venv".format(app_home, gvaappname) -%} |  | ||||||
| 
 | 
 | ||||||
| {% set amqp_user = salt['pillar.get']('gnuviechadmin:{}:amqp_user'.format(gvaappname), gvaappname) -%} | {% set amqp_user = salt['pillar.get']('gnuviechadmin:{}:amqp_user'.format(gvaappname), gvaappname) -%} | ||||||
| {% set checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%} | {% set checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%} | ||||||
|  | @ -13,8 +13,7 @@ | ||||||
| {% from 'gnuviechadmin/gvaapp_macros.sls' import gvaapp_base with context %} | {% from 'gnuviechadmin/gvaapp_macros.sls' import gvaapp_base with context %} | ||||||
| include: | include: | ||||||
| - base | - base | ||||||
| - python.pipenv | - python.poetry | ||||||
| - python.virtualenv |  | ||||||
| - uwsgi.python3 | - uwsgi.python3 | ||||||
| 
 | 
 | ||||||
| {{ gvaapp_base(gvaappname, 'uwsgi') }} | {{ gvaapp_base(gvaappname, 'uwsgi') }} | ||||||
|  | @ -25,39 +24,34 @@ include: | ||||||
|       - libpq-dev |       - libpq-dev | ||||||
|     - require_in: |     - require_in: | ||||||
|       - cmd: {{ gvaappname }}-requirements |       - cmd: {{ gvaappname }}-requirements | ||||||
|  |       - service: uwsgi | ||||||
| 
 | 
 | ||||||
| gettext: | gettext: | ||||||
|   pkg.installed |   pkg.installed | ||||||
| 
 | 
 | ||||||
| {{ checkout }}/.env: | {{ checkout }}/run{{ gvaappname }}: | ||||||
|   file.managed: |   file.managed: | ||||||
|     - user: {{ app_user }} |     - user: {{ app_user }} | ||||||
|     - group: {{ app_group }} |     - group: {{ app_group }} | ||||||
|     - mode: 0640 |     - mode: 0750 | ||||||
|     - source: salt://gnuviechadmin/{{ gvaappname }}/env-vars |     - source: salt://gnuviechadmin/{{ gvaappname }}/run.sh | ||||||
|     - template: jinja |     - template: jinja | ||||||
|     - context: |     - context: | ||||||
|         gvaappname: {{ gvaappname }} |  | ||||||
|         broker_url: amqp://{{ amqp_user }}:{{ salt['pillar.get']('gnuviechadmin:queues:users:{}:password'.format(amqp_user)) }}@{{ salt['pillar.get']('gnuviechadmin:amqp_host', 'mq') }}/{{ salt['pillar.get']('gnuviechadmin:queues:vhost') }} |         broker_url: amqp://{{ amqp_user }}:{{ salt['pillar.get']('gnuviechadmin:queues:users:{}:password'.format(amqp_user)) }}@{{ salt['pillar.get']('gnuviechadmin:amqp_host', 'mq') }}/{{ salt['pillar.get']('gnuviechadmin:queues:vhost') }} | ||||||
|         result_url: redis://:{{ salt['pillar.get']('gnuviechadmin:redis_password') }}@{{ salt['pillar.get']('gnuviechadmin:redis_host') }}/0 |         result_url: redis://:{{ salt['pillar.get']('gnuviechadmin:redis_password') }}@{{ salt['pillar.get']('gnuviechadmin:redis_host') }}/0 | ||||||
|  |         gvaappname: {{ gvaappname }} | ||||||
|  |         checkout: {{ checkout }} | ||||||
|     - require: |     - require: | ||||||
|       - user: {{ gvaappname }}-user |       - git: {{ gitrepo }} | ||||||
|       - group: {{ gvaappname }}-group |  | ||||||
|       - file: {{ checkout }} |  | ||||||
| 
 | 
 | ||||||
| {% for command in ['migrate --noinput', 'collectstatic --noinput', 'compilemessages'] %} | {% for command in ['migrate --noinput', 'collectstatic --noinput', 'compilemessages'] %} | ||||||
| {{ gvaappname }}-manage-{{ command }}: | {{ gvaappname }}-manage-{{ command }}: | ||||||
|   cmd.wait: |   cmd.wait: | ||||||
|     - name: /usr/local/bin/pipenv run python3 manage.py {{ command }} |     - name: {{ checkout }}/run{{ gvaappname }} {{ command }} | ||||||
|     - runas: {{ app_user }} |     - runas: {{ app_user }} | ||||||
|     - cwd: {{ checkout }}/gnuviechadmin |     - cwd: {{ checkout }}/gnuviechadmin | ||||||
|     - env: |  | ||||||
|       - VIRTUAL_ENV: "{{ venv }}" |  | ||||||
|       - LC_ALL: C.UTF-8 |  | ||||||
|       - LANG: C.UTF-8 |  | ||||||
|     - watch: |     - watch: | ||||||
|       - cmd: {{ gvaappname }}-requirements |       - cmd: {{ gvaappname }}-requirements | ||||||
|       - file: {{ checkout }}/.env |  | ||||||
|       {%- if update_git %} |       {%- if update_git %} | ||||||
|       - git: {{ gitrepo }} |       - git: {{ gitrepo }} | ||||||
|       {%- endif %} |       {%- endif %} | ||||||
|  | @ -75,8 +69,9 @@ gettext: | ||||||
|         broker_url: amqp://{{ amqp_user }}:{{ salt['pillar.get']('gnuviechadmin:queues:users:{}:password'.format(amqp_user)) }}@{{ salt['pillar.get']('gnuviechadmin:amqp_host', 'mq') }}/{{ salt['pillar.get']('gnuviechadmin:queues:vhost') }} |         broker_url: amqp://{{ amqp_user }}:{{ salt['pillar.get']('gnuviechadmin:queues:users:{}:password'.format(amqp_user)) }}@{{ salt['pillar.get']('gnuviechadmin:amqp_host', 'mq') }}/{{ salt['pillar.get']('gnuviechadmin:queues:vhost') }} | ||||||
|         result_url: redis://:{{ salt['pillar.get']('gnuviechadmin:redis_password') }}@{{ salt['pillar.get']('gnuviechadmin:redis_host') }}/0 |         result_url: redis://:{{ salt['pillar.get']('gnuviechadmin:redis_password') }}@{{ salt['pillar.get']('gnuviechadmin:redis_host') }}/0 | ||||||
|         workdir: {{ checkout }}/gnuviechadmin |         workdir: {{ checkout }}/gnuviechadmin | ||||||
|         venv: {{ venv }} |         venv: {{ checkout }}/.venv | ||||||
|     - require: |     - require: | ||||||
|  |       - group: {{ gvaappname }}-group | ||||||
|       - pkg: uwsgi |       - pkg: uwsgi | ||||||
|     - require_in: |     - require_in: | ||||||
|       - service: uwsgi |       - service: uwsgi | ||||||
|  |  | ||||||
							
								
								
									
										33
									
								
								states/gnuviechadmin/gva/run.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								states/gnuviechadmin/gva/run.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | set -e | ||||||
|  | cd "{{ checkout }}/gnuviechadmin" | ||||||
|  | 
 | ||||||
|  | export DJANGO_SETTINGS_MODULE=gnuviechadmin.settings | ||||||
|  | export GVA_ADMIN_EMAIL={{ salt['pillar.get']('gnuviechadmin:adminemail', 'admin@example.org') }} | ||||||
|  | export GVA_ADMIN_NAME={{ salt['pillar.get']('gnuviechadmin:adminname', 'Gnuviech Admin') }} | ||||||
|  | export GVA_BROKER_URL={{ broker_url }} | ||||||
|  | export GVA_DOMAIN_NAME={{ salt['pillar.get']('gnuviechadmin:{}:domainname'.format(gvaappname), 'service.localhost') }} | ||||||
|  | export GVA_LOG_FILE=/var/log/gnuviechadmin/{{ gvaappname }}.log | ||||||
|  | export GVA_MIN_OS_GID={{ salt['pillar.get']('gnuviechadmin:minosgid', 10000) }} | ||||||
|  | export GVA_MIN_OS_UID={{ salt['pillar.get']('gnuviechadmin:minosuid', 10000) }} | ||||||
|  | export GVA_OSUSER_DEFAULT_SHELL={{ salt['pillar.get']('gnuviechadmin:osuserdefaultshell', '/sbin/nologin') }} | ||||||
|  | export GVA_OSUSER_HOME_BASEPATH={{ salt['pillar.get']('gnuviechadmin:osuserhomedirbase', '/home') }} | ||||||
|  | export GVA_OSUSER_PREFIX={{ salt['pillar.get']('gnuviechadmin:osuserprefix', 'user') }} | ||||||
|  | export GVA_OSUSER_UPLOADSERVER={{ salt['pillar.get']('gnuviechadmin:uploadserver') }} | ||||||
|  | export GVA_PGSQL_DATABASE={{ salt['pillar.get']('gnuviechadmin:database:name') }} | ||||||
|  | export GVA_PGSQL_HOSTNAME={{ salt['pillar.get']('gnuviechadmin:database:host', 'localhost') }} | ||||||
|  | export GVA_PGSQL_PASSWORD={{ salt['pillar.get']('gnuviechadmin:database:owner:password') }} | ||||||
|  | export GVA_PGSQL_PORT={{ salt['pillar.get']('gnuviechadmin:database:port', 5432) }} | ||||||
|  | export GVA_PGSQL_USER={{ salt['pillar.get']('gnuviechadmin:database:owner:user', gvaappname ) }} | ||||||
|  | export GVA_RESULTS_REDIS_URL={{ result_url }} | ||||||
|  | export GVA_SITE_ADMINMAIL={{ salt['pillar.get']('gnuviechadmin:adminemail', 'admin@example.org') }} | ||||||
|  | export GVA_SITE_NAME={{ salt['pillar.get']('gnuviechadmin:sitename') }} | ||||||
|  | export GVA_SITE_SECRET={{ salt['pillar.get']('gnuviechadmin:{}:django_secret_key'.format(gvaappname)) }} | ||||||
|  | export GVA_URL_MYSQL_ADMIN={{ salt['pillar.get']('gnuviechadmin:{}:url_mysql_admin'.format(gvaappname)) }} | ||||||
|  | export GVA_URL_PGSQL_ADMIN={{ salt['pillar.get']('gnuviechadmin:{}:url_pgsql_admin'.format(gvaappname)) }} | ||||||
|  | export GVA_URL_WEBMAIL={{ salt['pillar.get']('gnuviechadmin:{}:url_webmail'.format(gvaappname)) }} | ||||||
|  | export LANG=C.UTF-8 | ||||||
|  | export LC_ALL=C.UTF-8 | ||||||
|  | 
 | ||||||
|  | {{ checkout }}/.venv/bin/python3 manage.py $* | ||||||
|  | @ -15,6 +15,7 @@ env = GVA_ADMIN_EMAIL={{ salt['pillar.get']('gnuviechadmin:adminemail', 'admin@e | ||||||
| env = GVA_ADMIN_NAME={{ salt['pillar.get']('gnuviechadmin:adminname', 'Gnuviech Admin') }} | env = GVA_ADMIN_NAME={{ salt['pillar.get']('gnuviechadmin:adminname', 'Gnuviech Admin') }} | ||||||
| env = GVA_BROKER_URL={{ broker_url }} | env = GVA_BROKER_URL={{ broker_url }} | ||||||
| env = GVA_DOMAIN_NAME={{ salt['pillar.get']('gnuviechadmin:{}:domainname'.format(gvaappname), 'service.localhost') }} | env = GVA_DOMAIN_NAME={{ salt['pillar.get']('gnuviechadmin:{}:domainname'.format(gvaappname), 'service.localhost') }} | ||||||
|  | env = GVA_LOG_FILE=/var/log/gnuviechadmin/{{ gvaappname }}.log | ||||||
| env = GVA_MIN_OS_GID={{ salt['pillar.get']('gnuviechadmin:minosgid', 10000) }} | env = GVA_MIN_OS_GID={{ salt['pillar.get']('gnuviechadmin:minosgid', 10000) }} | ||||||
| env = GVA_MIN_OS_UID={{ salt['pillar.get']('gnuviechadmin:minosuid', 10000) }} | env = GVA_MIN_OS_UID={{ salt['pillar.get']('gnuviechadmin:minosuid', 10000) }} | ||||||
| env = GVA_OSUSER_DEFAULT_SHELL={{ salt['pillar.get']('gnuviechadmin:osuserdefaultshell', '/sbin/nologin') }} | env = GVA_OSUSER_DEFAULT_SHELL={{ salt['pillar.get']('gnuviechadmin:osuserdefaultshell', '/sbin/nologin') }} | ||||||
|  |  | ||||||
|  | @ -2,12 +2,12 @@ | ||||||
| {% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %} | {% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %} | ||||||
| {% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %} | {% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %} | ||||||
| {% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %} | {% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %} | ||||||
| {% set venv = "{}/{}-venv".format(app_home, gvaappname) -%} |  | ||||||
| 
 | 
 | ||||||
| {% set appfullname = 'GNUViech Admin {} User'.format(salt['pillar.get']('gnuviechadmin:{}:fullname'.format(gvaappname))) -%} | {% set appfullname = 'GNUViech Admin {} User'.format(salt['pillar.get']('gnuviechadmin:{}:fullname'.format(gvaappname))) -%} | ||||||
| {% set update_git = salt['grains.get']('gnuviechadmin:update_git', True) %} | {% set update_git = salt['grains.get']('gnuviechadmin:update_git', True) %} | ||||||
| {% set gitrepo = salt['pillar.get']('gnuviechadmin:{}:git_url'.format(gvaappname), 'git:gnuviech/{}.git'.format(gvaappname)) -%} | {% set gitrepo = salt['pillar.get']('gnuviechadmin:{}:git_url'.format(gvaappname), 'git:gnuviech/{}.git'.format(gvaappname)) -%} | ||||||
| {% set checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%} | {% set checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%} | ||||||
|  | {% set venv = "{}/.venv".format(checkout) -%} | ||||||
| {% set deployment_key = '{}/.ssh/id_deployment'.format(app_home) -%} | {% set deployment_key = '{}/.ssh/id_deployment'.format(app_home) -%} | ||||||
| 
 | 
 | ||||||
| {% for host in salt['pillar.get']('gnuviechadmin:machines', {}) %} | {% for host in salt['pillar.get']('gnuviechadmin:machines', {}) %} | ||||||
|  | @ -45,52 +45,14 @@ gvabase-dependencies: | ||||||
|   pkg.installed: |   pkg.installed: | ||||||
|     - name: build-essential |     - name: build-essential | ||||||
| 
 | 
 | ||||||
| {% if update_git %} | /var/log/gnuviechadmin: | ||||||
| {{ app_home }}/.ssh: |  | ||||||
|   file.directory: |   file.directory: | ||||||
|     - user: {{ app_user }} |     - user: {{ app_user }} | ||||||
|     - group: {{ app_group }} |     - group: {{ app_group }} | ||||||
|     - mode: 0700 |     - mode: 0750 | ||||||
|     - require: |     - require: | ||||||
|       - user: {{ gvaappname }}-user |       - user: {{ gvaappname }}-user | ||||||
| 
 |       - group: {{ gvaappname }}-group | ||||||
| SSH Deployment Key: |  | ||||||
|   cmd.run: |  | ||||||
|     - name: ssh-keygen -t ed25519 -C "Deployment key for {{ gvaappname }}" -N "" -f {{ deployment_key }} |  | ||||||
|     - creates: {{ deployment_key }} |  | ||||||
|     - runas: {{ app_user }} |  | ||||||
|     - requires: |  | ||||||
|       - file: {{ app_home }}/.ssh |  | ||||||
|     - require_in: |  | ||||||
|       - git: {{ gitrepo }} |  | ||||||
| 
 |  | ||||||
| SSH known hosts configuration: |  | ||||||
|   file.managed: |  | ||||||
|     - name: {{ app_home }}/.ssh/known_hosts |  | ||||||
|     - user: {{ app_user }} |  | ||||||
|     - group: {{ app_group }} |  | ||||||
|     - mode: 0600 |  | ||||||
|     - contents_pillar: gnuviechadmin:ssh_known_hosts |  | ||||||
|     - require: |  | ||||||
|       - file: {{ app_home }}/.ssh |  | ||||||
|     - require_in: |  | ||||||
|       - git: {{ gitrepo }} |  | ||||||
| 
 |  | ||||||
| SSH configuration: |  | ||||||
|   file.managed: |  | ||||||
|     - name: {{ app_home }}/.ssh/config |  | ||||||
|     - user: {{ app_user }} |  | ||||||
|     - group: {{ app_group }} |  | ||||||
|     - mode: 0600 |  | ||||||
|     - source: salt://gnuviechadmin/ssh_deploy_config |  | ||||||
|     - template: jinja |  | ||||||
|     - context: |  | ||||||
|         key: {{ deployment_key }} |  | ||||||
|     - require: |  | ||||||
|       - file: {{ app_home }}/.ssh |  | ||||||
|     - require_in: |  | ||||||
|       - git: {{ gitrepo }} |  | ||||||
| {% endif %} |  | ||||||
| 
 | 
 | ||||||
| {{ checkout }}: | {{ checkout }}: | ||||||
|   file.directory: |   file.directory: | ||||||
|  | @ -106,6 +68,7 @@ SSH configuration: | ||||||
|     - user: {{ app_user }} |     - user: {{ app_user }} | ||||||
|     - target: {{ checkout }} |     - target: {{ checkout }} | ||||||
|     - rev: {{ salt['pillar.get']('gnuviechadmin:{}:git_branch'.format(gvaappname), 'production') }} |     - rev: {{ salt['pillar.get']('gnuviechadmin:{}:git_branch'.format(gvaappname), 'production') }} | ||||||
|  |     - force_clone: true | ||||||
|     - require: |     - require: | ||||||
|       - file: {{ checkout }} |       - file: {{ checkout }} | ||||||
|     - watch_in: |     - watch_in: | ||||||
|  | @ -113,55 +76,17 @@ SSH configuration: | ||||||
|       - service: {{ servicename }} |       - service: {{ servicename }} | ||||||
| {% endif %} | {% endif %} | ||||||
| 
 | 
 | ||||||
| rm -rf {{ venv }}: |  | ||||||
|   cmd.run: |  | ||||||
|     - runas: {{ app_user }} |  | ||||||
|     - unless: test -f {{ venv }}/bin/python3 |  | ||||||
|     - require: |  | ||||||
|       - user: {{ gvaappname }}-user |  | ||||||
| 
 |  | ||||||
| create-{{ gvaappname }}-venv: |  | ||||||
|   cmd.run: |  | ||||||
|     - name: python3 -m virtualenv --python=python3 {{ venv }} |  | ||||||
|     - runas: {{ app_user }} |  | ||||||
|     - unless: test -f {{ venv }}/bin/pip3 |  | ||||||
|     - require: |  | ||||||
|       - user: {{ gvaappname }}-user |  | ||||||
|       - python3-virtualenv-packages |  | ||||||
|     - watch_in: |  | ||||||
|       - cmd: update-{{ gvaappname }}-pip |  | ||||||
| 
 |  | ||||||
| update-{{ gvaappname }}-pip: |  | ||||||
|   cmd.wait: |  | ||||||
|     - name: {{ venv }}/bin/python3 -m pip install -U pip |  | ||||||
|     - runas: {{ app_user }} |  | ||||||
|     - require: |  | ||||||
|       - user: {{ gvaappname }}-user |  | ||||||
| 
 |  | ||||||
| {{ venv }}: |  | ||||||
|   file.directory: |  | ||||||
|     - user: {{ app_user }} |  | ||||||
|     - group: {{ app_group }} |  | ||||||
|     - require: |  | ||||||
|       - cmd: create-{{ gvaappname }}-venv |  | ||||||
|     - watch_in: |  | ||||||
|       - cmd: {{ gvaappname }}-requirements |  | ||||||
| 
 |  | ||||||
| {{ gvaappname }}-requirements: | {{ gvaappname }}-requirements: | ||||||
|   cmd.wait: |   cmd.wait: | ||||||
|     - name: /usr/local/bin/pipenv install --deploy |     - name: /usr/local/poetry/bin/poetry install | ||||||
|     - runas: {{ app_user }} |     - runas: {{ app_user }} | ||||||
|     - cwd: {{ checkout }} |     - cwd: {{ checkout }} | ||||||
|     - env: |     - env: | ||||||
|       - VIRTUAL_ENV: "{{ venv }}" |       - POETRY_VIRTUALENVS_IN_PROJECT: "true" | ||||||
|       - PIPENV_HIDE_EMOJIS: 1 |  | ||||||
|       - PIPENV_NOSPIN: 1 |  | ||||||
|       - PIPENV_COLORBLIND: 1 |  | ||||||
|       - LC_ALL: C.UTF-8 |       - LC_ALL: C.UTF-8 | ||||||
|       - LANG: C.UTF-8 |       - LANG: C.UTF-8 | ||||||
|     - require: |     - require: | ||||||
|       - cmd: install_pipenv |       - cmd: install_poetry | ||||||
|       - file: {{ venv }} |  | ||||||
|       {%- if update_git %} |       {%- if update_git %} | ||||||
|       - git: {{ gitrepo }} |       - git: {{ gitrepo }} | ||||||
|       {%- else %} |       {%- else %} | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								states/python/poetry.sls
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								states/python/poetry.sls
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | --- | ||||||
|  | curl: | ||||||
|  |   pkg.installed | ||||||
|  | 
 | ||||||
|  | python3: | ||||||
|  |   pkg.installed | ||||||
|  | 
 | ||||||
|  | poetry-preconditions: | ||||||
|  |   pkg.installed: | ||||||
|  |     - pkgs: | ||||||
|  |       - python3-wheel | ||||||
|  |       - python3-pip | ||||||
|  |       - python3-setuptools | ||||||
|  | 
 | ||||||
|  | install_poetry: | ||||||
|  |   cmd.run: | ||||||
|  |     - name: curl -sSL https://install.python-poetry.org | POETRY_VERSION={{ salt['grains.get']('python:poetry:version', '1.4.2') }} POETRY_HOME=/usr/local/poetry /usr/bin/python3 - | ||||||
|  |     - creates: /usr/local/poetry/bin/poetry | ||||||
|  |     - require: | ||||||
|  |       - id: poetry-preconditions | ||||||
|  |       - pkg: curl | ||||||
|  |       - pkg: python3 | ||||||
|  | @ -1,8 +1,9 @@ | ||||||
|  | --- | ||||||
| uwsgi: | uwsgi: | ||||||
|   pkg: |   pkg: | ||||||
|     - installed |     - installed | ||||||
|   service.running: |   service.running: | ||||||
|     - enable: True |     - enable: true | ||||||
|     - reload: True |     - reload: false | ||||||
|     - require: |     - require: | ||||||
|       - pkg: uwsgi |       - pkg: uwsgi | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue