Install Canvas to local virtual machine in ~15 minutes

1,980 views
Skip to first unread message

Rocky Madden

unread,
May 3, 2014, 3:05:21 AM5/3/14
to canvas-l...@googlegroups.com
The localhost size cloud of the Canvas LMS Cloud project is now ready for use! It includes many features atop of the automagic installation of Canvas (e.g. Ubuntu 14.04, PostgreSQL 9.3). There is a complete walkthrough on how to setup a local VirtualBox VM as well.


Please feel free to report any issues or pull requests directly on Github. The small cloud size will be available very shortly. Cheers!

david...@gmail.com

unread,
May 6, 2014, 12:16:15 AM5/6/14
to canvas-l...@googlegroups.com
In Step 4 of the Localhost-installation -how to:  You said:

  1. Update the user option and then execute ansible-playbook -i localhost ssh_copy_id.yml --user=your_username --ask-pass --ask-sudo-pass
Please elaborate what do you mean by 'Update the user option'  
- What is the 'user option' ?  Which file ?
- What do we need to update?

Thanks. 

Rocky Madden

unread,
May 6, 2014, 12:39:00 PM5/6/14
to canvas-l...@googlegroups.com, david...@gmail.com
Sure, sorry it wasn't clear. It is referring to this element: --user=your_username So, if your username was bob it would be --user=bob

Rocky Madden

unread,
May 6, 2014, 12:44:14 PM5/6/14
to canvas-l...@googlegroups.com, david...@gmail.com
I've modified the how-to with more clarification on that issue. Thanks for the heads up on the lack of clarity. :)


On Monday, May 5, 2014 10:16:15 PM UTC-6, david...@gmail.com wrote:

Rocky Madden

unread,
May 16, 2014, 5:42:34 AM5/16/14
to canvas-l...@googlegroups.com
Canvas LMS Cloud has hit v0.2.0 which includes vagrant integration. This means setting up a local virtual machine is literally one command line execution away. 

dws

unread,
May 24, 2014, 12:22:49 PM5/24/14
to canvas-l...@googlegroups.com
Hi Rocky,

I am following your instructions on localhost installation how to

I have tried a few times.  The last time I did this:

removed the VM canvas-lms-cloud-master...  (from last attempt) 

cd ~/Downloads

rm -Rf canvas-lms-cloud-master

tar -zxf ~/Downloads/canvas-lms-cloud-master.tar.gz

I also removed .ansible and .vagrant* from ~/

Then I cd to ~/Downloads/canvas-lms-cloud-master

And did vagrant up: and got this:


david-imac:canvas-lms-cloud-master davidwszeto$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...

==> default: Box 'ubuntu/trusty64' could not be found. Attempting to find and install...

    default: Box Provider: virtualbox

    default: Box Version: >= 0

==> default: Adding box 'ubuntu/trusty64' (v0) for provider: virtualbox

    default: Downloading: http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

==> default: Successfully added box 'ubuntu/trusty64' (v0) for 'virtualbox'!

==> default: Importing base box 'ubuntu/trusty64'...

==> default: Matching MAC address for NAT networking...

==> default: Setting the name of the VM: canvas-lms-cloud-master_default_1400947726081_47101

==> default: Clearing any previously set forwarded ports...

==> default: Clearing any previously set network interfaces...

==> default: Preparing network interfaces based on configuration...

    default: Adapter 1: nat

    default: Adapter 2: hostonly

==> default: Forwarding ports...

    default: 22 => 2222 (adapter 1)

==> default: Running 'pre-boot' VM customizations...

==> default: Booting VM...

==> default: Waiting for machine to boot. This may take a few minutes...

    default: SSH address: 127.0.0.1:2222

    default: SSH username: vagrant

    default: SSH auth method: private key

    default: Warning: Connection timeout. Retrying...

    default: Warning: Remote connection disconnect. Retrying...

==> default: Machine booted and ready!

==> default: Checking for guest additions in VM...

==> default: Configuring and enabling network interfaces...

==> default: Mounting shared folders...

    default: /vagrant => /Users/davidwszeto/Downloads/canvas-lms-cloud-master

==> default: Running provisioner: ansible...


PLAY [all] ******************************************************************** 


GATHERING FACTS *************************************************************** 

fatal: [10.0.10.10] => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue


TASK: [create /root/.ssh] ***************************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



PLAY RECAP ******************************************************************** 

           to retry, use: --limit @/Users/davidwszeto/util_copy_ssh_id.retry


10.0.10.10                 : ok=0    changed=0    unreachable=1    failed=0   


Ansible failed to complete successfully. Any error output should be

visible above. Please fix these errors and try again.


=== 

Is there something I did not cleanu properly?

Please advise.  (I would really like to get this to work)


Thanks.



--

---
You received this message because you are subscribed to a topic in the Google Groups "Canvas LMS Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/canvas-lms-users/6y2itgFI9eE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to canvas-lms-use...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
David

Rocky Madden

unread,
May 25, 2014, 1:26:08 AM5/25/14
to canvas-l...@googlegroups.com, david...@gmail.com
Thanks for reporting. A couple of items to check:
  • The IP 10.0.10.10 will not collide with anything on your network.
  • SSH keys are generated
  • Everytime you destroy vagrant that you remove the host from your known_hosts file. Typically, this is housed in ~/.ssh/known_hosts. Each time vagrant creates a new VM, said host comes with a new host key (let me see if I can change this). So, on the second+ attempt to use vagrant it will see an invalid key and think somone might be doing a MITM attack.
If you have done all of the above, please feel free to reach out. I'd be happy to debug it with you (should be pretty quick) and see if there is anything I can do to prevent such headaches in the future. You can find all my contact information at http://rockymadden.com/ under the "Get in Touch" button.

:)

dws

unread,
May 28, 2014, 12:37:16 PM5/28/14
to Rocky Madden, canvas-l...@googlegroups.com
Hi Rocky,

Thanks for your email.

I tried again this morning, after cleaning out all virtual machines, the existing folders, and was almost there, but some error at the end: 

TASK: [common | configure iptables-persistent rules] ************************** 

fatal: [10.0.10.10] => {'msg': "One or more undefined variables: 'administrators' is undefined", 'failed': True}

fatal: [10.0.10.10] => {'msg': "One or more undefined variables: 'administrators' is undefined", 'failed': True}


FATAL: all hosts have already failed -- aborting


PLAY RECAP ******************************************************************** 

           to retry, use: --limit @/Users/davidwszeto/localhost.retry


10.0.10.10                 : ok=10   changed=5    unreachable=1    failed=0   


Ansible failed to complete successfully. Any error output should be

visible above. Please fix these errors and try again.

---------------------- details below:

david-imac:canvas-lms-cloud-master davidwszeto$ date

Wed May 28 09:26:46 PDT 2014

david-imac:canvas-lms-cloud-master davidwszeto$ pwd

/Users/davidwszeto/Downloads/canvas-lms-cloud-master

david-imac:canvas-lms-cloud-master davidwszeto$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...

==> default: Importing base box 'ubuntu/trusty64'...

==> default: Matching MAC address for NAT networking...

==> default: Setting the name of the VM: canvas-lms-cloud-master_default_1401294427960_17721

==> default: Clearing any previously set forwarded ports...

==> default: Clearing any previously set network interfaces...

==> default: Preparing network interfaces based on configuration...

    default: Adapter 1: nat

    default: Adapter 2: hostonly

==> default: Forwarding ports...

    default: 22 => 2222 (adapter 1)

==> default: Running 'pre-boot' VM customizations...

==> default: Booting VM...

==> default: Waiting for machine to boot. This may take a few minutes...

    default: SSH address: 127.0.0.1:2222

    default: SSH username: vagrant

    default: SSH auth method: private key

    default: Warning: Connection timeout. Retrying...

    default: Warning: Remote connection disconnect. Retrying...

==> default: Machine booted and ready!

==> default: Checking for guest additions in VM...

==> default: Configuring and enabling network interfaces...

==> default: Mounting shared folders...

    default: /vagrant => /Users/davidwszeto/Downloads/canvas-lms-cloud-master

==> default: Running provisioner: ansible...


PLAY [all] ******************************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [create /root/.ssh] ***************************************************** 

ok: [10.0.10.10]


TASK: [create /root/.ssh/authorized_keys] ************************************* 

changed: [10.0.10.10]


TASK: [copy id_rsa.pub] ******************************************************* 

changed: [10.0.10.10]


TASK: [cat id_rsa.pub to authorized_keys] ************************************* 

changed: [10.0.10.10]


TASK: [delete id_rsa.pub] ***************************************************** 

changed: [10.0.10.10]


PLAY RECAP ******************************************************************** 

10.0.10.10                 : ok=6    changed=4    unreachable=0    failed=0   


==> default: Running provisioner: ansible...


PLAY [gather application hosts facts] ***************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


PLAY [gather cache hosts facts] *********************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


PLAY [gather rdb_pool_coordinator hosts facts] ******************************** 

skipping: no hosts matched


PLAY [gather rdb_pool_master hosts facts] ************************************* 

skipping: no hosts matched


PLAY [gather rdb_pool_slave hosts facts] ************************************** 

skipping: no hosts matched


PLAY [gather rdb_standby_master hosts facts] ********************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


PLAY [gather rdb_standby_slave hosts facts] *********************************** 

skipping: no hosts matched


PLAY [gather rdb_xc_coordinator hosts facts] ********************************** 

skipping: no hosts matched


PLAY [gather rdb_xc_datanode hosts facts] ************************************* 

skipping: no hosts matched


PLAY [gather rdb_xc_gtm hosts facts] ****************************************** 

skipping: no hosts matched


PLAY [gather proxy hosts facts] *********************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


PLAY [rdb_standby_master] ***************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [common | install build-essential] ************************************** 

changed: [10.0.10.10]


TASK: [common | install git-core] ********************************************* 

changed: [10.0.10.10]


TASK: [common | install ntp] ************************************************** 

changed: [10.0.10.10]


TASK: [common | configure ntp] ************************************************ 

changed: [10.0.10.10]


TASK: [common | install iptables-persistent] ********************************** 

changed: [10.0.10.10]


TASK: [common | configure iptables-persistent rules] ************************** 

fatal: [10.0.10.10] => {'msg': "One or more undefined variables: 'administrators' is undefined", 'failed': True}

fatal: [10.0.10.10] => {'msg': "One or more undefined variables: 'administrators' is undefined", 'failed': True}


FATAL: all hosts have already failed -- aborting


PLAY RECAP ******************************************************************** 

           to retry, use: --limit @/Users/davidwszeto/localhost.retry


10.0.10.10                 : ok=10   changed=5    unreachable=1    failed=0   


Ansible failed to complete successfully. Any error output should be

visible above. Please fix these errors and try again.

--------

Looking at what you have done, we are quite impressed.  We - a partner I am working with - is exploring a start up idea here in San Jose, CA.

Wonder if you and I can have a conversation on how we can involve you in some capacity.

Let me know.

Thanks,

David.

Phone: 408-621-6121.   Skype id:  davidwszeto

--
David

Rocky Madden

unread,
May 28, 2014, 5:05:02 PM5/28/14
to canvas-l...@googlegroups.com, Rocky Madden, david...@gmail.com
Nice find, version 0.2.4 is up with the following changes:

  • The last issue you mentioned was an oversight on my part where ansible will only look for group_var files exactly matching group names. The file was called `all.example` in the repository, to show that it was indeed an example file. However, since that won't fly with the vagrant/ansible combo... I've renamed said file to simple `all`, which fixes the issue. I had this `all` file locally when testing, which is why it didn't occur for me. All the more reason to get robust Travic CI testing for this project done: https://github.com/rockymadden/canvas-lms-cloud/issues/13
  • I've told vagrant to tell ansible not to perform host key checks. This should help address the item where you would have to modify `~/.ssh/known_hosts` after each vagrant up / vagrant destroy combination issued.
