From 8677a7986a6d54ae60861a07d312cc5fc5bfe46c Mon Sep 17 00:00:00 2001 From: Hinrikus Wolf <hinrikus@fsmpi.rwth-aachen.de> Date: Wed, 23 May 2018 18:38:00 +0200 Subject: [PATCH] refactor role, up to a reported bug --- uwsgi-python/tasks/app.yml | 430 ++++++++++++++++++------------------ uwsgi-python/tasks/main.yml | 13 +- 2 files changed, 223 insertions(+), 220 deletions(-) diff --git a/uwsgi-python/tasks/app.yml b/uwsgi-python/tasks/app.yml index c764126..2a3e8b6 100644 --- a/uwsgi-python/tasks/app.yml +++ b/uwsgi-python/tasks/app.yml @@ -1,213 +1,223 @@ --- +- debug: + msg: "app = {{ app }}" - -- name: ensure we have python 2 - apt: - name: "{{ item }}" - state: installed +- include_vars: "{{ item }}" with_items: - - python - - python-dev - - python-virtualenv - - uwsgi-plugin-python - - virtualenv - when: uwsgi_python == 2 - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have python 3 - apt: - name: "{{ item }}" - state: installed - with_items: - - python3 - - python3-dev - - python3-virtualenv - - uwsgi-plugin-python3 - - virtualenv - when: uwsgi_python == 3 - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- include: sqlite.yml - when: app_db == "sqlite" - -- include: mysql.yml - when: app_db == "mysql" - -- include: postgres.yml - when: app_db == "postgres" - -- name: ensure we have a group - group: - name: "{{ app_group }}" - system: yes - state: present - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have a user - user: - name: "{{ app_user }}" - group: "{{ app_group }}" - system: yes - home: "{{ app_home }}" - shell: /usr/bin/nologin - createhome: no - state: present - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure a temporary directory exists - template: - src: tmpfiles.conf.j2 - dest: "/etc/tmpfiles.d/10-{{ app_name }}.conf" - owner: root - group: root - mode: 0644 - notify: - - create tmpfiles - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have our uwsgi config file - template: - src: uwsgi.ini.j2 - dest: "/etc/uwsgi/apps/{{ app_instance }}.ini" - owner: root - group: root - mode: 0644 - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure additional software is installed - apt: name={{ item }} state=present - with_items: "{{ app_additional_software }}" - when: - - app_additional_software is defined - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure the deploy key is available - copy: - src: "{{ app_deploy_key }}" - dest: "/root/.ssh/{{ app_name }}" - owner: root - group: root - mode: 0600 - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -# https://github.com/ansible/ansible/issues/27699 -- name: ensure git module is able to clone - command: mount -o remount,exec /tmp - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have the program - git: - repo: "{{ app_git_url }}" - dest: "{{ app_path }}" - key_file: "/root/.ssh/{{ app_name }}" - version: "{{ app_git_version }}" - notify: - - restart uwsgi instance - register: git - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure git module is not able to clone anymore - command: mount -o remount,noexec /tmp - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have a virtualenv - pip: - requirements: "{{ app_path }}/requirements.txt" - virtualenv: "{{ app_venv }}" - virtualenv_python: "{{ app_python_version }}" - notify: - - restart uwsgi instance - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have our config - template: - src: "apps/{{ app_name }}.j2" - dest: "{{ app_path }}/{{ app_config_file }}" - owner: "{{ app_user }}" - group: "{{ app_group }}" - mode: 0640 - notify: - - restart uwsgi instance - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- name: ensure we have our secret config - template: - src: secret_config.py.j2 - dest: "{{ app_path }}/secret_config.py" - owner: "{{ app_user }}" - group: "{{ app_group }}" - mode: 0600 - force: no - notify: - - restart uwsgi instance - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - when: - - secret_config is defined - - secret_config == True - - -- include_tasks: "{{ item }}" - with_first_found: - - files: - - "apps/{{ app_name }}.yml" - skip: true - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - -- meta: flush_handlers - -- name: ensure the service is enabled - service: - name: "uwsgi@{{ app_instance }}" - enabled: yes - state: started - tags: - - uwsgi-app - - "{{ app_name }}" - - "{{ app_instance }}" - - + - "../vars/{{ app.app }}.yml" + - "{{ inventory_dir }}/vars/{{ app.app_vars }}" + tags: + - uwsgi-app + - "{{ app.app }}" + - "{{ app.instance }}" + # + #- name: ensure we have python 2 + # apt: + # name: "{{ item }}" + # state: installed + # with_items: + # - python + # - python-dev + # - python-virtualenv + # - uwsgi-plugin-python + # - virtualenv + # when: uwsgi_python == 2 + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have python 3 + # apt: + # name: "{{ item }}" + # state: installed + # with_items: + # - python3 + # - python3-dev + # - python3-virtualenv + # - uwsgi-plugin-python3 + # - virtualenv + # when: uwsgi_python == 3 + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- include: sqlite.yml + # when: app.db == "sqlite" + # + #- include: mysql.yml + # when: app.db == "mysql" + # + #- include: postgres.yml + # when: app.db == "postgres" + # + #- name: ensure we have a group + # group: + # name: "{{ app.group }}" + # system: yes + # state: present + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have a user + # user: + # name: "{{ app.user }}" + # group: "{{ app.group }}" + # system: yes + # home: "{{ app.home }}" + # shell: /usr/bin/nologin + # createhome: no + # state: present + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure a temporary directory exists + # template: + # src: tmpfiles.conf.j2 + # dest: "/etc/tmpfiles.d/10-{{ app.name }}.conf" + # owner: root + # group: root + # mode: 0644 + # notify: + # - create tmpfiles + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have our uwsgi config file + # template: + # src: uwsgi.ini.j2 + # dest: "/etc/uwsgi/apps/{{ app.instance }}.ini" + # owner: root + # group: root + # mode: 0644 + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure additional software is installed + # apt: name={{ item }} state=present + # with_items: "{{ app.additional_software }}" + # when: + # - app.additional_software is defined + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure the deploy key is available + # copy: + # src: "{{ app.deploy_key }}" + # dest: "/root/.ssh/{{ app.name }}" + # owner: root + # group: root + # mode: 0600 + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + ## https://github.com/ansible/ansible/issues/27699 + #- name: ensure git module is able to clone + # command: mount -o remount,exec /tmp + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have the program + # git: + # repo: "{{ app.git_url }}" + # dest: "{{ app.path }}" + # key_file: "/root/.ssh/{{ app.name }}" + # version: "{{ app.git_version }}" + # notify: + # - restart uwsgi instance + # register: git + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure git module is not able to clone anymore + # command: mount -o remount,noexec /tmp + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have a virtualenv + # pip: + # requirements: "{{ app.path }}/requirements.txt" + # virtualenv: "{{ app.venv }}" + # virtualenv_python: "{{ app.python_version }}" + # notify: + # - restart uwsgi instance + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have our config + # template: + # src: "apps/{{ app.name }}.j2" + # dest: "{{ app.path }}/{{ app.config_file }}" + # owner: "{{ app.user }}" + # group: "{{ app.group }}" + # mode: 0640 + # notify: + # - restart uwsgi instance + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- name: ensure we have our secret config + # template: + # src: secret_config.py.j2 + # dest: "{{ app.path }}/secret_config.py" + # owner: "{{ app.user }}" + # group: "{{ app.group }}" + # mode: 0600 + # force: no + # notify: + # - restart uwsgi instance + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # when: + # - secret_config is defined + # - secret_config == True + # + # + #- include_tasks: "{{ item }}" + # with_first_found: + # - files: + # - "apps/{{ app.name }}.yml" + # skip: true + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + #- meta: flush_handlers + # + #- name: ensure the service is enabled + # service: + # name: "uwsgi@{{ app.instance }}" + # enabled: yes + # state: started + # tags: + # - uwsgi-app + # - "{{ app.name }}" + # - "{{ app.instance }}" + # + # diff --git a/uwsgi-python/tasks/main.yml b/uwsgi-python/tasks/main.yml index b109e42..cfed4f1 100644 --- a/uwsgi-python/tasks/main.yml +++ b/uwsgi-python/tasks/main.yml @@ -34,15 +34,8 @@ - uwsgi - webservices -# TODO -# enthält webapps eine mehr-instanz-app mehrfach? wenn ja, ist ../vars/item.yml doof -# wenn nein, wie realisieren wir das? bsp: schildergenerator mit schilder, boxes -- include_tasks: app.yml - vars: - app_instance: instance #"{{ item.instance }}" - app_name: name #"{{ item.app }}" - vars_files: - - "../vars/{{ item.app }}.yml" - - "{{ inventory_dir }}/vars/{{ item.app_vars }}" +- include_tasks: app.yml with_items: "{{ webapps }}" + loop_control: + loop_var: app -- GitLab