Implement proper provisioning for gvaldap
- merge improvements from the internal saltstack repository - define dummy secrets in the pillars - use systemd to setup the gvaldap celery worker
This commit is contained in:
parent
8d78388915
commit
7381b5bfd8
21 changed files with 306 additions and 44 deletions
|
@ -2,10 +2,17 @@ include:
|
||||||
- gnuviechadmin
|
- gnuviechadmin
|
||||||
- gnuviechadmin.queues.common
|
- gnuviechadmin.queues.common
|
||||||
- gnuviechadmin.queues.gvaldap
|
- gnuviechadmin.queues.gvaldap
|
||||||
|
- ldapserver
|
||||||
|
|
||||||
gnuviechadmin:
|
gnuviechadmin:
|
||||||
component:
|
component:
|
||||||
name: gvaldap
|
name: gvaldap
|
||||||
amqp_user: ldap
|
amqp_user: ldap
|
||||||
ldap_admin_user: ldapadmin
|
ldap_admin_user: ldapadmin
|
||||||
|
ldap_admin_password: NnVnGoWBVw6BKb9DhTwHAz0ICrdiDy+HL1A6F2Rz
|
||||||
allowed_hosts: 127.0.0.1,gvaldap.local,localhost
|
allowed_hosts: 127.0.0.1,gvaldap.local,localhost
|
||||||
|
gvaldap:
|
||||||
|
git_url: https://git.dittberner.info/gnuviech/gvaldap.git
|
||||||
|
git_branch: master
|
||||||
|
celery_module: ldaptasks
|
||||||
|
django_secret_key: IyOiTDt2DMo4gBVTwZ+E2p+mI1S/rNzZVIFlSr6TpgtxtsJODOVWHaxgVW3FqGZVaFU=
|
||||||
|
|
|
@ -8,3 +8,4 @@ gnuviechadmin:
|
||||||
name: gvamysql
|
name: gvamysql
|
||||||
amqp_user: mysql
|
amqp_user: mysql
|
||||||
mysql_admin_user: gvamysql
|
mysql_admin_user: gvamysql
|
||||||
|
mysql_admin_password: jSXstgT/AbWofdI2tJWYpQvFX1mtxt4tFMlrYxSA
|
||||||
|
|
|
@ -7,4 +7,5 @@ gnuviechadmin:
|
||||||
component:
|
component:
|
||||||
name: gvapgsql
|
name: gvapgsql
|
||||||
amqp_user: pgsql
|
amqp_user: pgsql
|
||||||
postgresql_admin_user: gvapgsql
|
pgsql_admin_user: gvapgsql
|
||||||
|
pgsql_admin_password: AAv6d1t9p/vtX/kVorim2MJROQfQPWJoZP3mzyMW
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
gnuviechadmin:
|
gnuviechadmin:
|
||||||
|
ssh_known_hosts: |
|
||||||
|
nextgit.gnuviech-server.de ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBESb6Q0nyvx82wJ0S6Jx7ZvY6wJzuwqh2zWOlXzLDcor8Pu5iLqUn5GywS0ooyl3Hkyn983R6Zdr49zgTroRwQA=
|
||||||
deploymenttype: local
|
deploymenttype: local
|
||||||
mailfrom: admin@gnuviech-server.de
|
mailfrom: admin@gnuviech-server.de
|
||||||
adminemail: admin@gnuviech-server.de
|
adminemail: admin@gnuviech-server.de
|
||||||
|
@ -18,6 +20,7 @@ gnuviechadmin:
|
||||||
ldap_users_ou: users
|
ldap_users_ou: users
|
||||||
redis_password: j2gfWeACPrj0R2xkgv4KAznCM9nCuUb4
|
redis_password: j2gfWeACPrj0R2xkgv4KAznCM9nCuUb4
|
||||||
redis_host: gva.local
|
redis_host: gva.local
|
||||||
|
django_secret_key: yBnbG4azhNaTxIW0/Rv2dEij9PcVU1KVR//1bR6LujmLBnZJw8OOrEi2dIqz3pyOdG8=
|
||||||
machines:
|
machines:
|
||||||
gva.local:
|
gva.local:
|
||||||
ip: 172.16.3.2
|
ip: 172.16.3.2
|
||||||
|
|
2
pillar/ldapserver.sls
Normal file
2
pillar/ldapserver.sls
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
slapd:
|
||||||
|
admin_password: W3HelITKNF1jR5YoCCsbQzkktf61ylXb8xEEAFqU
|
12
states/gnuviechadmin/celery-worker.service
Normal file
12
states/gnuviechadmin/celery-worker.service
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[Unit]
|
||||||
|
Description={{ description }}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=-/etc/default/{{ appname }}
|
||||||
|
ExecStart={{ virtualenv }}/bin/celery worker -A {{ celery_module }} -Q {{ amqpname }} --loglevel=INFO
|
||||||
|
Restart=on-failure
|
||||||
|
User={{ app_user }}
|
||||||
|
WorkingDirectory={{ checkout }}/{{ appname }}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -10,7 +10,7 @@ export GVA_PGSQL_HOSTNAME="{{ salt['pillar.get']('gnuviechadmin:database:host')
|
||||||
export GVA_PGSQL_PORT={{ salt['pillar.get']('gnuviechadmin:database:port') }}
|
export GVA_PGSQL_PORT={{ salt['pillar.get']('gnuviechadmin:database:port') }}
|
||||||
export GVA_DOMAIN_NAME="{{ salt['pillar.get']('gnuviechadmin:domainname') }}"
|
export GVA_DOMAIN_NAME="{{ salt['pillar.get']('gnuviechadmin:domainname') }}"
|
||||||
export GVA_SITE_NAME="{{ salt['pillar.get']('gnuviechadmin:sitename') }}"
|
export GVA_SITE_NAME="{{ salt['pillar.get']('gnuviechadmin:sitename') }}"
|
||||||
export GVA_SITE_SECRET="{{ salt['grains.get_or_set_hash']('gnuviechadmin:SECRET_KEY', 50) }}"
|
export GVA_SITE_SECRET="{{ salt['pillar.get']('gnuviechadmin:django_secret_key') }}"
|
||||||
export GVA_SITE_ADMINMAIL="{{ salt['pillar.get']('gnuviechadmin:adminemail') }}"
|
export GVA_SITE_ADMINMAIL="{{ salt['pillar.get']('gnuviechadmin:adminemail') }}"
|
||||||
export GVA_MIN_OS_UID={{ salt['pillar.get']('gnuviechadmin:minosuid') }}
|
export GVA_MIN_OS_UID={{ salt['pillar.get']('gnuviechadmin:minosuid') }}
|
||||||
export GVA_MIN_OS_GID={{ salt['pillar.get']('gnuviechadmin:minosgid') }}
|
export GVA_MIN_OS_GID={{ salt['pillar.get']('gnuviechadmin:minosgid') }}
|
||||||
|
|
225
states/gnuviechadmin/gvaapp_macros.sls
Normal file
225
states/gnuviechadmin/gvaapp_macros.sls
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
{% macro gvaapp_base(gvaappname, servicename) -%}
|
||||||
|
include:
|
||||||
|
- python.pipenv
|
||||||
|
- python.virtualenv
|
||||||
|
|
||||||
|
{% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %}
|
||||||
|
{% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %}
|
||||||
|
{% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %}
|
||||||
|
{% set venv = "{}/{}-venv".format(app_home, gvaappname) -%}
|
||||||
|
|
||||||
|
{% set appfullname = 'GNUViech Admin {} User'.format(grains['gnuviechadmin']['fullname']) -%}
|
||||||
|
{% 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 checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%}
|
||||||
|
{% set deployment_key = '{}/.ssh/id_deployment'.format(app_home) -%}
|
||||||
|
|
||||||
|
{{ gvaappname }}-group:
|
||||||
|
group.present:
|
||||||
|
- name: {{ app_group }}
|
||||||
|
|
||||||
|
{{ gvaappname }}-user:
|
||||||
|
user.present:
|
||||||
|
- name: {{ app_user }}
|
||||||
|
- home: {{ app_home }}
|
||||||
|
- shell: /bin/bash
|
||||||
|
- fullname: {{ appfullname }}
|
||||||
|
- groups:
|
||||||
|
- {{ app_group }}
|
||||||
|
alias.present:
|
||||||
|
- target: root
|
||||||
|
|
||||||
|
gvabase-dependencies:
|
||||||
|
pkg.installed:
|
||||||
|
- name: build-essential
|
||||||
|
|
||||||
|
{% if update_git %}
|
||||||
|
{{ app_home }}/.ssh:
|
||||||
|
file.directory:
|
||||||
|
- user: {{ app_user }}
|
||||||
|
- group: {{ app_group }}
|
||||||
|
- mode: 0700
|
||||||
|
- require:
|
||||||
|
- user: {{ gvaappname }}-user
|
||||||
|
|
||||||
|
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 }}:
|
||||||
|
file.directory:
|
||||||
|
- user: {{ app_user }}
|
||||||
|
- group: {{ app_group }}
|
||||||
|
- mode: 0755
|
||||||
|
- require:
|
||||||
|
- user: {{ gvaappname }}-user
|
||||||
|
|
||||||
|
{% if update_git %}
|
||||||
|
{{ gitrepo }}:
|
||||||
|
git.latest:
|
||||||
|
- user: {{ app_user }}
|
||||||
|
- target: {{ checkout }}
|
||||||
|
- rev: {{ salt['pillar.get']('gnuviechadmin:{}:git_branch'.format(gvaappname), 'production') }}
|
||||||
|
- require:
|
||||||
|
- file: {{ checkout }}
|
||||||
|
- watch_in:
|
||||||
|
- cmd: {{ gvaappname }}-requirements
|
||||||
|
- service: {{ servicename }}
|
||||||
|
{% 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:
|
||||||
|
cmd.wait:
|
||||||
|
- name: /usr/local/bin/pipenv install --deploy
|
||||||
|
- runas: {{ app_user }}
|
||||||
|
- cwd: {{ checkout }}
|
||||||
|
- env:
|
||||||
|
- VIRTUAL_ENV: "{{ venv }}"
|
||||||
|
- PIPENV_HIDE_EMOJIS: 1
|
||||||
|
- PIPENV_NOSPIN: 1
|
||||||
|
- PIPENV_COLORBLIND: 1
|
||||||
|
- LC_ALL: C.UTF-8
|
||||||
|
- LANG: C.UTF-8
|
||||||
|
- require:
|
||||||
|
- cmd: install_pipenv
|
||||||
|
- file: {{ venv }}
|
||||||
|
{%- if update_git %}
|
||||||
|
- git: {{ gitrepo }}
|
||||||
|
{%- else %}
|
||||||
|
- file: {{ checkout }}
|
||||||
|
{%- endif %}
|
||||||
|
- pkg: gvabase-dependencies
|
||||||
|
- unless: test $(find {{ venv }} -type f -cnewer Pipfile.lock \! -name '*.pyc'|wc -l) -gt 0
|
||||||
|
- watch_in:
|
||||||
|
- service: {{ servicename }}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro create_celery_worker(gvaappname, purpose) %}
|
||||||
|
{% set app_home = salt['grains.get']('gnuviechadmin:home', '/home/{}'.format(gvaappname)) %}
|
||||||
|
{% set app_user = salt['grains.get']('gnuviechadmin:user', gvaappname) %}
|
||||||
|
{% set app_group = salt['grains.get']('gnuviechadmin:group', gvaappname) %}
|
||||||
|
|
||||||
|
{% set venv = "{}/{}-venv".format(app_home, gvaappname) -%}
|
||||||
|
{% set checkout = salt['grains.get']('gnuviechadmin:checkout', '/srv/{}'.format(gvaappname)) -%}
|
||||||
|
{% set gitrepo = salt['pillar.get']('gnuviechadmin:{}:git_url'.format(gvaappname), 'git:gnuviech/{}.git'.format(gvaappname)) -%}
|
||||||
|
{% set update_git = salt['grains.get']('gnuviechadmin:update_git', True) %}
|
||||||
|
|
||||||
|
{% set servicename = gvaappname + "-celery-worker" %}
|
||||||
|
{% set amqp_user = grains['gnuviechadmin']['amqpuser'] -%}
|
||||||
|
{{ gvaapp_base(gvaappname, servicename ) }}
|
||||||
|
/etc/default/{{ gvaappname }}:
|
||||||
|
file.managed:
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 0640
|
||||||
|
- source: salt://gnuviechadmin/{{ gvaappname }}/celery-worker.env
|
||||||
|
- template: jinja
|
||||||
|
- context:
|
||||||
|
virtualenv: {{ venv }}
|
||||||
|
checkout: {{ checkout }}
|
||||||
|
broker_url: amqp://{{ amqp_user }}:{{ salt['pillar.get']('gnuviechadmin-queues:users:' + amqp_user + ':password') }}@mq/{{ salt['pillar.get']('gnuviechadmin-queues:vhost') }}
|
||||||
|
- watch_in:
|
||||||
|
- service: {{ servicename }}
|
||||||
|
|
||||||
|
/etc/systemd/system/{{ servicename }}.service:
|
||||||
|
file.managed:
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 0640
|
||||||
|
- source: salt://gnuviechadmin/celery-worker.service
|
||||||
|
- template: jinja
|
||||||
|
- context:
|
||||||
|
virtualenv: {{ venv }}
|
||||||
|
checkout: {{ checkout }}
|
||||||
|
app_user: {{ app_user }}
|
||||||
|
appname: {{ gvaappname }}
|
||||||
|
celery_module: {{ salt['pillar.get']('gnuviechadmin:{}:celery_module'.format(gvaappname), gvaappname) }}
|
||||||
|
amqpname: {{ amqp_user }}
|
||||||
|
description: Gnuviechadmin celery worker {{ purpose|default(gvaappname) }}
|
||||||
|
- watch_in:
|
||||||
|
- service: {{ servicename }}
|
||||||
|
|
||||||
|
{{ servicename }}:
|
||||||
|
service.running:
|
||||||
|
- enable: True
|
||||||
|
- require:
|
||||||
|
- file: {{ venv }}
|
||||||
|
{%- if update_git %}
|
||||||
|
- git: {{ gitrepo }}
|
||||||
|
{%- else %}
|
||||||
|
- file: {{ checkout }}
|
||||||
|
{%- endif %}
|
||||||
|
- file: /etc/systemd/system/{{ servicename }}.service
|
||||||
|
- watch:
|
||||||
|
- cmd: {{ gvaappname }}-requirements
|
||||||
|
{%- if update_git %}
|
||||||
|
- git: {{ gitrepo }}
|
||||||
|
{%- endif %}
|
||||||
|
{% endmacro %}
|
|
@ -1,15 +1,15 @@
|
||||||
include:
|
{% set gvaappname = salt['grains.get']('gnuviechadmin:appname') %}
|
||||||
- gnuviechadmin.base
|
{% set purpose = "for LDAP data management" %}
|
||||||
- gnuviechadmin.django
|
{% from 'gnuviechadmin/gvaapp_macros.sls' import create_celery_worker with context %}
|
||||||
- gnuviechadmin.celery
|
{{ create_celery_worker(gvaappname, purpose) }}
|
||||||
|
|
||||||
gvaldap-packages:
|
{{ gvaappname }}-dependencies:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs:
|
- pkgs:
|
||||||
- libldap2-dev
|
- libldap2-dev
|
||||||
- libsasl2-dev
|
- libsasl2-dev
|
||||||
- require_in:
|
- require_in:
|
||||||
- pkg: gnuviechadmin-packages
|
- cmd: {{ gvaappname }}-requirements
|
||||||
|
|
||||||
base-ldap-objects:
|
base-ldap-objects:
|
||||||
cmd.script:
|
cmd.script:
|
||||||
|
|
13
states/gnuviechadmin/gvaldap/celery-worker.env
Normal file
13
states/gnuviechadmin/gvaldap/celery-worker.env
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
DJANGO_SETTINGS_MODULE="gvaldap.settings"
|
||||||
|
GVALDAP_ADMIN_EMAIL="{{ salt['pillar.get']('gnuviechadmin-gvaldap:admin_email') }}"
|
||||||
|
GVALDAP_ADMIN_NAME="{{ salt['pillar.get']('gnuviechadmin-gvaldap:admin_name') }}"
|
||||||
|
GVALDAP_ALLOWED_HOSTS="{{ salt['pillar.get']('gnuviechadmin-gvaldap:allowed_hosts') }}"
|
||||||
|
GVALDAP_BASEDN_GROUP="{{ salt['pillar.get']('gnuviechadmin-gvaldap:basedn_group') }}"
|
||||||
|
GVALDAP_BASEDN_USER="{{ salt['pillar.get']('gnuviechadmin-gvaldap:basedn_user') }}"
|
||||||
|
GVALDAP_BROKER_URL="{{ broker_url }}"
|
||||||
|
GVALDAP_RESULTS_REDIS_URL="{{ 'redis://:{}@{}/0'.format(salt['pillar.get']('gnviechadmin:redis_password'), salt['pillar.get']('gnuviechadmin:redis_host')) }}"
|
||||||
|
GVALDAP_LDAP_PASSWORD="{{ salt['pillar.get']('gnuviechadmin-gvaldap:ldap_password' ) }}"
|
||||||
|
GVALDAP_LDAP_URL="{{ salt['pillar.get']('gnuviechadmin-gvaldap:ldap_url') }}"
|
||||||
|
GVALDAP_LDAP_USER="{{ salt['pillar.get']('gnuviechadmin-gvaldap:ldap_user') }}"
|
||||||
|
GVALDAP_SECRETKEY="{{ salt['pillar.get']('gnuviechadmin-gvaldap:django_secret_key') }}"
|
||||||
|
GVALDAP_SERVER_EMAIL="{{ salt['pillar.get']('gnuviechadmin-gvaldap:server_email') }}"
|
|
@ -6,6 +6,7 @@ set -e
|
||||||
{% set ldap_admin_user = salt['pillar.get']('gnuviechadmin:ldap_admin_user') %}
|
{% set ldap_admin_user = salt['pillar.get']('gnuviechadmin:ldap_admin_user') %}
|
||||||
{% set ldap_groups_ou = salt['pillar.get']('gnuviechadmin:ldap_groups_ou') %}
|
{% set ldap_groups_ou = salt['pillar.get']('gnuviechadmin:ldap_groups_ou') %}
|
||||||
{% set ldap_users_ou = salt['pillar.get']('gnuviechadmin:ldap_users_ou') %}
|
{% set ldap_users_ou = salt['pillar.get']('gnuviechadmin:ldap_users_ou') %}
|
||||||
|
{% set ldap_admin_password = salt['pillar.get']('gnuviechadmin:ldap_admin_password') %}
|
||||||
|
|
||||||
# setup password hashing for cleartext input
|
# setup password hashing for cleartext input
|
||||||
ldapadd -v -H ldapi:// -Y EXTERNAL -f /etc/ldap/schema/ppolicy.ldif
|
ldapadd -v -H ldapi:// -Y EXTERNAL -f /etc/ldap/schema/ppolicy.ldif
|
||||||
|
@ -48,7 +49,7 @@ olcAccess: {4}to *
|
||||||
EOD
|
EOD
|
||||||
|
|
||||||
# add OUs, groups and ldapadmin user
|
# add OUs, groups and ldapadmin user
|
||||||
ldapmodify -v -H {{ salt['pillar.get']('gnuviechadmin:ldap_url') }} -x -D "cn=admin,{{ base_dn }}" -w '{{ salt["grains.get_or_set_hash"]("slapd:password", 16) }}' <<EOD
|
ldapmodify -v -H {{ salt['pillar.get']('gnuviechadmin:ldap_url') }} -x -D "cn=admin,{{ base_dn }}" -w '{{ salt["pillar.get"]("slapd:admin_password") }}' <<EOD
|
||||||
dn: ou={{ ldap_users_ou }},{{ base_dn }}
|
dn: ou={{ ldap_users_ou }},{{ base_dn }}
|
||||||
changetype: add
|
changetype: add
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -87,5 +88,5 @@ objectClass: simpleSecurityObject
|
||||||
objectClass: organizationalRole
|
objectClass: organizationalRole
|
||||||
cn: {{ ldap_admin_user }}
|
cn: {{ ldap_admin_user }}
|
||||||
description: LDAP manager for celery worker
|
description: LDAP manager for celery worker
|
||||||
userPassword:: {{ salt['grains.get_or_set_hash']('gnuviechadmin.ldap_admin_password', 16).encode("base64") }}
|
userPassword:: {{ salt['hashutil.base64_b64encode'](ldap_admin_password) }}
|
||||||
EOD
|
EOD
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
. {{ home }}/gvasettings.sh
|
|
||||||
|
|
||||||
unset LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
|
|
||||||
LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
|
|
||||||
LC_IDENTIFICATION LC_ALL
|
|
||||||
|
|
||||||
cd {{ appdir }}
|
|
||||||
{{ virtualenv }}/bin/celery worker -A gvaldap -Q ldap --loglevel=INFO
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export DJANGO_SETTINGS_MODULE='gvaldap.settings.{{ salt['pillar.get']('gnuviechadmin:deploymenttype', 'production') }}'
|
|
||||||
export GVALDAP_ADMIN_NAME='Jan Dittberner'
|
|
||||||
export GVALDAP_ADMIN_EMAIL='{{ salt['pillar.get']('gnuviechadmin:adminemail') }}'
|
|
||||||
export GVALDAP_LDAP_URL='{{ salt['pillar.get']('gnuviechadmin:ldap_url') }}'
|
|
||||||
export GVALDAP_LDAP_USER='{{ 'cn=%s,%s' % (salt['pillar.get']('gnuviechadmin:ldap_admin_user'), salt['pillar.get']('gnuviechadmin:ldap_base_dn')) }}'
|
|
||||||
export GVALDAP_LDAP_PASSWORD='{{ salt['grains.get_or_set_hash']('gnuviechadmin.ldap_admin_password', 16) }}'
|
|
||||||
export GVALDAP_BASEDN_GROUP='{{ 'ou=%s,%s' % (salt['pillar.get']('gnuviechadmin:ldap_groups_ou'), salt['pillar.get']('gnuviechadmin:ldap_base_dn')) }}'
|
|
||||||
export GVALDAP_BASEDN_USER='{{ 'ou=%s,%s' % (salt['pillar.get']('gnuviechadmin:ldap_users_ou'), salt['pillar.get']('gnuviechadmin:ldap_base_dn')) }}'
|
|
||||||
export GVALDAP_SECRETKEY='{{ salt['grains.get_or_set_hash']('gnuviechadmin.secret_key', 50) }}'
|
|
||||||
export GVALDAP_BROKER_URL='{{ broker_url }}'
|
|
||||||
export GVALDAP_ALLOWED_HOSTS='{{ salt['pillar.get']('gnuviechadmin:allowed_hosts') }}'
|
|
||||||
export GVALDAP_SERVER_EMAIL='{{ salt['pillar.get']('gnuviechadmin:mailfrom') }}'
|
|
||||||
export GVALDAP_RESULTS_REDIS_URL="redis://:{{ salt['pillar.get']('gnuviechadmin:redis_password') }}@{{ salt['pillar.get']('gnuviechadmin:redis_host') }}/0"
|
|
|
@ -6,7 +6,7 @@ gvamysql-mysql-user:
|
||||||
mysql_user.present:
|
mysql_user.present:
|
||||||
- name: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}
|
- name: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}
|
||||||
- host: '%'
|
- host: '%'
|
||||||
- password: {{ salt['grains.get_or_set_hash']('gnuviechadmin.db_admin_password', 16) }}
|
- password: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_password') }}
|
||||||
|
|
||||||
gvamysql-grants-all-dbs:
|
gvamysql-grants-all-dbs:
|
||||||
mysql_grants.present:
|
mysql_grants.present:
|
||||||
|
@ -14,7 +14,7 @@ gvamysql-grants-all-dbs:
|
||||||
- database: '*.*'
|
- database: '*.*'
|
||||||
- grant_option: True
|
- grant_option: True
|
||||||
- user: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}
|
- user: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}
|
||||||
- password: {{ salt['grains.get_or_set_hash']('gnuviechadmin.db_admin_password', 16) }}
|
- password: {{ salt['pillar.get']('gnuviechadmin:mysql_admin_password') }}
|
||||||
- host: '%'
|
- host: '%'
|
||||||
- require:
|
- require:
|
||||||
- mysql_user: gvamysql-mysql-user
|
- mysql_user: gvamysql-mysql-user
|
||||||
|
|
|
@ -5,4 +5,4 @@ export GVAMYSQL_RESULTS_REDIS_URL="redis://:{{ salt['pillar.get']('gnuviechadmin
|
||||||
export GVAMYSQL_DBADMIN_HOST="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_host', 'localhost') }}"
|
export GVAMYSQL_DBADMIN_HOST="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_host', 'localhost') }}"
|
||||||
export GVAMYSQL_DBADMIN_PORT="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_port', 3306) }}"
|
export GVAMYSQL_DBADMIN_PORT="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_port', 3306) }}"
|
||||||
export GVAMYSQL_DBADMIN_USER="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}"
|
export GVAMYSQL_DBADMIN_USER="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_user', 'gvamysql') }}"
|
||||||
export GVAMYSQL_DBADMIN_PASSWORD="{{ salt['grains.get_or_set_hash']('gnuviechadmin.db_admin_password', 16) }}"
|
export GVAMYSQL_DBADMIN_PASSWORD="{{ salt['pillar.get']('gnuviechadmin:mysql_admin_password') }}"
|
||||||
|
|
|
@ -5,7 +5,7 @@ include:
|
||||||
gvapgsql-pgsql-user:
|
gvapgsql-pgsql-user:
|
||||||
postgres_user.present:
|
postgres_user.present:
|
||||||
- name: {{ salt['pillar.get']('gnuviechadmin:pgsql_admin_user', 'gvapgsql') }}
|
- name: {{ salt['pillar.get']('gnuviechadmin:pgsql_admin_user', 'gvapgsql') }}
|
||||||
- password: {{ salt['grains.get_or_set_hash']('gnuviechadmin.db_admin_password', 16) }}
|
- password: {{ salt['pillar.get']('gnuviechadmin:pgsql_admin_password') }}
|
||||||
- user: postgres
|
- user: postgres
|
||||||
- superuser: True
|
- superuser: True
|
||||||
- login: True
|
- login: True
|
||||||
|
|
|
@ -5,4 +5,4 @@ export GVAPGSQL_RESULTS_REDIS_URL="redis://:{{ salt['pillar.get']('gnuviechadmin
|
||||||
export GVAPGSQL_DBADMIN_HOST="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_host', 'localhost') }}"
|
export GVAPGSQL_DBADMIN_HOST="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_host', 'localhost') }}"
|
||||||
export GVAPGSQL_DBADMIN_PORT="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_port', 5432) }}"
|
export GVAPGSQL_DBADMIN_PORT="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_port', 5432) }}"
|
||||||
export GVAPGSQL_DBADMIN_USER="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_user', 'gvapgsql') }}"
|
export GVAPGSQL_DBADMIN_USER="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_user', 'gvapgsql') }}"
|
||||||
export GVAPGSQL_DBADMIN_PASSWORD="{{ salt['grains.get_or_set_hash']('gnuviechadmin.db_admin_password', 16) }}"
|
export GVAPGSQL_DBADMIN_PASSWORD="{{ salt['pillar.get']('gnuviechadmin:pgsql_admin_password') }}"
|
||||||
|
|
5
states/gnuviechadmin/ssh_deploy_config
Normal file
5
states/gnuviechadmin/ssh_deploy_config
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Host git
|
||||||
|
Hostname file
|
||||||
|
User gituser
|
||||||
|
IdentityFile {{ key }}
|
||||||
|
IdentitiesOnly yes
|
|
@ -3,8 +3,8 @@ ldapserver-packages:
|
||||||
- name: slapd
|
- name: slapd
|
||||||
- data:
|
- data:
|
||||||
'slapd/domain': {'type': 'string', 'value': '{{ salt["pillar.get"]("gnuviechadmin:ldap_domain") }}'}
|
'slapd/domain': {'type': 'string', 'value': '{{ salt["pillar.get"]("gnuviechadmin:ldap_domain") }}'}
|
||||||
'slapd/password1': {'type': 'string', 'value': '{{ salt["grains.get_or_set_hash"]("slapd:password", 16) }}'}
|
'slapd/password1': {'type': 'string', 'value': '{{ salt["pillar.get"]("slapd:admin_password") }}'}
|
||||||
'slapd/password2': {'type': 'string', 'value': '{{ salt["grains.get_or_set_hash"]("slapd:password", 16) }}'}
|
'slapd/password2': {'type': 'string', 'value': '{{ salt["pillar.get"]("slapd:admin_password") }}'}
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs:
|
- pkgs:
|
||||||
- ldap-utils
|
- ldap-utils
|
||||||
|
|
14
states/python/pipenv.sls
Normal file
14
states/python/pipenv.sls
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
pipenv-preconditions:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs:
|
||||||
|
- python3-wheel
|
||||||
|
- python3-pip
|
||||||
|
- python3-setuptools
|
||||||
|
|
||||||
|
install_pipenv:
|
||||||
|
cmd.run:
|
||||||
|
- name: python3 -m pip install -U --prefix /usr/local pipenv
|
||||||
|
- creates: /usr/local/bin/pipenv
|
||||||
|
- require:
|
||||||
|
- pipenv-preconditions
|
||||||
|
|
5
states/python/virtualenv.sls
Normal file
5
states/python/virtualenv.sls
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
python3-virtualenv-packages:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs:
|
||||||
|
- python3-dev
|
||||||
|
- python3-virtualenv
|
Loading…
Reference in a new issue