Thanks for the heads up on these and my apology on the one issue. Cheers! :)

dws

unread,
May 28, 2014, 11:57:14 PM5/28/14
to Rocky Madden, canvas-l...@googlegroups.com
Hi Rocky,

We are making progress:  Looks like it cannot 'find hosts for rdb':

PLAY [gather rdb_pool_coordinator hosts facts] ******************************** 

skipping: no hosts matched


PLAY [gather rdb_pool_master hosts facts] ************************************* 

skipping: no hosts matched


PLAY [gather rdb_pool_slave hosts facts] ************************************** 

skipping: no hosts matched

And also the database migration lines were all marked red ...

----------  Details start here ---------

david-imac:Downloads davidwszeto$ cd canvas-lms-cloud-master

david-imac:canvas-lms-cloud-master davidwszeto$ ll

total 56

drwxr-xr-x@   8 davidwszeto  staff   272 May 28 20:18 .

drwx------+ 129 davidwszeto  staff  4386 May 28 20:18 ..

-rw-r--r--@   1 davidwszeto  staff  6148 May 28 20:18 .DS_Store

-rwxr-xr-x@   1 davidwszeto  staff   168 May 28 13:53 .gitignore

lrwxr-xr-x@   1 davidwszeto  staff    31 May 28 13:53 Vagrantfile -> ./vagrant/vagrantfile_localhost

drwxr-xr-x@  43 davidwszeto  staff  1462 May 28 20:18 ansible

-rwxr-xr-x@   1 davidwszeto  staff  9641 May 28 13:53 readme.md

drwxr-xr-x@   4 davidwszeto  staff   136 May 28 13:53 vagrant

david-imac:canvas-lms-cloud-master davidwszeto$ vi ~/.ssh/known_hosts 

david-imac:canvas-lms-cloud-master davidwszeto$ pwd;date

/Users/davidwszeto/Downloads/canvas-lms-cloud-master

Wed May 28 20:21:29 PDT 2014

david-imac:canvas-lms-cloud-master davidwszeto$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...

==> default: Importing base box 'ubuntu/trusty64'...

==> default: Matching MAC address for NAT networking...

==> default: Setting the name of the VM: canvas-lms-cloud-master_default_1401333703133_26267

TASK: [common | configure interfaces] ***************************************** 

changed: [10.0.10.10]


TASK: [common | configure ssh] ************************************************ 

changed: [10.0.10.10]


TASK: [common | configure sysctl] ********************************************* 

changed: [10.0.10.10]


TASK: [common | secure /usr/local/bin] **************************************** 

changed: [10.0.10.10]


TASK: [common | secure /etc] ************************************************** 

changed: [10.0.10.10]


TASK: [common | secure /tmp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /var/tmp] ********************************************** 

ok: [10.0.10.10]


TASK: [postgresql | install postgresql related packages] ********************** 

changed: [10.0.10.10] => (item=postgresql-9.3,python-psycopg2)


TASK: [postgresql | configure postgresql pg_ctl] ****************************** 

changed: [10.0.10.10]


TASK: [postgresql | configure postgresql pg_hba] ****************************** 

changed: [10.0.10.10]


TASK: [postgresql | configure postgresql pg_ident] **************************** 

changed: [10.0.10.10]


TASK: [postgresql | configure postgresql] ************************************* 

changed: [10.0.10.10]


TASK: [postgresql | configure postgresql recovery] **************************** 

skipping: [10.0.10.10]


TASK: [postgresql | configure postgresql start] ******************************* 

changed: [10.0.10.10]


TASK: [postgresql | create /var/lib/postgresql/9.3/wal] *********************** 

skipping: [10.0.10.10]


TASK: [postgresql | create canvas postgresql user] **************************** 

changed: [10.0.10.10]


TASK: [postgresql | create canvas postgresql rdb] ***************************** 

changed: [10.0.10.10]


TASK: [postgresql | create canvas postgresql queue rdb] *********************** 

changed: [10.0.10.10]


TASK: [postgresql | create postgres user ssh keys] **************************** 

skipping: [10.0.10.10]


TASK: [postgresql | fetch postgres user public ssh key] *********************** 

skipping: [10.0.10.10]


TASK: [postgresql | copy postgres user public ssh key] ************************ 

skipping: [10.0.10.10]


NOTIFIED: [common | reload iptables-persistent service] *********************** 

changed: [10.0.10.10]


NOTIFIED: [common | reload sysctl configuration] ****************************** 

changed: [10.0.10.10]


NOTIFIED: [common | restart networking service] ******************************* 

changed: [10.0.10.10]


NOTIFIED: [common | restart ntp service] ************************************** 

changed: [10.0.10.10]


NOTIFIED: [common | restart ssh service] ************************************** 

changed: [10.0.10.10]


NOTIFIED: [postgresql | notify postgresql service] **************************** 

changed: [10.0.10.10]

PLAY [cache] ****************************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [common | install build-essential] ************************************** 

ok: [10.0.10.10]


TASK: [common | install git-core] ********************************************* 

ok: [10.0.10.10]


TASK: [common | install ntp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | configure ntp] ************************************************ 

ok: [10.0.10.10]


TASK: [common | install iptables-persistent] ********************************** 

ok: [10.0.10.10]


TASK: [common | configure iptables-persistent rules] ************************** 

ok: [10.0.10.10]


TASK: [common | configure interfaces] ***************************************** 

ok: [10.0.10.10]


TASK: [common | configure ssh] ************************************************ 

ok: [10.0.10.10]


TASK: [common | configure sysctl] ********************************************* 

ok: [10.0.10.10]


TASK: [common | secure /usr/local/bin] **************************************** 

ok: [10.0.10.10]


TASK: [common | secure /etc] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /tmp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /var/tmp] ********************************************** 

ok: [10.0.10.10]


TASK: [redis | install redis related packages] ******************************** 

changed: [10.0.10.10]


TASK: [redis | configure redis] *********************************************** 

changed: [10.0.10.10]


NOTIFIED: [redis | restart redis service] ************************************* 

changed: [10.0.10.10]

PLAY [proxy] ****************************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [common | install build-essential] ************************************** 

ok: [10.0.10.10]


TASK: [common | install git-core] ********************************************* 

ok: [10.0.10.10]


TASK: [common | install ntp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | configure ntp] ************************************************ 

ok: [10.0.10.10]


TASK: [common | install iptables-persistent] ********************************** 

ok: [10.0.10.10]


TASK: [common | configure iptables-persistent rules] ************************** 

ok: [10.0.10.10]


TASK: [common | configure interfaces] ***************************************** 

ok: [10.0.10.10]


TASK: [common | configure ssh] ************************************************ 

ok: [10.0.10.10]


TASK: [common | configure sysctl] ********************************************* 

ok: [10.0.10.10]


TASK: [common | secure /usr/local/bin] **************************************** 

ok: [10.0.10.10]


TASK: [common | secure /etc] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /tmp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /var/tmp] ********************************************** 

ok: [10.0.10.10]


TASK: [nginx | install nginx related packages] ******************************** 

changed: [10.0.10.10]


TASK: [nginx | copy canvas ssl public key] ************************************ 

changed: [10.0.10.10]


TASK: [nginx | copy canvas ssl private key] *********************************** 

changed: [10.0.10.10]


TASK: [nginx | create canvas nginx cache] ************************************* 

changed: [10.0.10.10]


TASK: [nginx | remove default nginx sites] ************************************ 

changed: [10.0.10.10] => (item=/etc/nginx/sites-enabled/default)

changed: [10.0.10.10] => (item=/etc/nginx/sites-available/default)


TASK: [nginx | configure nginx] *********************************************** 

changed: [10.0.10.10]


TASK: [nginx | configure canvas nginx site] *********************************** 

changed: [10.0.10.10]


TASK: [nginx | configure canvas-unavailable nginx site] *********************** 

changed: [10.0.10.10]


TASK: [nginx | enable canvas nginx site] ************************************** 

changed: [10.0.10.10]


NOTIFIED: [nginx | restart nginx service] ************************************* 

changed: [10.0.10.10]

PLAY [application] ************************************************************ 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [common | install build-essential] ************************************** 

ok: [10.0.10.10]


TASK: [common | install git-core] ********************************************* 

ok: [10.0.10.10]


TASK: [common | install ntp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | configure ntp] ************************************************ 

ok: [10.0.10.10]


TASK: [common | install iptables-persistent] ********************************** 

ok: [10.0.10.10]


TASK: [common | configure iptables-persistent rules] ************************** 

ok: [10.0.10.10]


TASK: [common | configure interfaces] ***************************************** 

ok: [10.0.10.10]


TASK: [common | configure ssh] ************************************************ 

ok: [10.0.10.10]


TASK: [common | configure sysctl] ********************************************* 

ok: [10.0.10.10]


TASK: [common | secure /usr/local/bin] **************************************** 

ok: [10.0.10.10]


TASK: [common | secure /etc] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /tmp] ************************************************** 

ok: [10.0.10.10]


TASK: [common | secure /var/tmp] ********************************************** 

ok: [10.0.10.10]


TASK: [apache | install apache related packages] ****************************** 

changed: [10.0.10.10] => (item=apache2,libapache2-mod-passenger)


TASK: [apache | configure apache] ********************************************* 

changed: [10.0.10.10]


TASK: [apache | configure apache ports] *************************************** 

changed: [10.0.10.10]


TASK: [apache | enable apache passenger mod] ********************************** 

skipping: [10.0.10.10]


TASK: [apache | remove default apache sites] ********************************** 

changed: [10.0.10.10] => (item=/etc/apache2/sites-enabled/000-default.conf)

changed: [10.0.10.10] => (item=/etc/apache2/sites-available/000-default.conf)

changed: [10.0.10.10] => (item=/etc/apache2/sites-available/default-ssl.conf)


TASK: [apache | configure canvas apache site] ********************************* 

changed: [10.0.10.10]


TASK: [apache | enable canvas apache site] ************************************ 

changed: [10.0.10.10]


TASK: [canvas | install general library packages] ***************************** 

changed: [10.0.10.10] => (item=imagemagick,libcurl4-gnutls-dev,libpq5,libpq-dev,libxml2-dev,libxmlsec1,libxmlsec1-dev,libxslt1-dev,unzip,zlib1g-dev)


TASK: [canvas | install python related packages] ****************************** 

changed: [10.0.10.10] => (item=python,python-software-properties)


TASK: [canvas | install java related packages] ******************************** 

changed: [10.0.10.10]


TASK: [canvas | install ruby related packages] ******************************** 

changed: [10.0.10.10] => (item=ruby1.9.1,ruby1.9.1-dev,ruby-httpclient,ruby-passenger)


TASK: [canvas | install javascript related packages] ************************** 

changed: [10.0.10.10] => (item=nodejs,npm,coffeescript)


TASK: [canvas | create symlink /usr/bin/nodejs to /usr/bin/node] ************** 

changed: [10.0.10.10]


TASK: [canvas | check if canvas is installed] ********************************* 

ok: [10.0.10.10]


TASK: [canvas | git clone canvas] ********************************************* 

changed: [10.0.10.10]


