Open edX ironwood.master - Notes Installation Problem


I have installed Open edX release ironwood.master on AWS instance M5.XLarge by using the following guide:

The installation complete without any error. After that I tried to install notes tool by using the following guide:

The file /edx/app/edx_ansible/edx_ansible/playbooks/roles/edx_notes_api/defaults/main.yml don’t have the properties to change. For example: EDX_NOTES_API_CLIENT_SECRET is not there in the file. So I created my own configuration file at ~/config-notes.yml:

EDX_NOTES_API_SECRET_KEY: I put over 50 chars key
EDX_NOTES_API_CLIENT_ID: client id from the admin client configuration
EDX_NOTES_API_CLIENT_SECRET: client secret from the admin client configuration


  • localhost
  • lms.mydomain

Following is the error:

TASK [aws : Gather ec2 facts for use in other roles] ****************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {“failed”: true, “msg”: “The module ec2_metadata_facts was not found in configured module paths. Additionally, core modules are missing. If this is a checkout, run ‘git pull --rebase’ to correct this problem.”}
to retry, use: --limit @/edx/app/edx_ansible/edx_ansible/playbooks/notes.retry

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
localhost : ok=31 changed=3 unreachable=0 failed=1

Please help to resolve this issue. Thanks.

Hi mr. Mateen

Did you resolve this issue by any chance? I am getting same error


Hi @Melsu,

you can comment out aws role call to use this playbook against nonAWS instance.

I did not understand could you pls provide the exact command used? It will be great help thanks

$ cat ~/config-notes.yml
EDX_NOTES_API_VERSION: "open-release/ironwood.2"
EDX_NOTES_API_MYSQL_DB_USER: "edx_notes_api"
EDX_NOTES_API_MYSQL_DB_NAME: "edx_notes_api"
EDXAPP_EDXNOTES_INTERNAL_API: "http://localhost:8120/api/v1"
EDX_NOTES_API_SECRET_KEY: "1234567890123456789012345678901234567890"
EDX_NOTES_API_CLIENT_ID: "12345678901234567890"
EDX_NOTES_API_CLIENT_SECRET: "1234567890123456789012345678901234567890"
EDX_NOTES_API_MYSQL_DB_PASS: "12345678901234567890"
  - ""
  - "localhost"
  - "{{ EDXAPP_SITE_NAME }}"
  - "{{ EDXAPP_SITE_NAME }}:18120"

$ /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i,localhost \
-C local \
-e@/edx/app/edx_ansible/server-vars.yml \
-e@~/config-notes.yml \
-enginx_sites=edx_notes_api \
-erole=nginx \

$ /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i,localhost \
-C local \
-e@/edx/app/edx_ansible/server-vars.yml \
-e@~/config-notes.yml \
-erole=edx_notes_api \

Thanks for the responce I will try and get back to you. Appreciate your swift response.


I made these changes into /edx/app/edx_ansible/edx_ansible/playbooks/roles/edx_notes_api/defaults/main.yml file and /edx/app/edxapp/lms.env.json file and I did sudo

Which returned the following error msg

ERROR! the playbook: local could not be found

Sorry I am Rookie in this field so it’s not very easy for me.

I am following instructions @ if you can suggest where exactly shall I be deviating the command in order to achieve this task.

Thanks & Cheers

Thanks it finally worked for me :heart::heart::heart::heart::heart:

@Melsu I will highly appreciate it if you can write down the steps/ commands to make the Ironwood Notes working. This will help to save a lot of time and effort of the edX Community.

Hi @Azhar_Mateen

I wish melsu and I could submit detailed guide but held up on a project however this shall be a good pointer.

You follow Lawrence McDaniel’s blog step 1 & step 2. Additionally define Version in step 2 as open-release/ironwood.2
While performing step 3
First and foremost even before using source command do

sudo vim /edx/app/edx_ansible/edx_ansible/playbooks/notes.yml

Add #/comment out -aws in role section.

Then follow

source /edx/app/edx_ansible/venvs/edx_ansible/bin/activate
cd /edx/app/edx_ansible/edx_ansible/playbooks
sudo ansible-playbook -i ‘localhost,’ -c local ./run_role.yml -e ‘role=edxlocal’ -e@roles/edx_notes_api/defaults/main.yml

Subsequently run these 2 additional commands before going to step 4

sudo ansible-playbook -i ‘localhost,’ -c local ./run_role.yml -e ‘role=nginx’ -e ‘nginx_sites=edx_notes_api’ -e@roles/edx_notes_api/defaults/main.yml


sudo ansible-playbook -i ‘localhost,’ -c local ./run_role.yml -e ‘role=edx_notes_api’ -e@roles/edx_notes_api/defaults/main.yml

Continue to step 4 and make sure you don’t use


I think this shall work is what melsu told me. He isn’t able to come online due to personal reasons and he apologies for the delay.