Any ideas how should we start the CLI?
Basically, two options.
First, vyatta style: upon login the user is in the VyOS-specific CLI, where you can do both VyOS and UNIX things.
Second, juniper style: the user is dropped to UNIX shell and can do UNIX things right away or start VyOS-specific shell and do VyOS things there.
Second option is a lot easier to implement, but some people may get confused and try editing configs in /etc/ by hand, with confusing consequences. They already do it in our current CLI once in a while. We can probably mitigate it by making the post-login message tell people what to do.
I would like entering a basic "vyos" shell as we have now, with options to go into configure, and add an option "shell" to open a shell in a structured way.
also, add a warning when opening a root shell that any changes might not be permanent.
Welcome to VyOS vyos@router:~$ ? Possible completions: add Add an object to a service clear Clear system information clone Clone an object configure Enter configure mode <snip> set Set operational options shell Open a linux shell show Show system information telnet Telnet to a node traceroute Track network path to node update Update data for a service
I think a dedicated shell command is a lot more obvious - and it lets us put on extra warnings when they enter the shell.
I'm not saying that this would be a bad idea as an extra command, but I think a dedicated shell command is a good idea.
Looking from a sys-admin perspective, I think most would prefer being able to drop to shell when needed or preferred.
Typing "shell" before each command is fine when running a single command but will be fast become tedious and annoying when trying to troubleshoot something or move around the system.
I like the idea that the default is a vyos cli with the ability of dropping into shell when needed.
Maybe it's worth having it default to Cisco style first and adding an optional setting that allows it to drop to a full shell when wanted.
This covers what I believe to be the 9 out of 10 cases by default but leaves it changeable for those who like it the other way.