TASK: [canvas | create canvas directories] ************************************ 

changed: [10.0.10.10] => (item=/var/canvas/log)

changed: [10.0.10.10] => (item=/var/canvas/tmp/pids)

changed: [10.0.10.10] => (item=/var/canvas/public/assets)

changed: [10.0.10.10] => (item=/var/canvas/public/stylesheets/compiled)


TASK: [canvas | create canvas files] ****************************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas amazon s3] *********************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas cache store] ********************************* 

changed: [10.0.10.10]


TASK: [canvas | configure canvas rdb] ***************************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas delayed jobs] ******************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas domain] ************************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas file store] ********************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas logging] ************************************* 

changed: [10.0.10.10]


TASK: [canvas | configure canvas outgoing mail] ******************************* 

changed: [10.0.10.10]


TASK: [canvas | configure canvas periodic jobs] ******************************* 

changed: [10.0.10.10]


TASK: [canvas | configure canvas redis] *************************************** 

changed: [10.0.10.10]


TASK: [canvas | configure canvas security] ************************************ 

changed: [10.0.10.10]


TASK: [canvas | configure canvas session store] ******************************* 

changed: [10.0.10.10]


TASK: [canvas | check if canvas gems are installed] *************************** 

ok: [10.0.10.10]


TASK: [canvas | install bundler gem] ****************************************** 

changed: [10.0.10.10]


TASK: [canvas | install canvas gems] ****************************************** 

changed: [10.0.10.10]


TASK: [canvas | check if canvas node modules are installed] ******************* 

ok: [10.0.10.10]


TASK: [canvas | install canvas node modules] ********************************** 

changed: [10.0.10.10]


TASK: [canvas | compile canvas assets] **************************************** 

changed: [10.0.10.10]


TASK: [canvas | create canvas background jobs daemon symlink] ***************** 

changed: [10.0.10.10]


TASK: [canvas | create canvas background jobs daemon] ************************* 

changed: [10.0.10.10]


TASK: [canvas | enable canvas background jobs daemon] ************************* 

changed: [10.0.10.10]


TASK: [canvas | check if canvas qti is installed] ***************************** 

ok: [10.0.10.10]


TASK: [canvas | git clone qti] ************************************************ 

changed: [10.0.10.10]


TASK: [canvas | chmod canvas qti] ********************************************* 

changed: [10.0.10.10]


TASK: [canvas | secure /var/canvas] ******************************************* 

changed: [10.0.10.10]


TASK: [canvas | secure /var/canvas/config] ************************************ 

changed: [10.0.10.10]


NOTIFIED: [apache | restart apache service] *********************************** 

changed: [10.0.10.10]


NOTIFIED: [apache | warm up canvas apache site] ******************************* 

changed: [10.0.10.10]


NOTIFIED: [canvas | restart canvas_init service] ****************************** 

changed: [10.0.10.10]


PLAY RECAP ******************************************************************** 

10.0.10.10                 : ok=145  changed=80   unreachable=0    failed=0   


==> default: Running provisioner: ansible...


PLAY [rdb_standby_master] ***************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [start postgres service] ************************************************ 

changed: [10.0.10.10]


PLAY RECAP ******************************************************************** 

10.0.10.10                 : ok=2    changed=1    unreachable=0    failed=0   


==> default: Running provisioner: ansible...


PLAY [application] ************************************************************ 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [initialize canvas rdb] ************************************************* 

failed: [10.0.10.10] => {"changed": true, "cmd": " RAILS_ENV=production bundle exec rake CANVAS_LMS_ADMIN_EMAIL=\"ad...@example.com\" CANVAS_LMS_ADMIN_PASSWORD=\"password\" CANVAS_LMS_ACCOUNT_NAME=\"Organization Name\" CANVAS_LMS_STATS_COLLECTION=2 db:initial_setup ", "delta": "0:00:32.285432", "end": "2014-05-29 03:43:28.843381", "rc": 137, "start": "2014-05-29 03:42:56.557949"}

stderr: NOTICE:  trigger "enrollments_after_insert_row_when_new_workflow_state_active__tr" for table "enrollments" does not exist, skipping

NOTICE:  function enrollments_after_insert_row_when_new_workflow_state_active__tr() does not exist, skipping

NOTICE:  trigger "enrollments_after_update_row_when_new_workflow_state_old_wor_tr" for table "enrollments" does not exist, skipping

NOTICE:  function enrollments_after_update_row_when_new_workflow_state_old_wor_tr() does not exist, skipping

NOTICE:  trigger "submissions_after_update_row_when_old_submission_type_is_not_tr" for table "submissions" does not exist, skipping

NOTICE:  function submissions_after_update_row_when_old_submission_type_is_not_tr() does not exist, skipping

NOTICE:  trigger "submissions_after_update_row_tr" for table "submissions" does not exist, skipping

NOTICE:  function submissions_after_update_row_tr() does not exist, skipping

NOTICE:  trigger "enrollments_after_insert_row_when_new_workflow_state_active__tr" for table "enrollments" does not exist, skipping

NOTICE:  function enrollments_after_insert_row_when_new_workflow_state_active__tr() does not exist, skipping

NOTICE:  trigger "enrollments_after_update_row_when_new_workflow_state_old_wor_tr" for table "enrollments" does not exist, skipping

NOTICE:  function enrollments_after_update_row_when_new_workflow_state_old_wor_tr() does not exist, skipping

NOTICE:  trigger "submissions_after_update_row_when_old_submission_type_is_not_tr" for table "submissions" does not exist, skipping

NOTICE:  function submissions_after_update_row_when_old_submission_type_is_not_tr() does not exist, skipping

Killed

stdout: ==  InitCanvasDb: migrating ===================================================

-- create_table("abstract_courses", {:force=>true})

   -> 0.0132s

-- add_index("abstract_courses", ["college_id"], {:name=>"index_abstract_courses_on_college_id"})

   -> 0.0037s

-- add_index("abstract_courses", ["department_id"], {:name=>"index_abstract_courses_on_department_id"})

   -> 0.0061s

-- add_index("abstract_courses", ["root_account_id", "sis_source_id"], {:name=>"index_abstract_courses_on_root_account_id_and_sis_source_id"})

   -> 0.0042s

-- add_index("abstract_courses", ["sis_source_id"], {:name=>"index_abstract_courses_on_sis_source_id"})

   -> 0.0049s

-- create_table("account_authorization_configs", {:force=>true})

   -> 0.0054s

-- add_index("account_authorization_configs", ["account_id"], {:name=>"index_account_authorization_configs_on_account_id"})

   -> 0.0023s

-- create_table("account_reports")

   -> 0.0043s

-- create_table("account_users", {:force=>true})

   -> 0.0031s

-- add_index("account_users", ["account_id"], {:name=>"index_account_users_on_account_id"})

   -> 0.0031s

-- add_index("account_users", ["user_id"], {:name=>"index_account_users_on_user_id"})

   -> 0.0030s

-- create_table("accounts", {:force=>true})

   -> 0.0075s

-- add_index("accounts", ["id", "type"], {:name=>"index_accounts_on_id_and_type"})

   -> 0.0029s

-- add_index("accounts", ["name", "parent_account_id"], {:name=>"index_accounts_on_name_and_parent_account_id"})

   -> 0.0032s

-- add_index("accounts", ["parent_account_id", "root_account_id"], {:name=>"index_accounts_on_parent_account_id_and_root_account_id"})

   -> 0.0037s

-- add_index("accounts", ["root_account_id", "sis_source_id"], {:name=>"index_accounts_on_root_account_id_and_sis_source_id"})

   -> 0.0037s

-- add_index("accounts", ["sis_source_id"], {:name=>"index_accounts_on_sis_source_id"})

   -> 0.0045s

-- add_index("accounts", ["type"], {:name=>"index_accounts_on_type"})

   -> 0.0052s

-- create_table("assessment_question_bank_users", {:force=>true})

   -> 0.0054s

-- add_index("assessment_question_bank_users", ["assessment_question_bank_id"], {:name=>"assessment_qbu_aqb_id"})

   -> 0.0026s

-- add_index("assessment_question_bank_users", ["user_id"], {:name=>"assessment_qbu_u_id"})

   -> 0.0029s

-- create_table("assessment_question_banks", {:force=>true})

   -> 0.0066s

-- add_index("assessment_question_banks", ["context_id", "context_type"], {:name=>"index_on_aqb_on_context_id_and_context_type"})

   -> 0.0026s

-- create_table("assessment_questions", {:force=>true})

   -> 0.0054s

-- add_index("assessment_questions", ["assessment_question_bank_id", "position"], {:name=>"question_bank_id_and_position"})

   -> 0.0021s

-- add_index("assessment_questions", ["context_id", "context_type"], {:name=>"index_assessment_questions_on_context_id_and_context_type"})

   -> 0.0022s

-- create_table("assessment_requests", {:force=>true})

   -> 0.0043s

-- add_index("assessment_requests", ["assessor_asset_id", "assessor_asset_type"], {:name=>"aa_id_and_aa_type"})

   -> 0.0031s

-- add_index("assessment_requests", ["assessor_id"], {:name=>"index_assessment_requests_on_assessor_id"})

   -> 0.0026s

-- add_index("assessment_requests", ["asset_id", "asset_type"], {:name=>"index_assessment_requests_on_asset_id_and_asset_type"})

   -> 0.0030s

-- add_index("assessment_requests", ["rubric_assessment_id"], {:name=>"index_assessment_requests_on_rubric_assessment_id"})

   -> 0.0039s

-- add_index("assessment_requests", ["rubric_association_id"], {:name=>"index_assessment_requests_on_rubric_association_id"})

   -> 0.0031s

-- add_index("assessment_requests", ["user_id"], {:name=>"index_assessment_requests_on_user_id"})

   -> 0.0039s

-- create_table("asset_user_accesses", {:force=>true})

   -> 0.0048s

-- add_index("asset_user_accesses", ["context_id", "context_type"], {:name=>"index_asset_user_accesses_on_context_id_and_context_type"})

   -> 0.0022s

-- add_index("asset_user_accesses", ["user_id", "asset_code"], {:name=>"index_asset_user_accesses_on_user_id_and_asset_code"})

   -> 0.0028s

-- create_table("assignment_groups", {:force=>true})

   -> 0.0044s

-- add_index("assignment_groups", ["cloned_item_id"], {:name=>"index_assignment_groups_on_cloned_item_id"})

   -> 0.0020s

-- add_index("assignment_groups", ["context_code"], {:name=>"index_assignment_groups_on_context_code"})

   -> 0.0021s

-- add_index("assignment_groups", ["context_id", "context_type"], {:name=>"index_assignment_groups_on_context_id_and_context_type"})

   -> 0.0026s

-- create_table("assignment_reminders", {:force=>true})

   -> 0.0032s

-- add_index("assignment_reminders", ["assignment_id"], {:name=>"index_assignment_reminders_on_assignment_id"})

   -> 0.0020s

-- add_index("assignment_reminders", ["user_id"], {:name=>"index_assignment_reminders_on_user_id"})

   -> 0.0024s

-- create_table("assignments", {:force=>true})

   -> 0.0067s

-- add_index("assignments", ["assignment_group_id"], {:name=>"index_assignments_on_assignment_group_id"})

   -> 0.0024s

-- add_index("assignments", ["cloned_item_id"], {:name=>"index_assignments_on_cloned_item_id"})

   -> 0.0031s

-- add_index("assignments", ["context_code"], {:name=>"index_assignments_on_context_code"})

   -> 0.0037s

-- add_index("assignments", ["context_id", "context_type"], {:name=>"index_assignments_on_context_id_and_context_type"})

   -> 0.0029s

-- add_index("assignments", ["due_at", "context_code"], {:name=>"index_assignments_on_due_at_and_context_code"})

   -> 0.0035s

-- add_index("assignments", ["grading_standard_id"], {:name=>"index_assignments_on_grading_standard_id"})

   -> 0.0059s

-- add_index("assignments", ["workflow_state"], {:name=>"index_assignments_on_workflow_state"})

   -> 0.0068s

-- create_table("attachment_associations", {:force=>true})

   -> 0.0061s

-- add_index("attachment_associations", ["attachment_id"], {:name=>"index_attachment_associations_on_attachment_id"})

   -> 0.0021s

-- add_index("attachment_associations", ["context_id", "context_type"], {:name=>"attachment_associations_a_id_a_type"})

   -> 0.0023s

-- create_table("attachments", {:force=>true})

   -> 0.0093s

-- add_index("attachments", ["cloned_item_id"], {:name=>"index_attachments_on_cloned_item_id"})

   -> 0.0021s

-- add_index("attachments", ["context_id", "context_type"], {:name=>"index_attachments_on_context_id_and_context_type"})

   -> 0.0025s

-- add_index("attachments", ["enrollment_id"], {:name=>"index_attachments_on_enrollment_id"})

   -> 0.0026s

-- add_index("attachments", ["folder_id"], {:name=>"index_attachments_on_folder_id"})

   -> 0.0028s

-- add_index("attachments", ["md5", "namespace"], {:name=>"index_attachments_on_md5_and_namespace"})

   -> 0.0033s

-- add_index("attachments", ["root_attachment_id"], {:name=>"index_attachments_on_root_attachment_id"})

   -> 0.0070s

-- add_index("attachments", ["scribd_account_id"], {:name=>"index_attachments_on_scribd_account_id"})

   -> 0.0060s

-- add_index("attachments", ["scribd_attempts", "scribd_mime_type_id", "workflow_state"], {:name=>"scribd_attempts_smt_workflow_state"})

   -> 0.0103s

-- add_index("attachments", ["scribd_mime_type_id"], {:name=>"index_attachments_on_scribd_mime_type_id"})

   -> 0.0062s

-- add_index("attachments", ["user_id"], {:name=>"index_attachments_on_user_id"})

   -> 0.0094s

-- add_index("attachments", ["workflow_state", "updated_at"], {:name=>"index_attachments_on_workflow_state_and_updated_at"})

   -> 0.0061s

-- create_table("authorization_codes", {:force=>true})

   -> 0.0065s

-- add_index("authorization_codes", ["account_id"], {:name=>"index_authorization_codes_on_account_id"})

   -> 0.0022s

-- create_table("calendar_events", {:force=>true})

   -> 0.0044s

-- add_index("calendar_events", ["cloned_item_id"], {:name=>"index_calendar_events_on_cloned_item_id"})

   -> 0.0023s

-- add_index("calendar_events", ["context_code"], {:name=>"index_calendar_events_on_context_code"})

   -> 0.0022s

-- add_index("calendar_events", ["context_id", "context_type"], {:name=>"index_calendar_events_on_context_id_and_context_type"})

   -> 0.0026s

-- add_index("calendar_events", ["user_id"], {:name=>"index_calendar_events_on_user_id"})

   -> 0.0028s

-- create_table("cloned_items", {:force=>true})

   -> 0.0061s

-- add_index("cloned_items", ["original_item_id", "original_item_type"], {:name=>"cloned_items_original_item_id_and_type"})

   -> 0.0020s

-- create_table("collaborations", {:force=>true})

   -> 0.0047s

-- add_index("collaborations", ["context_id", "context_type"], {:name=>"index_collaborations_on_context_id_and_context_type"})

   -> 0.0028s

-- add_index("collaborations", ["user_id"], {:name=>"index_collaborations_on_user_id"})

   -> 0.0034s

-- create_table("collaborators", {:force=>true})

   -> 0.0069s

-- add_index("collaborators", ["collaboration_id"], {:name=>"index_collaborators_on_collaboration_id"})

   -> 0.0028s

-- add_index("collaborators", ["user_id"], {:name=>"index_collaborators_on_user_id"})

   -> 0.0032s

-- create_table("communication_channels", {:force=>true})

   -> 0.0057s

-- add_index("communication_channels", ["path", "path_type"], {:name=>"index_communication_channels_on_path_and_path_type"})

   -> 0.0019s

-- add_index("communication_channels", ["pseudonym_id"], {:name=>"index_communication_channels_on_pseudonym_id"})

   -> 0.0025s

-- add_index("communication_channels", ["user_id"], {:name=>"index_communication_channels_on_user_id"})

   -> 0.0027s

-- create_table("content_migrations", {:force=>true})

   -> 0.0054s

-- create_table("content_tags", {:force=>true})

   -> 0.0049s

-- add_index("content_tags", ["content_id", "content_type"], {:name=>"index_content_tags_on_content_id_and_content_type"})

   -> 0.0023s

-- add_index("content_tags", ["context_id", "context_type"], {:name=>"index_content_tags_on_context_id_and_context_type"})

   -> 0.0023s

-- add_index("content_tags", ["context_module_id"], {:name=>"index_content_tags_on_context_module_id"})

   -> 0.0078s

-- add_index("content_tags", ["workflow_state"], {:name=>"index_content_tags_on_workflow_state"})

   -> 0.0045s

-- create_table("context_message_participants", {:force=>true})

   -> 0.0040s

-- add_index("context_message_participants", ["context_message_id"], {:name=>"index_context_message_participants_on_context_message_id"})

   -> 0.0050s

-- add_index("context_message_participants", ["user_id"], {:name=>"index_context_message_participants_on_user_id"})

   -> 0.0026s

-- create_table("context_messages", {:force=>true})

   -> 0.0045s

-- add_index("context_messages", ["context_id", "context_type"], {:name=>"index_context_messages_on_context_id_and_context_type"})

   -> 0.0022s

-- add_index("context_messages", ["root_context_message_id"], {:name=>"index_context_messages_on_root_context_message_id"})

   -> 0.0027s

-- add_index("context_messages", ["user_id"], {:name=>"index_context_messages_on_user_id"})

   -> 0.0030s

-- create_table("context_module_progressions", {:force=>true})

   -> 0.0046s

-- add_index("context_module_progressions", ["context_module_id"], {:name=>"index_context_module_progressions_on_context_module_id"})

   -> 0.0021s

-- add_index("context_module_progressions", ["user_id", "context_module_id"], {:name=>"u_id_module_id"})

   -> 0.0022s

-- create_table("context_modules", {:force=>true})

   -> 0.0043s

-- add_index("context_modules", ["context_id", "context_type"], {:name=>"index_context_modules_on_context_id_and_context_type"})

   -> 0.0026s

-- create_table("course_account_associations", {:force=>true})

   -> 0.0051s

-- add_index("course_account_associations", ["account_id", "depth"], {:name=>"index_course_account_associations_on_account_id_and_depth_id"})

   -> 0.0022s

-- add_index("course_account_associations", ["course_id"], {:name=>"index_course_account_associations_on_course_id"})

   -> 0.0022s

-- create_table("course_imports", {:force=>true})

   -> 0.0043s

-- create_table("course_sections", {:force=>true})

   -> 0.0047s

-- add_index("course_sections", ["abstract_course_id"], {:name=>"index_course_sections_on_abstract_course_id"})

   -> 0.0021s

-- add_index("course_sections", ["course_id"], {:name=>"index_course_sections_on_course_id"})

   -> 0.0023s

-- add_index("course_sections", ["enrollment_term_id"], {:name=>"index_course_sections_on_enrollment_term_id"})

   -> 0.0061s

-- add_index("course_sections", ["root_account_id", "sis_source_id"], {:name=>"index_course_sections_on_root_account_id_and_sis_source_id"})

   -> 0.0042s

-- add_index("course_sections", ["sis_cross_listed_section_id"], {:name=>"index_course_sections_on_sis_cross_listed_section_id"})

   -> 0.0046s

-- create_table("courses", {:force=>true})

   -> 0.0119s

-- add_index("courses", ["abstract_course_id"], {:name=>"index_courses_on_abstract_course_id"})

   -> 0.0028s

-- add_index("courses", ["account_id"], {:name=>"index_courses_on_account_id"})

   -> 0.0023s

-- add_index("courses", ["enrollment_term_id"], {:name=>"index_courses_on_enrollment_term_id"})

   -> 0.0025s

-- add_index("courses", ["grading_standard_id"], {:name=>"index_courses_on_grading_standard_id"})

   -> 0.0033s

-- add_index("courses", ["moved_in_account_structure", "updated_at"], {:name=>"index_courses_on_moved_in_account_structure_and_updated_at"})

   -> 0.0033s

-- add_index("courses", ["root_account_id"], {:name=>"index_courses_on_root_account_id"})

   -> 0.0080s

-- add_index("courses", ["wiki_id"], {:name=>"index_courses_on_wiki_id"})

   -> 0.0056s

-- create_table("custom_field_values", {:force=>true})

   -> 0.0073s

-- create_table("custom_fields", {:force=>true})

   -> 0.0062s

-- create_table("delayed_messages", {:force=>true})

   -> 0.0095s

-- add_index("delayed_messages", ["communication_channel_id", "workflow_state", "send_at"], {:name=>"ccid_ws_sa"})

   -> 0.0044s

-- add_index("delayed_messages", ["send_at"], {:name=>"by_sent_at"})

   -> 0.0028s

-- add_index("delayed_messages", ["workflow_state", "send_at"], {:name=>"ws_sa"})

   -> 0.0031s

-- create_table("delayed_notifications", {:force=>true})

   -> 0.0093s

-- add_index("delayed_notifications", ["workflow_state", "created_at"], {:name=>"index_delayed_notifications_on_workflow_state_and_created_at"})

   -> 0.0022s

-- create_table("developer_keys", {:force=>true})

   -> 0.0041s

-- create_table("discussion_entries", {:force=>true})

   -> 0.0043s

-- add_index("discussion_entries", ["attachment_id"], {:name=>"index_discussion_entries_on_attachment_id"})

   -> 0.0021s

-- add_index("discussion_entries", ["discussion_topic_id"], {:name=>"index_discussion_entries_on_discussion_topic_id"})

   -> 0.0026s

-- add_index("discussion_entries", ["user_id"], {:name=>"index_discussion_entries_on_user_id"})

   -> 0.0030s

-- create_table("discussion_topics", {:force=>true})

   -> 0.0047s

-- add_index("discussion_topics", ["attachment_id"], {:name=>"index_discussion_topics_on_attachment_id"})

   -> 0.0020s

-- add_index("discussion_topics", ["cloned_item_id"], {:name=>"index_discussion_topics_on_cloned_item_id"})

   -> 0.0025s

-- add_index("discussion_topics", ["context_code"], {:name=>"index_discussion_topics_on_context_code"})

   -> 0.0026s

-- add_index("discussion_topics", ["context_id", "context_type"], {:name=>"index_discussion_topics_on_context_id_and_context_type"})

   -> 0.0039s

-- add_index("discussion_topics", ["context_id", "position"], {:name=>"index_discussion_topics_on_context_id_and_position"})

   -> 0.0035s

-- add_index("discussion_topics", ["id", "type"], {:name=>"index_discussion_topics_on_id_and_type"})

   -> 0.0048s

-- add_index("discussion_topics", ["root_topic_id"], {:name=>"index_discussion_topics_on_root_topic_id"})

   -> 0.0075s

-- add_index("discussion_topics", ["user_id"], {:name=>"index_discussion_topics_on_user_id"})

   -> 0.0043s

-- add_index("discussion_topics", ["workflow_state"], {:name=>"index_discussion_topics_on_workflow_state"})

   -> 0.0048s

-- create_table("enrollment_dates_overrides", {:force=>true})

   -> 0.0079s

-- create_table("enrollment_terms", {:force=>true})

   -> 0.0044s

-- add_index("enrollment_terms", ["root_account_id", "sis_source_id"], {:name=>"index_enrollment_terms_on_root_account_id_and_sis_source_id"})

   -> 0.0025s

-- add_index("enrollment_terms", ["sis_source_id"], {:name=>"index_enrollment_terms_on_sis_source_id"})

   -> 0.0026s

-- create_table("enrollments", {:force=>true})

   -> 0.0106s

-- add_index("enrollments", ["course_id", "workflow_state"], {:name=>"index_enrollments_on_course_id_and_workflow_state"})

   -> 0.0023s

-- add_index("enrollments", ["course_section_id"], {:name=>"index_enrollments_on_course_section_id"})

   -> 0.0022s

-- add_index("enrollments", ["id", "type"], {:name=>"index_enrollments_on_id_and_type"})

   -> 0.0028s

-- add_index("enrollments", ["root_account_id"], {:name=>"index_enrollments_on_root_account_id"})

   -> 0.0070s

-- add_index("enrollments", ["sis_source_id"], {:name=>"index_enrollments_on_sis_source_id"})

   -> 0.0042s

-- add_index("enrollments", ["user_id"], {:name=>"index_enrollments_on_user_id"})

   -> 0.0077s

-- add_index("enrollments", ["uuid"], {:name=>"index_enrollments_on_uuid"})

   -> 0.0096s

-- add_index("enrollments", ["workflow_state"], {:name=>"index_enrollments_on_workflow_state"})

   -> 0.0061s

-- create_table("eportfolio_categories", {:force=>true})

   -> 0.0066s

-- add_index("eportfolio_categories", ["eportfolio_id"], {:name=>"index_eportfolio_categories_on_eportfolio_id"})

   -> 0.0021s

-- create_table("eportfolio_entries", {:force=>true})

   -> 0.0090s

-- add_index("eportfolio_entries", ["eportfolio_category_id"], {:name=>"index_eportfolio_entries_on_eportfolio_category_id"})

   -> 0.0022s

-- add_index("eportfolio_entries", ["eportfolio_id"], {:name=>"index_eportfolio_entries_on_eportfolio_id"})

   -> 0.0023s

-- create_table("eportfolios", {:force=>true})

   -> 0.0043s

-- add_index("eportfolios", ["user_id"], {:name=>"index_eportfolios_on_user_id"})

   -> 0.0021s

-- create_table("error_reports", {:force=>true})

   -> 0.0055s

-- add_index("error_reports", ["created_at"], {:name=>"error_reports_created_at"})

   -> 0.0071s

-- add_index("error_reports", ["zendesk_ticket_id"], {:name=>"index_error_reports_on_zendesk_ticket_id"})

   -> 0.0030s

-- create_table("external_feed_entries", {:force=>true})

   -> 0.0057s

-- add_index("external_feed_entries", ["asset_id", "asset_type"], {:name=>"index_external_feed_entries_on_asset_id_and_asset_type"})

   -> 0.0046s

-- add_index("external_feed_entries", ["external_feed_id", "uuid"], {:name=>"external_feed_id_uuid"})

   -> 0.0027s

-- add_index("external_feed_entries", ["user_id"], {:name=>"index_external_feed_entries_on_user_id"})

   -> 0.0073s

-- create_table("external_feeds", {:force=>true})

   -> 0.0061s

-- add_index("external_feeds", ["context_id", "context_type"], {:name=>"index_external_feeds_on_context_id_and_context_type"})

   -> 0.0024s

-- add_index("external_feeds", ["user_id"], {:name=>"index_external_feeds_on_user_id"})

   -> 0.0029s

-- create_table("folders", {:force=>true})

   -> 0.0083s

-- add_index("folders", ["cloned_item_id"], {:name=>"index_folders_on_cloned_item_id"})

   -> 0.0025s

-- add_index("folders", ["context_id", "context_type"], {:name=>"index_folders_on_context_id_and_context_type"})

   -> 0.0049s

-- add_index("folders", ["parent_folder_id"], {:name=>"index_folders_on_parent_folder_id"})

   -> 0.0030s

-- create_table("gradebook_uploads", {:force=>true})

   -> 0.0047s

-- add_index("gradebook_uploads", ["context_id", "context_type"], {:name=>"index_gradebook_uploads_on_context_id_and_context_type"})

   -> 0.0022s

-- create_table("grading_standards", {:force=>true})

   -> 0.0062s

-- add_index("grading_standards", ["context_code"], {:name=>"index_grading_standards_on_context_code"})

   -> 0.0021s

-- add_index("grading_standards", ["context_id", "context_type"], {:name=>"index_grading_standards_on_context_id_and_context_type"})

   -> 0.0048s

-- add_index("grading_standards", ["user_id"], {:name=>"index_grading_standards_on_user_id"})

   -> 0.0079s

-- create_table("group_memberships", {:force=>true})

   -> 0.0044s

-- add_index("group_memberships", ["group_id"], {:name=>"index_group_memberships_on_group_id"})

   -> 0.0019s

-- add_index("group_memberships", ["user_id"], {:name=>"index_group_memberships_on_user_id"})

   -> 0.0023s

-- add_index("group_memberships", ["workflow_state"], {:name=>"index_group_memberships_on_workflow_state"})

   -> 0.0073s

-- create_table("groups", {:force=>true})

   -> 0.0090s

-- add_index("groups", ["account_id"], {:name=>"index_groups_on_account_id"})

   -> 0.0021s

-- add_index("groups", ["context_id", "context_type"], {:name=>"index_groups_on_context_id_and_context_type"})

   -> 0.0021s

-- add_index("groups", ["id", "type"], {:name=>"index_groups_on_id_and_type"})

   -> 0.0067s

-- add_index("groups", ["wiki_id"], {:name=>"index_groups_on_wiki_id"})

   -> 0.0030s

-- add_index("groups", ["workflow_state"], {:name=>"index_groups_on_workflow_state"})

   -> 0.0047s

-- create_table("hashtags", {:force=>true})

   -> 0.0093s

-- create_table("inbox_items", {:force=>true})

   -> 0.0054s

-- add_index("inbox_items", ["sender"], {:name=>"index_inbox_items_on_sender"})

   -> 0.0020s

-- add_index("inbox_items", ["sender_id"], {:name=>"index_inbox_items_on_sender_id"})

   -> 0.0074s

-- add_index("inbox_items", ["user_id"], {:name=>"index_inbox_items_on_user_id"})

   -> 0.0028s

-- add_index("inbox_items", ["workflow_state"], {:name=>"index_inbox_items_on_workflow_state"})

   -> 0.0048s

-- create_table("learning_outcome_groups", {:force=>true})

   -> 0.0066s

-- create_table("learning_outcome_results", {:force=>true})

   -> 0.0044s

-- add_index("learning_outcome_results", ["user_id", "content_tag_id"], {:name=>"index_learning_outcome_results_on_user_id_and_content_tag_id", :unique=>true})

   -> 0.0019s

-- create_table("learning_outcomes", {:force=>true})

   -> 0.0041s

-- create_table("mailboxes", {:force=>true})

   -> 0.0039s

-- add_index("mailboxes", ["handle"], {:name=>"index_mailboxes_on_handle"})

   -> 0.0018s

-- add_index("mailboxes", ["mailboxable_entity_id", "mailboxable_entity_type"], {:name=>"me_id_and_me_type"})

   -> 0.0022s

-- create_table("mailboxes_pseudonyms", {:force=>true})

   -> 0.0031s

-- create_table("media_objects", {:force=>true})

   -> 0.0040s

-- add_index("media_objects", ["attachment_id"], {:name=>"index_media_objects_on_attachment_id"})

   -> 0.0018s

-- add_index("media_objects", ["context_id", "context_type"], {:name=>"index_media_objects_on_context_id_and_context_type"})

   -> 0.0025s

-- add_index("media_objects", ["media_id"], {:name=>"index_media_objects_on_media_id"})

   -> 0.0025s

-- create_table("messages", {:force=>true})

   -> 0.0047s

-- add_index("messages", ["asset_context_id", "asset_context_type"], {:name=>"index_messages_on_asset_context_id_and_asset_context_type"})

   -> 0.0023s

-- add_index("messages", ["communication_channel_id"], {:name=>"index_messages_on_communication_channel_id"})

   -> 0.0023s

-- add_index("messages", ["context_id", "context_type", "notification_name", "to", "user_id"], {:name=>"existing_undispatched_message"})

   -> 0.0025s

-- add_index("messages", ["notification_id"], {:name=>"index_messages_on_notification_id"})

   -> 0.0027s

-- add_index("messages", ["notification_name", "workflow_state", "created_at"], {:name=>"index_messages_on_notification_name_workflow_state_created_at"})

   -> 0.0029s

-- add_index("messages", ["sent_at", "to_email", "user_id", "notification_category"], {:name=>"index_messages_on_sa_ui_te_nc"})

   -> 0.0035s

-- add_index("messages", ["user_id", "to_email", "dispatch_at"], {:name=>"index_messages_user_id_dispatch_at_to_email"})

   -> 0.0036s

-- add_index("messages", ["workflow_state", "dispatch_at"], {:name=>"index_messages_on_workflow_state_and_dispatch_at"})

   -> 0.0079s

-- create_table("notification_policies", {:force=>true})

   -> 0.0031s

-- add_index("notification_policies", ["communication_channel_id"], {:name=>"index_notification_policies_on_communication_channel_id"})

   -> 0.0021s

-- add_index("notification_policies", ["notification_id"], {:name=>"index_notification_policies_on_notification_id"})

   -> 0.0022s

-- add_index("notification_policies", ["user_id"], {:name=>"index_notification_policies_on_user_id"})

   -> 0.0022s

-- create_table("notifications", {:force=>true})

   -> 0.0042s

-- create_table("oauth_requests", {:force=>true})

   -> 0.0042s

-- add_index("oauth_requests", ["user_id"], {:name=>"index_oauth_requests_on_user_id"})

   -> 0.0019s

-- create_table("page_comments", {:force=>true})

   -> 0.0042s

-- add_index("page_comments", ["page_id", "page_type"], {:name=>"index_page_comments_on_page_id_and_page_type"})

   -> 0.0019s

-- add_index("page_comments", ["user_id"], {:name=>"index_page_comments_on_user_id"})

   -> 0.0023s

-- create_table("page_view_ranges", {:force=>true})

   -> 0.0044s

-- add_index("page_view_ranges", ["context_id", "context_type", "start_at", "end_at"], {:name=>"by_context_range"})

   -> 0.0021s

-- add_index("page_view_ranges", ["workflow_state", "updated_at"], {:name=>"index_page_view_ranges_on_workflow_state_and_updated_at"})

   -> 0.0024s

-- create_table("page_views", {:id=>false, :force=>true})

   -> 0.0030s

-- execute("ALTER TABLE page_views ADD PRIMARY KEY (request_id)")

   -> 0.0012s

-- add_index("page_views", ["account_id"], {:name=>"index_page_views_on_account_id"})

   -> 0.0019s

-- add_index("page_views", ["asset_user_access_id"], {:name=>"index_page_views_asset_user_access_id"})

   -> 0.0021s

-- add_index("page_views", ["context_type", "context_id"], {:name=>"index_page_views_on_context_type_and_context_id"})

   -> 0.0029s

-- add_index("page_views", ["summarized", "created_at"], {:name=>"index_page_views_summarized_created_at"})

   -> 0.0029s

-- add_index("page_views", ["user_id", "created_at"], {:name=>"index_page_views_on_user_id_and_created_at"})

   -> 0.0033s

-- create_table("plugin_settings", {:force=>true})

   -> 0.0057s

-- add_index("plugin_settings", ["name"], {:name=>"index_plugin_settings_on_name"})

   -> 0.0021s

-- create_table("pseudonyms", {:force=>true})

   -> 0.0056s

-- add_index("pseudonyms", ["account_id", "sis_source_id"], {:name=>"index_pseudonyms_on_account_id_and_sis_source_id"})

   -> 0.0019s

-- add_index("pseudonyms", ["communication_channel_id"], {:name=>"index_pseudonyms_on_communication_channel_id"})

   -> 0.0022s

-- add_index("pseudonyms", ["persistence_token"], {:name=>"index_pseudonyms_on_persistence_token"})

   -> 0.0028s

-- add_index("pseudonyms", ["single_access_token"], {:name=>"index_pseudonyms_on_single_access_token"})

   -> 0.0028s

-- add_index("pseudonyms", ["unique_id"], {:name=>"index_pseudonyms_on_unique_id"})

   -> 0.0031s

-- add_index("pseudonyms", ["user_id"], {:name=>"index_pseudonyms_on_user_id"})

   -> 0.0038s

-- create_table("quiz_groups", {:force=>true})

   -> 0.0044s

-- add_index("quiz_groups", ["quiz_id"], {:name=>"index_quiz_groups_on_quiz_id"})

   -> 0.0020s

-- create_table("quiz_questions", {:force=>true})

   -> 0.0047s

-- add_index("quiz_questions", ["assessment_question_id"], {:name=>"index_quiz_questions_on_assessment_question_id"})

   -> 0.0040s

-- add_index("quiz_questions", ["quiz_group_id"], {:name=>"quiz_questions_quiz_group_id"})

   -> 0.0023s

-- add_index("quiz_questions", ["quiz_id"], {:name=>"index_quiz_questions_on_quiz_id"})

   -> 0.0024s

-- create_table("quiz_submission_snapshots", {:force=>true})

   -> 0.0121s

-- add_index("quiz_submission_snapshots", ["quiz_submission_id"], {:name=>"index_quiz_submission_snapshots_on_quiz_submission_id"})

   -> 0.0023s

-- create_table("quiz_submissions", {:force=>true})

   -> 0.0055s

-- add_index("quiz_submissions", ["quiz_id", "user_id"], {:name=>"index_quiz_submissions_on_quiz_id_and_user_id", :unique=>true})

   -> 0.0033s

-- add_index("quiz_submissions", ["submission_id"], {:name=>"index_quiz_submissions_on_submission_id"})

   -> 0.0024s

-- add_index("quiz_submissions", ["temporary_user_code"], {:name=>"index_quiz_submissions_on_temporary_user_code"})

   -> 0.0029s

-- add_index("quiz_submissions", ["user_id"], {:name=>"index_quiz_submissions_on_user_id"})

   -> 0.0028s

-- create_table("quizzes", {:force=>true})

   -> 0.0050s

-- add_index("quizzes", ["assignment_id"], {:name=>"index_quizzes_on_assignment_id", :unique=>true})

   -> 0.0023s

-- add_index("quizzes", ["cloned_item_id"], {:name=>"index_quizzes_on_cloned_item_id"})

   -> 0.0022s

-- add_index("quizzes", ["context_id", "context_type"], {:name=>"index_quizzes_on_context_id_and_context_type"})

   -> 0.0025s

-- create_table("report_snapshots", {:force=>true})

   -> 0.1284s

-- create_table("role_overrides", {:force=>true})

   -> 0.0065s

-- add_index("role_overrides", ["context_id", "context_type"], {:name=>"index_role_overrides_on_context_id_and_context_type"})

   -> 0.0028s

-- create_table("rubric_assessments", {:force=>true})

   -> 0.0066s

-- add_index("rubric_assessments", ["artifact_id", "artifact_type"], {:name=>"index_rubric_assessments_on_artifact_id_and_artifact_type"})

   -> 0.0028s

-- add_index("rubric_assessments", ["assessor_id"], {:name=>"index_rubric_assessments_on_assessor_id"})

   -> 0.0030s

-- add_index("rubric_assessments", ["rubric_association_id"], {:name=>"index_rubric_assessments_on_rubric_association_id"})

   -> 0.0033s

-- add_index("rubric_assessments", ["rubric_id"], {:name=>"index_rubric_assessments_on_rubric_id"})

   -> 0.0038s

-- add_index("rubric_assessments", ["user_id"], {:name=>"index_rubric_assessments_on_user_id"})

   -> 0.0041s

-- create_table("rubric_associations", {:force=>true})

   -> 0.0069s

-- add_index("rubric_associations", ["association_id", "association_type"], {:name=>"index_rubric_associations_on_aid_and_atype"})

   -> 0.0025s

-- add_index("rubric_associations", ["context_code"], {:name=>"index_rubric_associations_on_context_code"})

   -> 0.0023s

-- add_index("rubric_associations", ["context_id", "context_type"], {:name=>"index_rubric_associations_on_context_id_and_context_type"})

   -> 0.0030s

-- add_index("rubric_associations", ["rubric_id"], {:name=>"index_rubric_associations_on_rubric_id"})

   -> 0.0040s

-- create_table("rubrics", {:force=>true})

   -> 0.0051s

-- add_index("rubrics", ["context_code"], {:name=>"index_rubrics_on_context_code"})

   -> 0.0017s

-- add_index("rubrics", ["context_id", "context_type"], {:name=>"index_rubrics_on_context_id_and_context_type"})

   -> 0.0020s

-- add_index("rubrics", ["rubric_id"], {:name=>"index_rubrics_on_rubric_id"})

   -> 0.0023s

-- add_index("rubrics", ["user_id"], {:name=>"index_rubrics_on_user_id"})

   -> 0.0030s

-- create_table("scribd_accounts", {:force=>true})

   -> 0.0041s

-- add_index("scribd_accounts", ["scribdable_id", "scribdable_type"], {:name=>"index_scribd_accounts_on_scribdable_id_and_scribdable_type"})

   -> 0.0018s

-- create_table("scribd_mime_types", {:force=>true})

   -> 0.0039s

-- add_index("scribd_mime_types", ["extension"], {:name=>"index_scribd_mime_types_on_extension"})

   -> 0.0018s

-- create_table("sessions", {:force=>true})

   -> 0.0038s

-- add_index("sessions", ["session_id"], {:name=>"index_sessions_on_session_id"})

   -> 0.0019s

-- add_index("sessions", ["updated_at"], {:name=>"index_sessions_on_updated_at"})

   -> 0.0026s

-- create_table("settings", {:force=>true})

   -> 0.0036s

-- create_table("short_message_associations", {:force=>true})

   -> 0.0027s

-- add_index("short_message_associations", ["context_id", "context_type"], {:name=>"index_short_message_associations_on_context_id_and_context_type"})

   -> 0.0017s

-- add_index("short_message_associations", ["short_message_id"], {:name=>"index_short_message_associations_on_short_message_id"})

   -> 0.0028s

-- create_table("short_messages", {:force=>true})

   -> 0.0041s

-- add_index("short_messages", ["user_id"], {:name=>"index_short_messages_on_user_id"})

   -> 0.0018s

-- create_table("sis_batch_log_entries", {:force=>true})

   -> 0.0085s

-- create_table("sis_batches", {:force=>true})

   -> 0.0070s

-- create_table("sis_cross_listed_sections", {:force=>true})

   -> 0.0040s

-- add_index("sis_cross_listed_sections", ["root_account_id", "sis_source_id"], {:name=>"cross_listed_sis_entries"})

   -> 0.0020s

-- create_table("stream_item_instances", {:force=>true})

   -> 0.0031s

-- create_table("stream_items", {:force=>true})

   -> 0.0038s

-- add_index("stream_items", ["item_asset_string", "created_at"], {:name=>"index_stream_items_on_item_asset_string_and_created_at"})

   -> 0.0019s

-- add_index("stream_items", ["user_id", "context_code", "created_at"], {:name=>"uid_cc_ca"})

   -> 0.0025s

-- add_index("stream_items", ["user_id", "created_at"], {:name=>"index_stream_items_on_user_id_created_at"})

   -> 0.0027s

-- create_table("submission_comment_participants", {:force=>true})

   -> 0.0032s

-- add_index("submission_comment_participants", ["submission_comment_id"], {:name=>"index_submission_comment_participants_on_submission_comment_id"})

   -> 0.0044s

-- add_index("submission_comment_participants", ["user_id"], {:name=>"index_submission_comment_participants_on_user_id"})

   -> 0.0050s

-- create_table("submission_comments", {:force=>true})

   -> 0.0065s

-- add_index("submission_comments", ["assessment_request_id"], {:name=>"index_submission_comments_on_assessment_request_id"})

   -> 0.0021s

-- add_index("submission_comments", ["author_id"], {:name=>"index_submission_comments_on_author_id"})

   -> 0.0027s

-- add_index("submission_comments", ["context_id", "context_type"], {:name=>"index_submission_comments_on_context_id_and_context_type"})

   -> 0.0042s

-- add_index("submission_comments", ["recipient_id"], {:name=>"index_submission_comments_on_recipient_id"})

   -> 0.0044s

-- add_index("submission_comments", ["submission_id"], {:name=>"index_submission_comments_on_submission_id"})

   -> 0.0045s

-- create_table("submissions", {:force=>true})

   -> 0.0052s

-- add_index("submissions", ["assignment_id", "submission_type"], {:name=>"index_submissions_on_assignment_id_and_submission_type"})

   -> 0.0020s

-- add_index("submissions", ["attachment_id", "submission_type", "process_attempts"], {:name=>"aid_submission_type_process_attempts"})

   -> 0.0022s

-- add_index("submissions", ["grader_id"], {:name=>"index_submissions_on_grader_id"})

   -> 0.0026s

-- add_index("submissions", ["group_id"], {:name=>"index_submissions_on_group_id"})

   -> 0.0076s

-- add_index("submissions", ["user_id", "assignment_id"], {:name=>"index_submissions_on_user_id_and_assignment_id", :unique=>true})

   -> 0.0052s

-- add_index("submissions", ["user_id"], {:name=>"index_submissions_on_user_id"})

   -> 0.0089s

-- create_table("thumbnails", {:force=>true})

   -> 0.0151s

-- add_index("thumbnails", ["parent_id"], {:name=>"index_thumbnails_on_parent_id"})

   -> 0.0030s

-- create_table("user_account_associations", {:force=>true})

   -> 0.0049s

-- add_index("user_account_associations", ["account_id"], {:name=>"index_user_account_associations_on_account_id"})

   -> 0.0049s

-- add_index("user_account_associations", ["user_id"], {:name=>"index_user_account_associations_on_user_id"})

   -> 0.0056s

-- create_table("user_notes", {:force=>true})

   -> 0.0116s

-- add_index("user_notes", ["user_id", "workflow_state"], {:name=>"index_user_notes_on_user_id_and_workflow_state"})

   -> 0.0020s

-- create_table("user_services", {:force=>true})

   -> 0.0044s

-- add_index("user_services", ["id", "type"], {:name=>"index_user_services_on_id_and_type"})

   -> 0.0023s

-- add_index("user_services", ["user_id"], {:name=>"index_user_services_on_user_id"})

   -> 0.0030s

-- create_table("users", {:force=>true})

   -> 0.0055s

-- add_index("users", ["avatar_state", "avatar_image_updated_at"], {:name=>"index_users_on_avatar_state_and_avatar_image_updated_at"})

   -> 0.0022s

-- add_index("users", ["creation_unique_id", "creation_sis_batch_id"], {:name=>"users_sis_creation"})

   -> 0.0021s

-- add_index("users", ["id", "type"], {:name=>"index_users_on_id_and_type"})

   -> 0.0031s

-- add_index("users", ["moved_in_account_structure"], {:name=>"index_users_on_moved_in_account_structure"})

   -> 0.0041s

-- add_index("users", ["sortable_name"], {:name=>"index_users_on_sortable_name"})

   -> 0.0044s

-- add_index("users", ["uuid"], {:name=>"index_users_on_uuid"})

   -> 0.0050s

-- create_table("versions", {:force=>true})

   -> 0.0061s

-- add_index("versions", ["versionable_id", "versionable_type"], {:name=>"index_versions_on_versionable_id_and_versionable_type"})

   -> 0.0030s

-- create_table("web_conference_participants", {:force=>true})

   -> 0.0042s

-- add_index("web_conference_participants", ["user_id"], {:name=>"index_web_conference_participants_on_user_id"})

   -> 0.0020s

-- add_index("web_conference_participants", ["web_conference_id"], {:name=>"index_web_conference_participants_on_web_conference_id"})

   -> 0.0023s

-- create_table("web_conferences", {:force=>true})

   -> 0.0060s

-- add_index("web_conferences", ["context_id", "context_type"], {:name=>"index_web_conferences_on_context_id_and_context_type"})

   -> 0.0030s

-- add_index("web_conferences", ["user_id"], {:name=>"index_web_conferences_on_user_id"})

   -> 0.0038s

-- create_table("wiki_namespaces", {:force=>true})

   -> 0.0063s

-- add_index("wiki_namespaces", ["context_id", "context_type"], {:name=>"index_wiki_namespaces_on_context_id_and_context_type"})

   -> 0.0030s

-- add_index("wiki_namespaces", ["wiki_id"], {:name=>"index_wiki_namespaces_on_wiki_id"})

   -> 0.0032s

-- create_table("wiki_page_comments", {:force=>true})

   -> 0.0069s

-- add_index("wiki_page_comments", ["wiki_page_id", "workflow_state"], {:name=>"index_wiki_page_comments_on_wiki_page_id_and_workflow_state"})

   -> 0.0021s

-- create_table("wiki_pages", {:force=>true})

   -> 0.0051s

-- add_index("wiki_pages", ["cloned_item_id"], {:name=>"index_wiki_pages_on_cloned_item_id"})

   -> 0.0032s

-- add_index("wiki_pages", ["user_id"], {:name=>"index_wiki_pages_on_user_id"})

   -> 0.0035s

-- add_index("wiki_pages", ["wiki_id"], {:name=>"index_wiki_pages_on_wiki_id"})

   -> 0.0039s

-- create_table("wikis", {:force=>true})

   -> 0.0069s

==  InitCanvasDb: migrated (1.5958s) ==========================================


==  CreateDelayedJobs: migrating ==============================================

-- create_table(:delayed_jobs)

   -> 0.0207s

-- add_index(:delayed_jobs, [:priority, :run_at], {:name=>"delayed_jobs_priority"})

   -> 0.0081s

-- add_index(:delayed_jobs, [:queue], {:name=>"delayed_jobs_queue"})

   -> 0.0035s

==  CreateDelayedJobs: migrated (0.0325s) =====================================


==  AddExtraTimeToQuizSubmissions: migrating ==================================

-- add_column(:quiz_submissions, :extra_time, :integer)

   -> 0.0009s

-- add_column(:quiz_submissions, :manually_unlocked, :boolean)

   -> 0.0004s

==  AddExtraTimeToQuizSubmissions: migrated (0.0014s) =========================


==  AddIpFilterToQuizzes: migrating ===========================================

-- add_column(:quizzes, :ip_filter, :string)

   -> 0.0005s

==  AddIpFilterToQuizzes: migrated (0.0006s) ==================================


==  AddAttachmentToContentMigration: migrating ================================

-- add_column(:content_migrations, :exported_attachment_id, :integer, {:limit=>8})

   -> 0.0019s

==  AddAttachmentToContentMigration: migrated (0.0020s) =======================


==  AddDelayedJobsTag: migrating ==============================================

-- add_column(:delayed_jobs, :tag, :string)

   -> 0.0006s

-- add_index(:delayed_jobs, [:tag])

   -> 0.0031s

==  AddDelayedJobsTag: migrated (0.0038s) =====================================


==  CreateAccountNotifications: migrating =====================================

-- create_table(:account_notifications)

   -> 0.0041s

-- add_index(:account_notifications, [:account_id, :start_at])

   -> 0.0023s

==  CreateAccountNotifications: migrated (0.0066s) ============================


==  AddPodcastOptionsToDiscussionTopics: migrating ============================

-- add_column(:discussion_topics, :podcast_enabled, :boolean)

   -> 0.0006s

-- add_column(:discussion_topics, :podcast_has_student_posts, :boolean)

   -> 0.0004s

==  AddPodcastOptionsToDiscussionTopics: migrated (0.0010s) ===================


==  AddRequireInitialPostToDiscussionTopics: migrating ========================

-- add_column(:discussion_topics, :require_initial_post, :boolean)

   -> 0.0005s

==  AddRequireInitialPostToDiscussionTopics: migrated (0.0006s) ===============


==  AddRestrictionOptionsToCoursesAndSections: migrating ======================

-- add_column(:courses, :restrict_enrollments_to_course_dates, :boolean)

   -> 0.0006s

-- add_column(:course_sections, :restrict_enrollments_to_section_dates, :boolean)

   -> 0.0004s

-- add_column(:enrollment_terms, :ignore_term_date_restrictions, :boolean)

   -> 0.0004s

==  AddRestrictionOptionsToCoursesAndSections: migrated (0.0015s) =============


==  ChangeFudgePointsToFloat: migrating =======================================

-- change_column(:quiz_submissions, :fudge_points, :float)

   -> 0.0175s

==  ChangeFudgePointsToFloat: migrated (0.0176s) ==============================


==  AddCrossListingInfo: migrating ============================================

-- add_column(:course_sections, :account_id, :integer, {:limit=>8})

   -> 0.0019s

==  AddCrossListingInfo: migrated (0.0026s) ===================================


==  AddUngradedCountToAssignments: migrating ==================================

-- add_column(:assignments, :needs_grading_count, :integer, {:default=>0})

   -> 0.0012s

-- execute("      UPDATE assignments SET needs_grading_count = COALESCE((\n        SELECT COUNT(*)\n        FROM submissions s\n        INNER JOIN enrollments e ON e.user_id = s.user_id AND e.workflow_state = 'active'\n        WHERE s.assignment_id = assignments.id\n          AND e.course_id = assignments.context_id\n          AND (s.score IS NULL\n            OR NOT grade_matches_current_submission\n            OR s.workflow_state = 'submitted'\n            OR s.workflow_state = 'pending_review'\n          )\n          AND s.submission_type IS NOT NULL\n      ), 0)\n")

   -> 0.0119s

==  AddUngradedCountToAssignments: migrated (0.0132s) =========================


==  CreateContextExternalTools: migrating =====================================

-- create_table(:context_external_tools)

   -> 0.0058s

==  CreateContextExternalTools: migrated (0.0059s) ============================


==  AddAssociatedAssetToLearningOutcomeResults: migrating =====================

-- add_column(:learning_outcome_results, :associated_asset_id, :integer, {:limit=>8})

   -> 0.0006s

-- add_column(:learning_outcome_results, :associated_asset_type, :string)

   -> 0.0004s

-- remove_index(:learning_outcome_results, [:user_id, :content_tag_id])

   -> 0.0017s

-- add_index(:learning_outcome_results, [:user_id, :content_tag_id, :associated_asset_id, :associated_asset_type], {:unique=>true, :name=>"index_learning_outcome_results_association"})

   -> 0.0040s

==  AddAssociatedAssetToLearningOutcomeResults: migrated (0.0069s) ============


==  ChangeContextMessageViewedUserIdsSize: migrating ==========================

-- change_column(:context_messages, :viewed_user_ids, :text)

   -> 0.0007s

==  ChangeContextMessageViewedUserIdsSize: migrated (0.0008s) =================


==  AddStreamItemInstancesIndex: migrating ====================================

-- add_index("stream_item_instances", ["stream_item_id"])

   -> 0.0030s

==  AddStreamItemInstancesIndex: migrated (0.0031s) ===========================


==  AddCreatedAtToPageViewsIndex: migrating ===================================

-- remove_index(:page_views, {:column=>:account_id})

   -> 0.0026s

-- add_index(:page_views, [:account_id, :created_at])

   -> 0.0038s

==  AddCreatedAtToPageViewsIndex: migrated (0.0065s) ==========================


==  UngradedCountTriggers: migrating ==========================================

-- create_trigger("enrollments_after_insert_row_when_new_workflow_state_active__tr", {:generated=>true})

   -> 0.0002s

-- create_trigger("enrollments_after_update_row_when_new_workflow_state_old_wor_tr", {:generated=>true})

   -> 0.0001s

-- create_trigger("submissions_after_update_row_tr", {:generated=>true})

   -> 0.0002s

==  UngradedCountTriggers: migrated (0.0166s) =================================


==  AddQuizRequireLockdownBrowser: migrating ==================================

-- add_column(:quizzes, :require_lockdown_browser, :boolean)

   -> 0.0006s

==  AddQuizRequireLockdownBrowser: migrated (0.0006s) =========================


==  UngradedCountTriggers2: migrating =========================================

-- drop_trigger("enrollments_after_insert_row_when_new_workflow_state_active__tr", "enrollments", {:generated=>true})

   -> 0.0015s

-- drop_trigger("enrollments_after_update_row_when_new_workflow_state_old_wor_tr", "enrollments", {:generated=>true})

   -> 0.0005s

-- drop_trigger("submissions_after_update_row_tr", "submissions", {:generated=>true})

   -> 0.0007s

-- drop_trigger("submissions_after_update_row_when_old_submission_type_is_not_tr", "submissions", {:generated=>true})

   -> 0.0006s

-- create_trigger("enrollments_after_insert_row_when_new_workflow_state_active__tr", {:generated=>true, :compatibility=>1})

   -> 0.0001s

-- create_trigger("enrollments_after_update_row_when_new_workflow_state_old_wor_tr", {:generated=>true, :compatibility=>1})

   -> 0.0001s

-- create_trigger("submissions_after_update_row_tr", {:generated=>true, :compatibility=>1})

   -> 0.0001s

==  UngradedCountTriggers2: migrated (0.0085s) ================================


==  AddPositionToCommunicationChannelIndexes: migrating =======================

-- remove_index(:communication_channels, {:column=>["user_id"]})

   -> 0.0019s

-- add_index(:communication_channels, ["user_id", "position"])

   -> 0.0035s

