Operation and Deployment¶
You can install from GitHub directly with pip:
$ pip install -e git://git.openstack.org/openstack/astara@stable/liberty#egg=astara
After installing astara, it can be invoked as:
$ astara-orchestrator --config-file /etc/akanda-rug/rug.ini
The astara service is intended to run on a management network (a separate network for use by your cloud operators). This segregation prevents system administration and the monitoring of system access from being disrupted by traffic generated by guests.
astara-ctl is a tool which can be used to send manual instructions to a running astara-orchestrator via AMQP:
$ astara-ctl browse A curses console interface for browsing the state of every Neutron router and issuing `rebuild` commands $ astara-ctl poll Sends a POLL instruction to every router to check health $ astara-ctl router rebuild <router-id> Sends a REBUILD instruction to a specific router $ astara-ctl router update <router-id> Sends an UPDATE instruction to a specific router $ astara-ctl router debug <router-id> Places a specific router in `debug mode`. This causes the rug to ignore messages for the specified router (so that, for example, operators can investigate troublesome routers). $ astara-ctl router manage <router-id> Removes a specific router from `debug mode` and places it back under astara-orchestrator management. $ astara-ctl tenant debug <tenant-id> Places a specific tenant in `debug mode`. This causes the rug to ignore messages for the specified tenant. troublesome routers). $ astara-ctl tenant manage <tenant-id> Removes every router for a specific tenant from `debug mode` and places the tenant back under astara-orchestrator management. $ astara-ctl ssh <router-id> Establishes an ssh connection with a specified Service VM. $ astara-ctl workers debug Causes the rug to print debugging diagnostics about the current state of its worker processes and the state machines under their management.
astara-orchestrator also exposes an RPC API on the management network, which allows non-interactive astara-ctl commands to be issued via HTTP, e.g.,
$ curl -X PUT -g6 "http://[fdca:3ba5:a17a:acda::1]:44250/poll/" $ curl -X PUT -g6 "http://[fdca:3ba5:a17a:acda::1]:44250/workers/debug/" $ curl -X PUT -g6 "http://[fdca:3ba5:a17a:acda::1]:44250/router/rebuild/<ID>"
astara-debug-router is a diagnostic tool which can be used to analyze the state machine flow of any router and step through its operation using Python’s debugger. This is particularly useful for development purposes and understanding the nature of the astara-orchestrator state machine, but it’s also useful for debugging problematic routers as an operator; a common pattern for determining why a Service VM won’t boot is to place the router in debug mode:
$ astara-ctl router debug <router-id>
...and then step through the handling of a manual UPDATE event to see where it fails:
$ astara-debug-router --router-id <router-id>