- name: "writing supervisor scripts - xqueue, xqueue consumer" template: > src={{ item }}.conf.j2 dest={{ supervisor_available_dir }}/{{ item }}.conf owner={{ supervisor_user }} group={{ common_web_user }} mode=0644 with_items: ['xqueue', 'xqueue_consumer'] - name: "enabling supervisor scripts - xqueue, xqueue consumer" file: > src={{ supervisor_available_dir }}/{{ item }}.conf dest={{ supervisor_cfg_dir }}/{{ item }}.conf owner={{ supervisor_user }} group={{ common_web_user }} mode=0644 state=link force=yes with_items: ['xqueue', 'xqueue_consumer'] when: not disable_edx_services - name: create xqueue application config template: src=xqueue.env.json.j2 dest={{ xqueue_app_dir }}/xqueue.env.json mode=0644 sudo_user: "{{ xqueue_user }}" notify: - restart xqueue - name: create xqueue auth file template: src=xqueue.auth.json.j2 dest={{ xqueue_app_dir }}/xqueue.auth.json mode=0644 sudo_user: "{{ xqueue_user }}" notify: - restart xqueue # Do A Checkout - name: git checkout xqueue repo into xqueue_code_dir git: > dest={{ xqueue_code_dir }} repo={{ xqueue_source_repo }} version={{ xqueue_version }} accept_hostkey=yes sudo_user: "{{ xqueue_user }}" register: xqueue_checkout notify: - restart xqueue # Install the python pre requirements into {{ xqueue_venv_dir }} - name : install python pre-requirements pip: > requirements="{{ xqueue_pre_requirements_file }}" virtualenv="{{ xqueue_venv_dir }}" state=present extra_args="-i {{ COMMON_PYPI_MIRROR_URL }}" sudo_user: "{{ xqueue_user }}" notify: - restart xqueue # Install the python post requirements into {{ xqueue_venv_dir }} - name : install python post-requirements pip: > requirements="{{ xqueue_post_requirements_file }}" virtualenv="{{ xqueue_venv_dir }}" state=present extra_args="-i {{ COMMON_PYPI_MIRROR_URL }}" sudo_user: "{{ xqueue_user }}" notify: - restart xqueue # If there is a common user for migrations run migrations using his username # and credentials. If not we use the xqueue mysql user - name: syncdb and migrate shell: > SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py syncdb --migrate --noinput --settings=xqueue.aws_migrate --pythonpath={{ xqueue_code_dir }} sudo_user: "{{ xqueue_user }}" environment: DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}" DB_MIGRATION_PASS: "{{ COMMON_MYSQL_MIGRATE_PASS }}" when: migrate_db is defined and migrate_db|lower == "yes" and COMMON_MYSQL_MIGRATE_PASS notify: - restart xqueue - name: syncdb and migrate shell: > SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py syncdb --migrate --noinput --settings=xqueue.aws_settings --pythonpath={{ xqueue_code_dir }} sudo_user: "{{ xqueue_user }}" when: migrate_db is defined and migrate_db|lower == "yes" and not COMMON_MYSQL_MIGRATE_PASS notify: - restart xqueue - name: create users shell: > SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py update_users --settings=xqueue.aws_settings --pythonpath={{ xqueue_code_dir }} sudo_user: "{{ xqueue_user }}" notify: - restart xqueue # call supervisorctl update. this reloads # the supervisorctl config and restarts # the services if any of the configurations # have changed. # - name: update supervisor configuration shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} update" register: supervisor_update changed_when: supervisor_update.stdout is defined and supervisor_update.stdout != "" when: not disable_edx_services - name: ensure xqueue, consumer is running supervisorctl_local: > name={{ item }} supervisorctl_path={{ supervisor_ctl }} config={{ supervisor_cfg }} state=started with_items: - xqueue - xqueue_consumer when: not disable_edx_services - name: create a symlink for venv python file: > src="{{ xqueue_venv_bin }}/{{ item }}" dest={{ COMMON_BIN_DIR }}/{{ item }}.xqueue state=link with_items: - python - pip - include: tag_ec2.yml tags=deploy when: COMMON_TAG_EC2_INSTANCE - set_fact: xqueue_installed=true