An external-hook registry method allows for invoking an external script, which itself makes use of Bcome’s runtime. The namespace context at which the external hook is called is passed to the script.
This guide demonstrates the configuration of a simple external hook.
Here’s our script -
require 'bcome' require 'pry' # Define an orchestrator orchestrator = ::Bcome::Orchestrator.instance # Load in the namespace @node = orchestrator.get(ENV["bcome_context"]) # Work with the namespace # run a command command = "echo \"hello world I am `hostname -A`\"" @node.run command exit 0
There is a lot you can do with a
@node object. See interacting with node.
Let’s save our script as ‘say_hello_server.rb’ at the following location:
. └── bcome └── scripts └── say_hello_server.rb
Next we’ll add a registry.yml association for our script, associating it with the ‘production:wbzsite’ namespace in our namespace tree:
--- "production:wbzsite(.+)?": - type: external description: "Say hello, server" console_command: say_hello group: salutations local_command: ruby scripts/say_hello_server.rb
Now let’s try out our external registry hook:
To replay this Asciicast in your own terminal, install the
asciinema package from https://asciinema.org/, and then enter the following in your terminal:
asciinema play https://asciinema.org/a/LW2fZbitYWKyaFnCuWtgyJOIP
See our documentation site for more details on configuring external hooks.