Skip to content

BigBlueButton 3.0 LTI framework installation fails #799

@sowibrahima

Description

@sowibrahima

When installing with the LTI framework using the provided command:

wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g -k -t bbb:mMH5vzBFAZgmra5UiZzQEfb1

It fails with the following error

[...]
bbb-install: Setting/updating LTI credentials for LTI KEY: bbb...
bbb-install: failed to set LTI credentials bbb:mMH5vzBFAZgmra5UiZzQEfb1.

After looking at the docker command executed behind the scenes

+ docker-compose -f /root/bbb-lti/docker-compose.yml exec -T broker bundle exec rake 'db:keys:add[bbb,mMH5vzBFAZgmra5UiZzQEfb1]'
/usr/src/app/config/boot.rb:22: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add logger to your Gemfile or gemspec to silence this warning.
/usr/src/app/vendor/bundle/ruby/3.4.0/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299: warning: benchmark was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add benchmark to your Gemfile or gemspec to silence this warning.
Also please contact the author of activesupport-6.1.7.9 to request adding benchmark into its gemspec.
/usr/src/app/vendor/bundle/ruby/3.4.0/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add ostruct to your Gemfile or gemspec to silence this warning.
Also please contact the author of jbuilder-2.12.0 to request adding ostruct into its gemspec.
rake aborted!
Don't know how to build task 'db:keys:add' (See the list of available tasks with `rake --tasks`)
Did you mean?  db:test:load
/usr/src/app/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/exe/rake:27:in '<top (required)>'
/usr/bin/bundle:25:in 'Kernel#load'
/usr/bin/bundle:25:in '<main>'
(See full trace by running task with --trace)

After looking at the bbb-lti-broker repo, it looks like the task names have changed between the bbb-lti-broker 1.1.8 and 2.0 https://github.com/bigbluebutton/bbb-lti-broker/blob/release-2.0/lib/tasks/key.rake
We can see the list of new task names

docker-compose -f /root/bbb-lti/docker-compose.yml exec -T broker bundle exec rake --tasks
[...]
rake db:create                                                                                      # Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:create:all to create all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to creating the development and test databases, except when DATABASE_URL is present
rake db:drop                                                                                        # Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to dropping the development and test databases, except when DATABASE_URL is present
rake db:environment:set                                                                             # Set the environment value for the database
rake db:exists                                                                                      # Checks to see if the database exists
rake db:fixtures:load                                                                               # Loads fixtures into the current environment's database
rake db:migrate                                                                                     # Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog)
rake db:migrate:down                                                                                # Runs the "down" for a given migration VERSION
rake db:migrate:redo                                                                                # Rolls back the database one migration and re-migrates up (options: STEP=x, VERSION=x)
rake db:migrate:status                                                                              # Display status of migrations
rake db:migrate:up                                                                                  # Runs the "up" for a given migration VERSION
rake db:prepare                                                                                     # Runs setup if database does not exist, or runs migrations if it does
rake db:reset                                                                                       # Drops and recreates the database from db/schema.rb for the current environment and loads the seeds
rake db:rollback                                                                                    # Rolls the schema back to the previous version (specify steps w/ STEP=n)
rake db:schema:cache:clear                                                                          # Clears a db/schema_cache.yml file
rake db:schema:cache:dump                                                                           # Creates a db/schema_cache.yml file
rake db:schema:dump                                                                                 # Creates a database schema file (either db/schema.rb or db/structure.sql, depending on `config.active_record.schema_format`)
rake db:schema:load                                                                                 # Loads a database schema file (either db/schema.rb or db/structure.sql, depending on `config.active_record.schema_format`) into the database
rake db:seed                                                                                        # Loads the seed data from db/seeds.rb
rake db:seed:replant                                                                                # Truncates tables of each database for current environment and loads the seeds
rake db:sessions:clear                                                                              # Clear the sessions table
rake db:sessions:create                                                                             # Creates a sessions migration for use with ActiveRecord::SessionStore
rake db:sessions:trim                                                                               # Trim old sessions from the table (default: > 30 days)
rake db:sessions:upgrade                                                                            # Upgrade current sessions in the database to the secure version
rake db:setup                                                                                       # Creates the database, loads the schema, and initializes with the seed data (use db:reset to also drop the database first)
rake db:structure:dump                                                                              # Dumps the database structure to db/structure.sql
rake db:structure:load                                                                              # Recreates the databases from the structure.sql file
rake db:version                                                                                     # Retrieves the current schema version number
rake key                                                                                            # Key tasks, by default show all existent blti keypairs
rake key:delete[key,tenant]                                                                         # Delete an existent blti keypair if exists [key,secret,tenant]'
rake key:deleteall                                                                                  # Delete all existent blti keypairs
rake key:disable[id]                                                                                # Disable a key by ID [id]
rake key:disable:all                                                                                # Disable all keys
rake key:disable:by[key,value]                                                                      # Disable a key by [key,value]
rake key:enable[id]                                                                                 # Enable a key by ID [id]
rake key:enable:all                                                                                 # Enable all keys
rake key:enable:by[key,value]                                                                       # Enable a key by [key,value]
rake key:new[key,secret,tenant]                                                                     # Add a new blti keypair - add[key,secret,tenant]. If "key" or "secret" are empty, a value will be generated for you
rake key:show[id]                                                                                   # Show a existent blti keypairs
rake key:show:all                                                                                   # Show all existent blti keypairs
rake key:show:url[key,tenant]                                                                       # Show a blti key-secret pair and its url if it exists
rake key:update[key,secret,tenant]                                                                  # Update an existent blti keypair if exists - update[key,secret,Tenant]'

db:keys:add and db:keys:update should be replaced with key:new and key:update respectively. Maybe key:enable:by is required too to enable the newly added key.

The same goes for other rake commands in the script like db:apps:show , db:apps:add and db:apps:update, which have changed to apps:show , apps:add and apps:update.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions