From f9e86b69f0c2354c0169219e8512958c4255d1e9 Mon Sep 17 00:00:00 2001 From: bax1489 <fabian.gallenkamp@uni-hamburg.de> Date: Thu, 29 Aug 2019 14:12:39 +0200 Subject: [PATCH] Added postgresql; Changed naming of subtasks; Created supervisor template; Added python 3.7 compatibility --- .gitignore | 1 + setup_otree.yml => configure_otree.yml | 29 +++++++++++++++---------- configure_postgresql.yml | 16 +++++++------- configure_supervisor.yml | 1 + setup_firewall.yml => configure_ufw.yml | 0 site.yml | 15 ++++++++++--- 6 files changed, 40 insertions(+), 22 deletions(-) rename setup_otree.yml => configure_otree.yml (81%) create mode 100644 configure_supervisor.yml rename setup_firewall.yml => configure_ufw.yml (100%) diff --git a/.gitignore b/.gitignore index d335928..7999768 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ group_vars/otree_servers.yml files/ *.retry *.swp +*.save diff --git a/setup_otree.yml b/configure_otree.yml similarity index 81% rename from setup_otree.yml rename to configure_otree.yml index cfc3b76..9a09c17 100644 --- a/setup_otree.yml +++ b/configure_otree.yml @@ -3,7 +3,7 @@ become: true hosts: all tasks: - #- name: create directory or clone + # create new project from given directory (in "files/$user") or clone project from given git-repository - name: remove old projects file: state: absent @@ -50,14 +50,24 @@ with_dict: "{{ otree_users }}" when: item.value.override and item.value.app_repo is not defined - # install python dependencies + # clear old venv directory since python.X -m venv --clear is only executed once on creation + - name: remove old venv + file: + state: absent + path: "/home/{{ item.key }}/.venv_otree/" + become: yes + become_user: "{{ item.key }}" + with_dict: "{{ otree_users }}" + when: item.value.override + + + # install python dependencies, otree and - name: install psycopg2 pip: name: psycopg2 - state: forcereinstall - #state: present + state: present virtualenv: "/home/{{ item.key }}/.venv_otree" - virtualenv_command: "/usr/bin/python3 -m venv" + virtualenv_command: "/usr/bin/python{{ '3.7' if item.value.pre_release else '3'}} -m venv" become: yes become_user: "{{ item.key }}" with_dict: "{{ otree_users }}" @@ -66,11 +76,10 @@ - name: install otree pip: name: otree - state: forcereinstall -# state: present + state: present extra_args: "{{ '--pre' if item.value.pre_release else '' }}" virtualenv: "/home/{{ item.key }}/.venv_otree" - virtualenv_command: "/usr/bin/python3 -m venv" + virtualenv_command: "/usr/bin/python{{ '3.7' if item.value.pre_release else '3'}} -m venv" become: yes become_user: "{{ item.key }}" with_dict: "{{ otree_users }}" @@ -81,7 +90,7 @@ state: present requirements: "/home/{{ item.key }}/otree/requirements.txt" virtualenv: "/home/{{ item.key }}/.venv_otree" - virtualenv_command: "/usr/bin/python3 -m venv" + virtualenv_command: "/usr/bin/python{{ '3.7' if item.value.pre_release else '3'}} -m venv" become: yes become_user: "{{ item.key }}" with_dict: "{{ otree_users }}" @@ -123,5 +132,3 @@ state: restarted with_dict: "{{ otree_users }}" # TODO: set up otree (create venv, install pip packages, adapt .bashrc, run resetdb - - diff --git a/configure_postgresql.yml b/configure_postgresql.yml index 8e437a7..43e9781 100644 --- a/configure_postgresql.yml +++ b/configure_postgresql.yml @@ -6,7 +6,7 @@ # enable PostgreSQL service - name: ensure postgres service is enabled and running service: - name:postgresql + name: postgresql state: started enabled: yes @@ -21,18 +21,18 @@ state: present with_dict: "{{ otree_users }}" when: item.value.override + become: yes + become_user: postgres - name: ensure users have access to the databases postgresql_user: db: "instance_{{ item.key }}" - name: "{{ item }}" - name: "{{ item }}" + name: "{{ item.key }}" + password: "{{ item.value.admin_pw }}" priv: ALL + role_attr_flags: NOSUPERUSER,NOCREATEDB state: present with_dict: "{{ otree_users }}" when: item.value.override - - - name: ensure users do not have unnecessary priviliges - postgresql_user: - role_attr_flags: NOSUPERUSER,NOCREATEDB - when: item.value.override + become: yes + become_user: postgres diff --git a/configure_supervisor.yml b/configure_supervisor.yml new file mode 100644 index 0000000..6eeb900 --- /dev/null +++ b/configure_supervisor.yml @@ -0,0 +1 @@ +FIXME: TODO diff --git a/setup_firewall.yml b/configure_ufw.yml similarity index 100% rename from setup_firewall.yml rename to configure_ufw.yml diff --git a/site.yml b/site.yml index c15f381..301b99c 100644 --- a/site.yml +++ b/site.yml @@ -10,6 +10,10 @@ - python3-pip - python3-dev - python3-venv + - python3.7 + - python3.7-dev + - python3.7-venv + - python-psycopg2 - libpq-dev - redis-server - git @@ -53,8 +57,13 @@ name: "{{ item }}" state: absent with_items: "{{ removed_users }}" - # TODO: remove supervisor configs + # FIXME: remove supervisor configs for deleted users + # add python repos, FIXME should be avoided by using recent unbuntu version + #- name: add ppa repository with python versions + # apt_repository: "ppa:deadsnakes/ppa" + # state: present + # install all apt packages - name: update package information apt: update_cache=yes @@ -66,5 +75,5 @@ - import_playbook: "configure_nginx.yml" - import_playbook: "configure_postgresql.yml" -- import_playbook: "setup_otree.yml" -- import_playbook: "setup_firewall.yml" +- import_playbook: "configure_otree.yml" +- import_playbook: "configure_ufw.yml" -- GitLab