-- remove_index(:communication_channels, {:column=>["pseudonym_id"]})

   -> 0.0019s

-- add_index(:communication_channels, ["pseudonym_id", "position"])

   -> 0.0026s

==  AddPositionToCommunicationChannelIndexes: migrated (0.0102s) ==============


==  StringColumnsToText: migrating ============================================

-- change_column(:error_reports, :url, :text)

   -> 0.0006s

-- change_column(:error_reports, :message, :text)

   -> 0.0004s

-- change_column(:content_tags, :url, :text)

   -> 0.0004s

-- change_column(:page_views, :user_agent, :text)

   -> 0.0004s

==  StringColumnsToText: migrated (0.0019s) ===================================


==  PostgresCompatFixes: migrating ============================================

-- change_column(:attachments, :size, :bigint)

   -> 0.0438s

-- change_column(:error_reports, :user_agent, :text)

   -> 0.0005s

==  PostgresCompatFixes: migrated (0.0444s) ===================================


==  AddOldMediaIdToMediaComments: migrating ===================================

-- add_column(:media_objects, :old_media_id, :string)

   -> 0.0006s

-- add_index(:media_objects, [:old_media_id])

   -> 0.0038s

==  AddOldMediaIdToMediaComments: migrated (0.0045s) ==========================


==  AllowLongCertificateFingerprint: migrating ================================

-- change_column(:account_authorization_configs, :certificate_fingerprint, :text)

   -> 0.0005s

==  AllowLongCertificateFingerprint: migrated (0.0006s) =======================


==  VarcharsToText: migrating =================================================

-- change_column(:assessment_question_banks, :title, :text)

   -> 0.0006s

-- change_column(:assessment_questions, :name, :text)

   -> 0.0004s

-- change_column(:asset_user_accesses, :display_name, :text)

   -> 0.0004s

-- change_column(:attachments, :display_name, :text)

   -> 0.0005s

-- change_column(:attachments, :filename, :text)

   -> 0.0004s

-- change_column(:content_tags, :title, :text)

   -> 0.0004s

-- change_column(:context_modules, :name, :text)

   -> 0.0004s

-- change_column(:delayed_messages, :name_of_topic, :text)

   -> 0.0004s

-- change_column(:messages, :from_name, :text)

   -> 0.0004s

-- change_column(:messages, :subject, :text)

   -> 0.0003s

-- change_column(:notifications, :sms_body, :text)

   -> 0.0004s

-- change_column(:page_views, :url, :text)

   -> 0.0004s

-- change_column(:users, :features_used, :text)

   -> 0.0004s

-- change_column(:wiki_pages, :url, :text)

   -> 0.0004s

==  VarcharsToText: migrated (0.0063s) ========================================


==  AddContentExport: migrating ===============================================

-- create_table(:content_exports)

   -> 0.0074s

-- add_index(:content_exports, [:course_id])

   -> 0.0034s

-- add_index(:content_exports, [:user_id])

   -> 0.0081s

==  AddContentExport: migrated (0.0192s) ======================================


==  WebConferenceSettings: migrating ==========================================

-- add_column(:web_conferences, :settings, :text)

   -> 0.0077s

==  WebConferenceSettings: migrated (0.0081s) =================================


==  AddWorkflowStateToGradingStandards: migrating =============================

-- add_column(:grading_standards, :workflow_state, :string)

   -> 0.0185s

==  AddWorkflowStateToGradingStandards: migrated (0.0561s) ====================


==  AddMigrationIdsForCcImporting: migrating ==================================

-- add_column(:context_external_tools, :migration_id, :string)

   -> 0.0039s

-- add_column(:external_feeds, :migration_id, :string)

   -> 0.0005s

-- add_column(:grading_standards, :migration_id, :string)

   -> 0.0005s

-- add_column(:learning_outcome_groups, :migration_id, :string)


FATAL: all hosts have already failed -- aborting


PLAY RECAP ******************************************************************** 

           to retry, use: --limit @/Users/davidwszeto/util_initialize_canvas.retry


10.0.10.10                 : ok=1    changed=0    unreachable=0    failed=1   


Ansible failed to complete successfully. Any error output should be

visible above. Please fix these errors and try again.

david-imac:canvas-lms-cloud-master davidwszeto$ 

----------------------------------------------

Am I missing some database setup?

David. 
--
David

Rocky Madden

unread,
May 29, 2014, 2:53:44 AM5/29/14
to dws, canvas-l...@googlegroups.com
I ran into this once and I believe it was a semi-documented Canvas issue (via GitHub issues). Let me dig in to see what I did to get around it.
 

— Rocky Madden ~ http://rockymadden.com

Rocky Madden

unread,
May 29, 2014, 5:58:38 AM5/29/14
to dws, canvas-l...@googlegroups.com
I was able to replicate the issue on another box and through much research discovered that the issue was not from Canvas, but rather from Vagrant and its Ansible plugin. I committed a workaround to the issue (https://github.com/rockymadden/canvas-lms-cloud/commit/0489a26c8cd7ceeda13a0cb171082071ff661405) (https://github.com/rockymadden/canvas-lms-cloud/commit/0489a26c8cd7ceeda13a0cb171082071ff661405) and I am crossing my fingers that when you download the newest version (v0.2.5) and execute `vagrant up` you will be the proud owner of a functioning vagrant box running Canvas within a few minutes :)

All the best,

— Rocky Madden ~ http://rockymadden.com

From: dws david...@gmail.com
Reply: dws david...@gmail.com
Date: May 28, 2014 at 21:57:13
To: Rocky Madden rocky...@rockymadden.com
Cc: canvas-l...@googlegroups.com canvas-l...@googlegroups.com
Subject:  Re: [Canvas] Re: Install Canvas to local virtual machine in ~15 minutes

dws

unread,
May 29, 2014, 11:16:46 AM5/29/14
to Rocky Madden, canvas-l...@googlegroups.com
Hi Rocky,

Just gave it a try:  there is some error, see below:

david-imac:canvas-lms-cloud-master davidwszeto$ pwd;date

/Users/davidwszeto/Downloads/canvas-lms-cloud-master

Thu May 29 08:10:42 PDT 2014

david-imac:canvas-lms-cloud-master davidwszeto$ ll

total 40

drwxr-xr-x@   7 davidwszeto  staff   238 May 29 02:53 .

drwx------+ 129 davidwszeto  staff  4386 May 29 08:10 ..

-rwxr-xr-x@   1 davidwszeto  staff   168 May 29 02:53 .gitignore

lrwxr-xr-x@   1 davidwszeto  staff    31 May 29 02:53 Vagrantfile -> ./vagrant/vagrantfile_localhost

drwxr-xr-x@  42 davidwszeto  staff  1428 May 29 02:53 ansible

-rwxr-xr-x@   1 davidwszeto  staff  9486 May 29 02:53 readme.md

drwxr-xr-x@   4 davidwszeto  staff   136 May 29 02:53 vagrant

david-imac:canvas-lms-cloud-master davidwszeto$ vi ~/.ssh/known_hosts 

david-imac:canvas-lms-cloud-master davidwszeto$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...

==> default: Importing base box 'ubuntu/trusty64'...

==> default: Matching MAC address for NAT networking...

==> default: Setting the name of the VM: canvas-lms-cloud-master_default_1401376315195_21110

==> default: Clearing any previously set forwarded ports...

==> default: Clearing any previously set network interfaces...

==> default: Preparing network interfaces based on configuration...

    default: Adapter 1: nat

    default: Adapter 2: hostonly

==> default: Forwarding ports...

    default: 22 => 2222 (adapter 1)

==> default: Running 'pre-boot' VM customizations...

==> default: Booting VM...

==> default: Waiting for machine to boot. This may take a few minutes...

    default: SSH address: 127.0.0.1:2222

    default: SSH username: vagrant

    default: SSH auth method: private key

    default: Warning: Connection timeout. Retrying...

    default: Warning: Remote connection disconnect. Retrying...

==> default: Machine booted and ready!

==> default: Checking for guest additions in VM...

==> default: Configuring and enabling network interfaces...

==> default: Mounting shared folders...

    default: /vagrant => /Users/davidwszeto/Downloads/canvas-lms-cloud-master

==> default: Running provisioner: shell...

    default: Running: inline script

==> default: stdin: is not a tty

==> default: Running provisioner: ansible...


PLAY [all] ******************************************************************** 


GATHERING FACTS *************************************************************** 

ok: [10.0.10.10]


TASK: [create /root/.ssh] ***************************************************** 

ok: [10.0.10.10]


TASK: [create /root/.ssh/authorized_keys] ************************************* 

changed: [10.0.10.10]


TASK: [copy id_rsa.pub] ******************************************************* 

changed: [10.0.10.10]


TASK: [cat id_rsa.pub to authorized_keys] ************************************* 

changed: [10.0.10.10]


TASK: [delete id_rsa.pub] ***************************************************** 

changed: [10.0.10.10]


PLAY RECAP ******************************************************************** 

10.0.10.10                 : ok=6    changed=4    unreachable=0    failed=0   


==> default: Running provisioner: ansible...


PLAY [gather application hosts facts] ***************************************** 


GATHERING FACTS *************************************************************** 

fatal: [10.0.10.10] => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue


PLAY [gather cache hosts facts] *********************************************** 


GATHERING FACTS *************************************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



PLAY [gather rdb_pool_coordinator hosts facts] ******************************** 

skipping: no hosts matched


PLAY [gather rdb_pool_master hosts facts] ************************************* 

skipping: no hosts matched


PLAY [gather rdb_pool_slave hosts facts] ************************************** 

skipping: no hosts matched


PLAY [gather rdb_standby_master hosts facts] ********************************** 


GATHERING FACTS *************************************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



PLAY [gather rdb_standby_slave hosts facts] *********************************** 

skipping: no hosts matched


PLAY [gather rdb_xc_coordinator hosts facts] ********************************** 

skipping: no hosts matched


PLAY [gather rdb_xc_datanode hosts facts] ************************************* 

skipping: no hosts matched


PLAY [gather rdb_xc_gtm hosts facts] ****************************************** 

skipping: no hosts matched


PLAY [gather proxy hosts facts] *********************************************** 


GATHERING FACTS *************************************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



PLAY [rdb_standby_master] ***************************************************** 


GATHERING FACTS *************************************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



TASK: [common | install build-essential] ************************************** 

FATAL: no hosts matched or all hosts have already failed -- aborting



PLAY RECAP ******************************************************************** 

           to retry, use: --limit @/Users/davidwszeto/localhost.retry


10.0.10.10                 : ok=0    changed=0    unreachable=1    failed=0   


Ansible failed to complete successfully. Any error output should be

visible above. Please fix these errors and try again.

---------------

Please advise.  Thanks.

David


--
David

Rocky Madden

unread,
May 29, 2014, 2:54:46 PM5/29/14
to dws, Rocky Madden, canvas-l...@googlegroups.com
This is a vagrant bug that seems to show up at random. Sadly, the fix is to do vagrant destroy followed by vagrant up. This will be one of those where I need to do a pull request directly to the vagrant project to fix. 

Sent from my iPhone

Rocky Madden

unread,
Jun 2, 2014, 7:09:59 PM6/2/14
to canvas-l...@googlegroups.com
For anyone following along, I've spoken with David several times and tried various workarounds (without success). As mentioned, I believe I will need to patch Vagrant directly to resolve. I've opened an issue on GitHub for this issue: https://github.com/rockymadden/canvas-lms-cloud/issues/34
Reply all
Reply to author
Forward
0 new messages