diff --git a/playbooks/group_vars/all b/playbooks/group_vars/all index faefe4a..04f2525 100644 --- a/playbooks/group_vars/all +++ b/playbooks/group_vars/all @@ -3,6 +3,7 @@ app_base_dir: /opt/wwc log_base_dir: /mnt/logs venv_dir: /opt/edx platform_code_dir: $app_base_dir/edx-platform +os_name: ubuntu # these pathes are relative to the playbook dir # directory for secret settings (keys, etc) diff --git a/playbooks/roles/lms/tasks/main.yml b/playbooks/roles/lms/tasks/main.yml index df6aa67..bef70ff 100644 --- a/playbooks/roles/lms/tasks/main.yml +++ b/playbooks/roles/lms/tasks/main.yml @@ -76,7 +76,7 @@ ## Install the debian package requirements system-wide - name: store remote apt_repos list for ansible use - command: cat {{platform_code_dir}}/apt-repos.txt + command: cat {{ apt_sources_file }} register: apt_repos_list tags: - lms @@ -103,7 +103,7 @@ - install - name: store remote apt_packages list for ansible use - command: cat {{platform_code_dir}}/apt-packages.txt + command: cat {{ apt_packages_file }} register: apt_packages_list tags: - lms @@ -118,25 +118,42 @@ - cms - install -# Install the python requirements into $venv_dir -- name : install python pre-requirements - pip: requirements="{{platform_code_dir}}/pre-requirements.txt" virtualenv="{{venv_dir}}" state=present + +# Install the python modules into {{ venv_dir }} +- name : install base python packages using the shell + # Need to use shell rather than pip so that we can maintain the context of our current working directory; some + # requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly + # installs everything into that virtual environment. + shell: cd {{ platform_code_dir }} && {{ venv_dir }}/bin/pip install --use-mirrors -r {{ base_requirements_file }} + tags: + - lms + - cms + - install + + +# Install the python post requirements into {{ venv_dir }} +- name : install python post-requirements + pip: requirements="{{ post_requirements_file }}" virtualenv="{{venv_dir}}" state=present tags: - lms - cms - install -# Install the python modules into $venv_dir -- name : install python packages using the shell - #pip: requirements="{{platform_code_dir}}/requirements.txt" virtualenv="{{venv_dir}}" +# Install the final python modules into {{ venv_dir }} +- name : install python post-post requirements using the shell # Need to use shell rather than pip so that we can maintain the context of our current working directory; some # requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly # installs everything into that virtual environment. - shell: cd {{platform_code_dir}} && {{venv_dir}}/bin/pip install --use-mirrors -r {{platform_code_dir}}/requirements.txt + shell: cd {{ platform_code_dir }} && {{ venv_dir }}/bin/pip install --use-mirrors -r {{ item }} + with_items: + - {{ repo_requirements_file }} + - {{ github_requirements_file }} + - {{ local_requirements_file }} tags: - lms - cms - install + # Creates LMS upstart file - include: ../../gunicorn/tasks/upstart.yml service_variant=lms diff --git a/playbooks/roles/lms/vars/main.yml b/playbooks/roles/lms/vars/main.yml index eed1224..ce4c13e 100644 --- a/playbooks/roles/lms/vars/main.yml +++ b/playbooks/roles/lms/vars/main.yml @@ -4,6 +4,16 @@ lms_auth_config: {} lms_env_config: {} lms_source_repo: git@github.com:edx/edx-platform.git + +apt_sources_file: "{{ platform_code_dir }}/requirements/system/{{os_name}}/apt-repos.txt" +apt_packages_file: "{{ platform_code_dir }}/requirements/system/{{os_name}}/apt-packages.txt" + +local_requirements_file: "{{ platform_code_dir }}/requirements/local.txt" +post_requirements_file: "{{ platform_code_dir }}/requirements/post.txt" +base_requirements_file: "{{ platform_code_dir }}/requirements/base.txt" +github_requirements_file: "{{ platform_code_dir }}/requirements/github.txt" +repo_requirements_file: "{{ platform_code_dir }}/requirements/repo.txt" + lms_debian_pkgs: - apparmor-utils - aspell