Last active
October 15, 2020 14:42
-
-
Save deepbrook/9cfe4b703322f82607724c83555cd5ca to your computer and use it in GitHub Desktop.
OpenEDX Devstack Setup Ansible Playbooks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# usage: | |
# ansible-playbook juniper-master.yml | |
# | |
# Overwrite variables set in `vars` below by using the `-e/--extra-vars` flag. | |
# | |
# Installs devstack into the playbook's directory - overwrite by passing `-e install_dir=<your_dir>`. | |
--- | |
- hosts: 127.0.0.1 | |
connection: local | |
become: false | |
vars: | |
target_dir: "{{ install_dir|default(playbook_dir) }}" | |
env_vars: &env_vars | |
OPENEDX_RELEASE: ironwood.master | |
PATH: ./venv/bin:{{ lookup('env', 'PATH') }} | |
tasks: | |
- name: Create directories | |
file: | |
path: "{{ target_dir }}/{{ dir }}" | |
state: directory | |
mode: 0755 | |
loop: | |
- ironwood | |
- ironwood/src | |
loop_control: | |
loop_var: dir | |
- name: Clone devstack repository | |
git: | |
repo: https://github.com/edx/devstack | |
accept_hostkey: yes | |
version: ironwood.master | |
dest: "{{ target_dir }}/ironwood/devstack" | |
- name: Create virtualenv | |
command: | |
chdir: "{{ target_dir }}/ironwood/devstack" | |
cmd: virtualenv .venv -p python2.7 | |
creates: "{ target_dir }/ironwood/devstack/.venv" | |
- name: Run make targets | |
env: | |
*env_vars | |
command: | |
chdir: "{{ target_dir }}/ironwood/devstack" | |
cmd: make {{ target }} | |
loop_control: | |
loop_var: target | |
loop: | |
- dev.clone | |
- dev.checkout | |
- pull | |
- requirements | |
- dev.provision | |
- dev.up | |
changed_when: true | |
- name: Create .direnv file | |
copy: | |
content: "export OPENEDX_RELEASE=ironwood.master" | |
path: "{{ target_dir }}/ironwood/devstack/.direnv" | |
mode: 0755 | |
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# usage: | |
# ansible-playbook juniper-master.yml | |
# | |
# Overwrite variables set in `vars` below by using the `-e/--extra-vars` flag. | |
# | |
# By default, uses NFS on darwin systems. | |
# Defaults to python 3.6. | |
# Installs devstack into the playbook's directory - overwrite by passing `-e install_dir=<your_dir>`. | |
--- | |
- hosts: 127.0.0.1 | |
connection: local | |
become: false | |
vars: | |
target_dir: "{{ install_dir|default(playbook_dir) }}" | |
use_nfs: "{{ ansible_os_family == 'Darwin' }}" | |
venv_py: python3.6 | |
env_vars: &env_vars | |
# Uncomment this, if you'd like to pin the juniper release | |
# as opposed to using the latest commit at checkout. | |
# OPENEDX_RELEASE: juniper.master | |
PATH: ./.venv/bin:{{ lookup('env', 'PATH') }} | |
tasks: | |
- name: Create directories | |
file: | |
path: "{{ target_dir }}/{{ dir }}" | |
state: directory | |
mode: 0755 | |
loop: | |
- juniper | |
- juniper/src | |
loop_control: | |
loop_var: dir | |
- name: Clone devstack repository | |
git: | |
repo: https://github.com/edx/devstack | |
accept_hostkey: yes | |
version: master | |
dest: "{{ target_dir }}/juniper/devstack" | |
- name: Create virtualenv | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: virtualenv .venv -p {{ venv_py }} | |
creates: "{{ target_dir }}/juniper/devstack/.venv" | |
- name: Run make targets | |
environment: | |
*env_vars | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: make {{ target }} | |
loop_control: | |
loop_var: target | |
loop: | |
- requirements | |
- dev.clone | |
- dev.checkout | |
changed_when: true | |
- name: Pull Images | |
environment: | |
*env_vars | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: make dev.pull | |
changed_when: true | |
- name: Run NFS targets | |
environment: | |
*env_vars | |
block: | |
- name: Set up NFS (MacOS only) | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: make dev.nfs.setup | |
changed_when: true | |
- name: Run provisioning via NFS (MacOS only) | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: make dev.nfs.provision | |
changed_when: true | |
when: use_nfs | |
- name: Run provisioning (no NFS) | |
environment: | |
*env_vars | |
command: | |
chdir: "{{ target_dir }}/juniper/devstack" | |
cmd: make dev.provision | |
when: not use_nfs | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment