diff --git a/group_vars/all/vars.yaml b/group_vars/all/vars.yaml index 44aee99313dd6fc6fb6000ba16433defa7790fc6..defee09cc7bac9a3268320e8cdafa35e28922686 100644 --- a/group_vars/all/vars.yaml +++ b/group_vars/all/vars.yaml @@ -1,4 +1,5 @@ --- + # Custom header dirty: "{{lookup('pipe', 'git diff --quiet || echo dirty')}}" ansible_header: | @@ -40,7 +41,8 @@ adm_subnet: 10.231.136.0/24 # # # # global server definitions -# mail_server: smtp.adm.crans.org +glob_smtp: smtp.adm.crans.org + glob_ldap: servers: - 172.16.10.1 diff --git a/group_vars/re2o.yml b/group_vars/re2o.yml new file mode 100644 index 0000000000000000000000000000000000000000..63ed9d985eb23894fcdd5d2b08b9fef7da00aa65 --- /dev/null +++ b/group_vars/re2o.yml @@ -0,0 +1,17 @@ +--- +glob_re2o: + django_secret_key: "{{ vault_re2o_django_secret_key }}" + aes_key: "{{ vault_re2o_aes_key }}" + admins: + - ('Root', 'root@crans.org') + allowed_hosts: + - 're2o.adm.crans.org' + - 'intranet.adm.crans.org' + from_email: "root@crans.org" + ldap: + master_password: "{{ vault_ldap_master_password }}" + uri: "ldap://re2o-ldap.adm.crans.org/" + dn: "cn=admin,dc=crans,dc=org" + database: + password: "{{ vault_re2o_db_password }}" + uri: "tealc.adm.crans.org" diff --git a/host_vars/re2o-newinfra.adm.crans.org.yml b/host_vars/re2o-newinfra.adm.crans.org.yml new file mode 100644 index 0000000000000000000000000000000000000000..9a00f5a18beea63f527f224ae13faef9e093f3a1 --- /dev/null +++ b/host_vars/re2o-newinfra.adm.crans.org.yml @@ -0,0 +1,12 @@ +--- +interfaces: + adm: eth0 + srv-nat: eth1 + + +loc_re2o: + owner: root + group: nounou + version: master + settings_local_owner: root + settings_local_group: nounou diff --git a/hosts b/hosts index 10cf9866328b010bce9685ace65062105b93132c..a875a9ee8edccd4075b6a1690280f429d08ce393 100644 --- a/hosts +++ b/hosts @@ -25,6 +25,9 @@ # [test_vm] # re2o-test.adm.crans.org +[re2o] +re2o-newinfra.adm.crans.org + [bdd] tealc.adm.crans.org @@ -62,6 +65,7 @@ jack.adm.crans.org routeur-sam.adm.crans.org routeur-daniel.adm.crans.org belenios # on changera plus tard +re2o-ldap.adm.crans.org [ovh_physical] sputnik.adm.crans.org diff --git a/plays/re2o.yml b/plays/re2o.yml new file mode 100755 index 0000000000000000000000000000000000000000..1aff13b2960940eacd9e1bf5802a26a4e2768392 --- /dev/null +++ b/plays/re2o.yml @@ -0,0 +1,7 @@ +#!/usr/bin/env ansible-playbook +--- +- hosts: re2o + vars: + re2o: "{{ glob_re2o | combine(loc_re2o) }}" + roles: + - re2o diff --git a/roles/re2o/tasks/main.yml b/roles/re2o/tasks/main.yml index 7ec7c9a4c9973fe076bc123386c9652beb4928fe..b16c0b552e2c6917c57e1d08c4d0f4bdba4df48f 100644 --- a/roles/re2o/tasks/main.yml +++ b/roles/re2o/tasks/main.yml @@ -14,7 +14,9 @@ - python3-dateutil - python3-djangorestframework - python3-django-reversion + - python3-django-ldapdb - python3-pip + - python3-pil - python3-crypto - python3-git - python3-psycopg2 @@ -32,7 +34,7 @@ executable: pip2 name: - django-bootstrap3 - - django-ldapdb==0.9.0 + - django-ldapdb==1.3.0 - django-macaddress - name: Install re2o pip3 dependancies @@ -40,7 +42,6 @@ executable: pip3 name: - django-bootstrap3 - - django-ldapdb==0.9.0 - django-macaddress - name: Create re2o directory diff --git a/roles/re2o/templates/re2o/settings_local.py.j2 b/roles/re2o/templates/re2o/settings_local.py.j2 index a11c957f36a1caa3e0be53ea66fda1463ebf2335..4c45eed11c60a6626cea8eaca091d81c3fa4cd71 100644 --- a/roles/re2o/templates/re2o/settings_local.py.j2 +++ b/roles/re2o/templates/re2o/settings_local.py.j2 @@ -7,7 +7,7 @@ from __future__ import unicode_literals SECRET_KEY = '{{ re2o.django_secret_key }}' # The password to access the project database -DB_PASSWORD = '{{ re2o.db_password }}' +DB_PASSWORD = '{{ re2o.database.password }}' # AES key for secret key encryption. # The length must be a multiple of 16 @@ -18,10 +18,10 @@ AES_KEY = '{{ re2o.aes_key }}' DEBUG = False # A list of admins of the services. Receive mails when an error occurs -ADMINS = [('Root', 'root@crans.org')] +ADMINS = [{% for admin in re2o.admins %}{{ admin }}, {% endfor %}] # The list of hostname the server will respond to. -ALLOWED_HOSTS = ['re2o.crans.org', 're2o.adm.crans.org', 'intranet.crans.org', 'intranet.adm.crans.org', 're2o-srv.crans.org', 're2o-srv.adm.crans.org', 'intranet.switches.crans.org', 're2o.switches.crans.org', 're2o-srv.switches.crans.org'] +ALLOWED_HOSTS = [{% for host in re2o.allowed_hosts %}'{{ host }}', {% endfor %}] # The time zone the server is runned in TIME_ZONE = 'Europe/Paris' @@ -33,7 +33,7 @@ DATABASES = { 'NAME': 're2o', 'USER': 're2o', 'PASSWORD': DB_PASSWORD, - 'HOST': 'pgsql.adm.crans.org', + 'HOST': '{{ re2o.database.uri }}', 'TEST': { 'CHARSET': 'utf8', 'COLLATION': 'utf8_general_ci' @@ -41,10 +41,10 @@ DATABASES = { }, 'ldap': { # The LDAP 'ENGINE': 'ldapdb.backends.ldap', - 'NAME': 'ldap://re2o-ldap.adm.crans.org/', - 'USER': 'cn=admin,dc=crans,dc=org', + 'NAME': '{{ re2o.ldap.uri }}', + 'USER': 'cn=admin,{{ glob_ldap.base }}', 'TLS': False, - 'PASSWORD': '{{ ldap.master_password }}', + 'PASSWORD': '{{ re2o.ldap.master_password }}', } } @@ -62,19 +62,19 @@ SESSION_COOKIE_AGE = 60 * 60 * 3 LOGO_PATH = "static_files/logo.png" # The mail configuration for Re2o to send mails -SERVER_EMAIL = 'root@crans.org' # The mail address to use -EMAIL_HOST = 'smtp.adm.crans.org' # The host to use +SERVER_EMAIL = '{{ re2o.from_email }}' # The mail address to use +EMAIL_HOST = '{{ glob_smtp }}' # The host to use EMAIL_PORT = 25 # The port to use # Settings of the LDAP structure LDAP = { - 'base_user_dn' : u'cn=Utilisateurs,dc=crans,dc=org', - 'base_userservice_dn' : u'ou=service-users,dc=crans,dc=org', - 'base_usergroup_dn' : u'ou=posix,ou=groups,dc=crans,dc=org', - 'base_userservicegroup_dn' : u'ou=services,ou=groups,dc=crans,dc=org', - 'base_dn' : 'dc=crans,dc=org', + 'base_user_dn': u'cn=Utilisateurs,{{ glob_ldap.base }}', + 'base_userservice_dn': u'ou=service-users,{{ glob_ldap.base }}', + 'base_usergroup_dn': u'ou=posix,ou=groups,{{ glob_ldap.base }}', + 'base_userservicegroup_dn': u'ou=services,ou=groups,{{ glob_ldap.base }}', + 'base_dn': '{{ glob_ldap.base }}', 'user_gid': 500, - } +} # A range of UID to use. Used in linux environement UID_RANGES = { @@ -87,7 +87,10 @@ GID_RANGES = { 'posix': [501, 600], } -CAPTIVE_IP_RANGE = "10.51.0.0/16" +# CAPTIVE_IP_RANGE = "10.51.0.0/16" + +# Some optionnal Re2o Apps +OPTIONNAL_APPS_RE2O = () # Some Django apps you want to add in you local project -OPTIONNAL_APPS = ('api',) +OPTIONNAL_APPS = OPTIONNAL_APPS_RE2O + ('api',)