Commit 92acf889 by Arbab Nazar Committed by GitHub

Merge pull request #3145 from edx/arbab/xqueue-rewrite

use YAML syntax to write ansible tasks
parents e9ad371e db8625ee
- name: "writing supervisor scripts - xqueue, xqueue consumer" ---
template: > - name: "Writing supervisor scripts - xqueue, xqueue consumer"
src={{ item }}.conf.j2 dest={{ supervisor_available_dir }}/{{ item }}.conf template:
owner={{ supervisor_user }} group={{ common_web_user }} mode=0644 src: "{{ item }}.conf.j2"
with_items: ['xqueue', 'xqueue_consumer'] dest: "{{ supervisor_available_dir }}/{{ item }}.conf"
owner: "{{ supervisor_user }}"
group: "{{ common_web_user }}"
mode: "0644"
with_items:
- xqueue
- xqueue_consumer
tags: tags:
- install - install
- install:configuration - install:configuration
- name: "enabling supervisor scripts - xqueue, xqueue consumer" - name: "Enabling supervisor scripts - xqueue, xqueue consumer"
file: > file:
src={{ supervisor_available_dir }}/{{ item }}.conf src: "{{ supervisor_available_dir }}/{{ item }}.conf"
dest={{ supervisor_cfg_dir }}/{{ item }}.conf dest: "{{ supervisor_cfg_dir }}/{{ item }}.conf"
owner={{ supervisor_user }} group={{ common_web_user }} owner: "{{ supervisor_user }}"
mode=0644 state=link force=yes group: "{{ common_web_user }}"
with_items: ['xqueue', 'xqueue_consumer'] mode: "0644"
state: link
force: yes
with_items:
- xqueue
- xqueue_consumer
when: not disable_edx_services when: not disable_edx_services
tags: tags:
- install - install
- install:configuration - install:configuration
- name: "add gunicorn configuration file" - name: Copy the configurations to the desired directory
template: > template:
src=xqueue_gunicorn.py.j2 dest={{ xqueue_app_dir }}/xqueue_gunicorn.py src: "{{ item.src }}"
become_user: "{{ xqueue_user }}" dest: "{{ xqueue_app_dir }}/{{ item.dest }}"
tags: mode: "{{ item.mode }}"
- install
- install:configuration
- name: create xqueue application config
template: src=xqueue.env.json.j2 dest={{ xqueue_app_dir }}/xqueue.env.json mode=0644
become_user: "{{ xqueue_user }}"
tags:
- install
- install:configuration
- name: create xqueue auth file
template: src=xqueue.auth.json.j2 dest={{ xqueue_app_dir }}/xqueue.auth.json mode=0644
become_user: "{{ xqueue_user }}" become_user: "{{ xqueue_user }}"
with_items:
- { src: 'xqueue_gunicorn.py.j2', dest: 'xqueue_gunicorn.py', mode: '0644' }
- { src: 'xqueue.env.json.j2', dest: 'xqueue.env.json', mode: '0644' }
- { src: 'xqueue.auth.json.j2', dest: 'xqueue.auth.json', mode: '0644' }
tags: tags:
- install - install
- install:configuration - install:configuration
# Do A Checkout # Do A Checkout
- name: git checkout xqueue repo into xqueue_code_dir - name: "Git checkout xqueue repo into {{ xqueue_code_dir }}"
git_2_0_1: > git_2_0_1:
dest={{ xqueue_code_dir }} repo={{ xqueue_source_repo }} version={{ xqueue_version }} repo: "{{ xqueue_source_repo }}"
accept_hostkey=yes dest: "{{ xqueue_code_dir }}"
version: "{{ xqueue_version }}"
accept_hostkey: yes
become_user: "{{ xqueue_user }}" become_user: "{{ xqueue_user }}"
register: xqueue_checkout register: xqueue_checkout
tags: tags:
- install - install
- install:code - install:code
# Install the python pre requirements and post requirements into {{ xqueue_venv_dir }}
# Install the python pre requirements into {{ xqueue_venv_dir }} - name: "Install python pre-requirements and post-requirements"
- name : install python pre-requirements pip:
pip: > requirements: "{{ item }}"
requirements="{{ xqueue_pre_requirements_file }}" virtualenv="{{ xqueue_venv_dir }}" state=present virtualenv: "{{ xqueue_venv_dir }}"
extra_args="-i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w" state: present
become_user: "{{ xqueue_user }}" extra_args: "-i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w"
tags:
- install
- install:app-requirements
# 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 }} --exists-action w"
become_user: "{{ xqueue_user }}" become_user: "{{ xqueue_user }}"
with_items:
- "{{ xqueue_pre_requirements_file }}"
- "{{ xqueue_post_requirements_file }}"
tags: tags:
- install - install
- install:app-requirements - install:app-requirements
# If there is a common user for migrations run migrations using his username # If there is a common user for migrations run migrations using his username
# and credentials. If not we use the xqueue mysql user # and credentials. If not we use the xqueue mysql user
- name: migrate - name: Migrate
shell: > shell: "SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py migrate --noinput --settings=xqueue.aws_migrate --pythonpath={{ xqueue_code_dir }}"
SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py migrate --noinput --settings=xqueue.aws_migrate --pythonpath={{ xqueue_code_dir }}
become_user: "{{ xqueue_user }}" become_user: "{{ xqueue_user }}"
environment: environment:
DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}" DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}"
...@@ -87,9 +85,8 @@ ...@@ -87,9 +85,8 @@
- migrate - migrate
- migrate:db - migrate:db
- name: create users - name: Create users
shell: > shell: "SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py update_users --settings=xqueue.aws_settings --pythonpath={{ xqueue_code_dir }}"
SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py update_users --settings=xqueue.aws_settings --pythonpath={{ xqueue_code_dir }}
become_user: "{{ xqueue_user }}" become_user: "{{ xqueue_user }}"
tags: tags:
- manage - manage
...@@ -100,45 +97,45 @@ ...@@ -100,45 +97,45 @@
# the services if any of the configurations # the services if any of the configurations
# have changed. # have changed.
# #
- name: update supervisor configuration - name: Update supervisor configuration
shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} update" shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} update"
register: supervisor_update register: supervisor_update
changed_when: supervisor_update.stdout is defined and supervisor_update.stdout != "" changed_when: supervisor_update.stdout is defined and supervisor_update.stdout != ""
when: not disable_edx_services when: not disable_edx_services
- name: ensure xqueue, consumer is running - name: Ensure xqueue, consumer is running
supervisorctl: > supervisorctl:
name={{ item }} name: "{{ item }}"
supervisorctl_path={{ supervisor_ctl }} supervisorctl_path: "{{ supervisor_ctl }}"
config={{ supervisor_cfg }} config: "{{ supervisor_cfg }}"
state=started state: started
with_items: with_items:
- xqueue - xqueue
- xqueue_consumer - xqueue_consumer
when: not disable_edx_services when: not disable_edx_services
tags: tags:
- manage - manage
- manage:start - manage:start
- name: create a symlink for venv python - name: Create a symlink for venv python
file: > file:
src="{{ xqueue_venv_bin }}/{{ item }}" src: "{{ xqueue_venv_bin }}/{{ item }}"
dest={{ COMMON_BIN_DIR }}/{{ item }}.xqueue dest: "{{ COMMON_BIN_DIR }}/{{ item }}.xqueue"
state=link state: link
with_items: with_items:
- python - python
- pip - pip
tags: tags:
- install - install
- install:app-requirements - install:app-requirements
- name: restart xqueue - name: Restart xqueue
supervisorctl: > supervisorctl:
name={{ item }} name: "{{ item }}"
supervisorctl_path={{ supervisor_ctl }} supervisorctl_path: "{{ supervisor_ctl }}"
config={{ supervisor_cfg }} config: "{{ supervisor_cfg }}"
state=restarted state: restarted
when: not disable_edx_services when: not disable_edx_services
with_items: with_items:
- xqueue - xqueue
- xqueue_consumer - xqueue_consumer
...@@ -5,23 +5,22 @@ ...@@ -5,23 +5,22 @@
# Check out xqueue repo to {{ xqueue_code_dir }} # Check out xqueue repo to {{ xqueue_code_dir }}
# #
# #
- name: Create application user
- name: create application user user:
user: > name: "{{ xqueue_user }}"
name="{{ xqueue_user }}" home: "{{ xqueue_app_dir }}"
home="{{ xqueue_app_dir }}" createhome: no
createhome=no shell: /bin/false
shell=/bin/false
tags: tags:
- install - install
- install:base - install:base
- name: create xqueue app and venv dir - name: Create xqueue app and venv dir
file: > file:
path="{{ item }}" path: "{{ item }}"
state=directory state: directory
owner="{{ xqueue_user }}" owner: "{{ xqueue_user }}"
group="{{ common_web_group }}" group: "{{ common_web_group }}"
with_items: with_items:
- "{{ xqueue_app_dir }}" - "{{ xqueue_app_dir }}"
- "{{ xqueue_venvs_dir }}" - "{{ xqueue_venvs_dir }}"
...@@ -29,14 +28,15 @@ ...@@ -29,14 +28,15 @@
- install - install
- install:base - install:base
- name: install a bunch of system packages on which xqueue relies - name: Install a bunch of system packages on which xqueue relies
apt: pkg={{','.join(xqueue_debian_pkgs)}} state=present apt:
name: "{{ item }}"
state: present
with_items: "{{ xqueue_debian_pkgs }}"
tags: tags:
- install - install
- install:system-requirements - install:system-requirements
- include: deploy.yml tags=deploy - include: deploy.yml
tags:
- deploy
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment